在發出建立訂單 - 取得虛擬帳號
的請求後,若付款完成會呼叫 BackendURL 的參數,所以要先準備好接收的API
先定義 api 呼叫的位置,增加一行 Route
// routes/api.php
Route::post('/receive_msg', [\App\Http\Controllers\Controller::class, 'receive_msg']);
增加 Controller 對應的函數 receive_msg
// app/Http/Controllers/Controller.php
public function receive_msg(Request $request)
{
return ['msg' => 'test', 'req' => $request->all()];
}
$ php artisan serve
處理訊息
// app/Http/Controllers/Controller.php
public function receive_msg(Request $request)
{
$PayToken = $request->get('PayToken');
if (!$PayToken) {
Log::alert('PayToken Not exist', $request->all());
return ['Status' => 'F'];
}
return ['Status' => 'S'];
}
再度測試一下,若存在PayToken回覆 {"Status": "S"}
,失敗回覆{"Status": "S"}
,並在Log紀錄,方便Debug
成功:
失敗:
監看Log就能看到傳入的內容,Log的時間是 GMT,非 +8 時區
Get-Content -Tail 10 -Wait .\storage\logs\laravel.log
一邊看Laravel api的寫法一邊測,狂爆500,花了很多時間,後來才發現 Route 寫錯,因為沒有給 function name
今天先到這,明天把接到訊息後需要在發一個請求來解密內文,
祝大家中秋節前夕快樂,明天見