【问题标题】:Laravel 5.8 callback APILaravel 5.8 回调 API
【发布时间】:2020-11-29 14:35:45
【问题描述】:

我正在使用 laravel 5.8 开发一个 Web 应用程序,但在最后一步之前被卡住了。

完整的场景是:
因为我正在尝试与第三方公司进行移动货币支付服务聚合,所以当我使用 ajax 发送带有电话号码和金额为/requestpayment 他们给我的 API 的请求时,我得到一个 "pending" JSON chrome 控制台中的响应,这意味着它工作正常。

但他们说我必须给他们一个回调 URL 才能在我的 laravel 应用中接收 JSON 响应,这样我就可以将付款记录保存到数据库中。


现在,文档说明了有关响应的内容:

xyz 充当客户端并通过向其发送状态来调用应用程序 通过 HTTP 发布的待处理事务。可以成功也可以失败。合作伙伴是 需要提供 xyz 网关将向其提交请求的端点 URL(回调 URL)
以下是 Python 编程语言的示例:

data = {
'requesttransactionid':''4522233',
'transactionid':'6004994884',
'responsecode' :'01',
'status':'Successfull',
'statusdesc':'Successfully Processed Transaction',
'referenceno':'312333883'
 }

r = requests.post(url, json={'jsonpayload':data},headers={'contenttype':"application/json"},verify=False)


所以,我的问题是:我将如何在我的 laravel 5.8 应用程序中捕获 JSON 之上的内容以获取 'responsecode''status'??

我要创建一个发布到控制器的 API,然后呢?请帮忙!!

【问题讨论】:

    标签: php ajax laravel


    【解决方案1】:

    您需要在您的应用程序中创建一个新路由来接受来自您的远程 API 的数据。

     Route::post('/endpoint', function (Request $request) {
        dd($request->all());
        /*
        [
            'requesttransactionid' => '4522233',
            'transactionid' => '6004994884',
            'responsecode' => '01',
            'status' => 'Successfull',
            'statusdesc' => 'Successfully Processed Transaction',
            'referenceno' => '312333883'
        ]
        */
    });       
    

    不要忘记在您的 VerifyCsrfToken 中间件

    中添加 POST 异常
    class VerifyCsrfToken extends Middleware
    {
        /**
         * The URIs that should be excluded from CSRF verification.
         *
         * @var array
         */
        protected $except = [
            '/endpoint',
        ];
    }
    

    完成后,将路由的 URL 提供给您的 Provider: https://myapp.com/endpoint

    【讨论】:

    • 很抱歉这个问题,但我怎么知道这个 POST myapp.com/endpoint 已收到请求?我正在使用 AJAX 发送请求
    • 你必须把你的逻辑而不是dd($request->all());你可以,例如,将成功的支付记录保存在数据库中
    猜你喜欢
    • 1970-01-01
    • 2020-04-22
    • 2019-08-09
    • 2020-01-07
    • 2021-10-11
    • 2019-09-20
    • 2021-03-18
    • 2020-05-24
    • 1970-01-01
    相关资源
    最近更新 更多