2017-10-13 152 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 –