Day 0x8 - WebHook Api 建立( part 1 )

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 9】设置虚拟主机 EC2 x 吴念真的土豆神器

>>:  【程序】职场停看听 转生成恶役菜鸟工程师避免 Bad End 的 30 件事 - 5

html清单

今天学习如何在网页上显示清单列表,我们需要用到ul li与ol li 首先是ul li,在body里...

软件测试技术(software testing technique)

随机测试(Random testing)是一种黑盒软件测试技术,通过生成随机的独立输入来测试程序。(...

用 Python 畅玩 Line bot - 02:Line bot SDK

在建立好帐号之後,我们可以开始来看看 Line bot SDK,可以从 Line developer...

[Day 16] -『 GO语言学习笔记』- 核心型别(III)

以下笔记摘录自『 The Go Workshop 』。 字串(String) Golang只有一种文...

Day24:24 - 结帐服务(8) - 前端 - 显示总订单资料、订单详情

Nnọọ,我是Charlie! 在Day23当中我们完成了订单资料的後端API,而今天我们将完成订单...