iT邦幫忙

2021 iThome 鐵人賽

DAY 8
0

0x1 API 需求

在發出建立訂單 - 取得虛擬帳號的請求後,若付款完成會呼叫 BackendURL 的參數,所以要先準備好接收的API

0x2 程式撰寫

  1. 先定義 api 呼叫的位置,增加一行 Route

    // routes/api.php
    Route::post('/receive_msg', [\App\Http\Controllers\Controller::class, 'receive_msg']);
    
  2. 增加 Controller 對應的函數 receive_msg

    // app/Http/Controllers/Controller.php
    public function receive_msg(Request $request)
    {
        return ['msg' => 'test', 'req' => $request->all()];
    }
    
    • 先用Postman測試一下是否有問題,確認沒問題繼續
      $ php artisan serve
      
      https://ithelp.ithome.com.tw/upload/images/20210916/201418055E94TNks0u.png
  3. 處理訊息

    // 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
    成功:
    https://ithelp.ithome.com.tw/upload/images/20210916/20141805Se7tNCMM2N.png
    失敗:
    https://ithelp.ithome.com.tw/upload/images/20210916/20141805Q0HlKhjOPS.png

監看Log就能看到傳入的內容,Log的時間是 GMT,非 +8 時區

Get-Content -Tail 10 -Wait .\storage\logs\laravel.log

https://ithelp.ithome.com.tw/upload/images/20210916/20141805DpQrB5ifhZ.png

0x3 今日結語

一邊看Laravel api的寫法一邊測,狂爆500,花了很多時間,後來才發現 Route 寫錯,因為沒有給 function name/images/emoticon/emoticon04.gif
今天先到這,明天把接到訊息後需要在發一個請求來解密內文,
祝大家中秋節前夕快樂,明天見


上一篇
Day 0x7 - Laravel 資料庫連接設定、資料表規劃
下一篇
Day 0x9 - 插播 - 建立 Sinopac Controller
系列文
試著讀懂與串接永豐金融APIs30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言