昨天建立好 Sinopac controller,今天持续完成 receive_msg的部分
增加 Sinopac controller 的函数,要求 API 需要的一些参数
// app/Http/Controllers/Sinopac.php
...
public function requestDataset(string $service_name, array $dataset)
{
$nonce = $this->getNonce();
$hash_id = $this->calcHashId();
$iv = $this->calculateIv($nonce);
$sign = $this->generateSign($dataset, $nonce, $hash_id);
$message = $this->encryptMessage($dataset, $hash_id, $iv);
return [
'Version' => '1.0.0',
'ShopNo' => $this->shop_no,
'APIService' => $service_name,
'Nonce' => $nonce,
'Sign' => $sign,
'Message' => $message
];
}
...
在 Controller 建立 Sinopac 的初始化函数,有使用到的函数再初始化就好了,所以不用放在 __construct
商店代码
跟杂凑值(key)
// app/Http/Controllers/Controller.php
...
private function initSinopac()
{
return new Sinopac(
'Shop_no',
'key_a1',
'key_a2',
'key_b1',
'key_b2');
}
...
同样修改 Controller 的 receive_msg 函数,确保好 Debug,每次要求都先记 log
// app/Http/Controllers/Controller.php
...
public function receive_msg(Request $request)
{
Log::alert('Receive message Content', $request->all());
$PayToken = $request->get('PayToken');
if (!$PayToken) {
Log::alert('PayToken Not exist');
return ['Status' => 'F'];
}
$sinopac = $this->initSinopac();
$data = $sinopac->requestDataset('OrderPayQuery', $request->all());
$message = $sinopac->callApi('https://apisbx.sinopac.com/funBIZ/QPay.WebAPI/api/Order', $data);
Log::info('Reply message', (array) $message);
return ['Status' => 'S'];
}
...
使用 postman 试看看正不正常,并用 powershell 监看 Log
> Get-Content -Wait -Tail 10 -Encoding "utf8" .\storage\logs
Postman:
Log:
是的,崩溃的一天,一开始测试都正常,整个完成後直接报错爆好爆满...
明天先回头尝试建立订单吧
<<: 30天学会 Python: Day 4-《资料Collection》
前言: 利用while True:的方法後,已经能够以少次数的 epochs 来重复储存模型,但至於...
这篇要来个小小练习,增加一个减号的按钮,并针对其结果作一个单元测试。 先别往下看,给自己五到十分钟....
设置跨域代码: ipfs config --json API.HTTPHeaders.Access-...
此刻所发生的所有事,都是你之前选择的结果。 Everything that is happening...
Unit Test 应用於 Web APIs-前言 现今大多数的软件工程都是以网路工程为主,那网路工...