2017-10-13 151 views
0

我整合支付网关到Laravel 5项目,有来自支付网关的网站回调响应,Laravel 5跳过异常处理程序

例如POST http://example.com/payments/response

但是,如果付款失败,则回复处于419状态。

我已经创建了一个处理这个的路线,例如,

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

,但它总是落入应用程序/例外/ 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的反应,我怎么能做到这一点?

回答

0

我想通了。该错误实际上是TokenMismatchException。因此,我的解决办法是

编辑应用程序/ HTTP /中间件/ VerifyCsrfToken.php

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

现在可以继续控制器

0

如果您正在调用未定义的方法app/Exceptions/Handler.php,您需要声明控制器为无法发布。

+0

的POST是支付网关,我不能更改。所以我只能通过支付网关 –

+0

收听POST请求,将其更改为任何任何内容,并查看该如何工作。 –

+0

我想通了。下面的答案。 TQ –