【问题标题】:Laravel 5 skip exception handerLaravel 5 跳过异常处理程序
【发布时间】:2017-10-13 03:49:07
【问题描述】:

我正在将支付网关集成到 Laravel 5 项目中,支付网关站点有回调响应,

例如发布http://example.com/payments/response

但是,如果支付失败,则响应为 419 状态。

我已经创建了一个路由来处理这个,例如

Route::post('payments/response', [
    'as' => 'payments.response',
    'uses' => 'PaymentController@response'
]);

但是,它总是落入 app/Exceptions/Handler.php

public function render($request, Exception $exception)
{   
    if (in_array($request->route()->getName(), ['payments.response'])) {
        // HOW TO SKIP THE EXCEPTION HANDLER ???
    }

    return parent::render($request, $exception);
}

我想继续回复到我的PaymentController,我该如何实现?

【问题讨论】:

    标签: php laravel-5 exception-handling payment-gateway


    【解决方案1】:

    如果你正在调用未定义的方法 app/Exceptions/Handler.php,你需要将控制器声明为 get not post。

    【讨论】:

    • POST 是通过支付网关,我无法更改。所以我只能监听支付网关的 POST 请求
    • 我想通了。下面的答案。 TQ
    【解决方案2】:

    我想通了。错误实际上是TokenMismatchException。因此,我的解决方案是

    编辑app/Http/Middleware/VerifyCsrfToken.php

    protected $except = [ 
        'payments/response', <------- ADD THIS
    ];
    

    现在可以进入控制器了

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-05-07
      • 1970-01-01
      • 1970-01-01
      • 2016-02-13
      • 2015-09-03
      • 2016-08-03
      • 2023-03-10
      • 2017-10-07
      相关资源
      最近更新 更多