У меня есть платежная система, где данные передаются на сторонний сайт, а затем выгружаются обратно …
Когда данные возвращаются, он попадает на определенный URL-адрес, который позволяет сказать / ok маршрут. $_REQUEST['transaction']
.
Но из-за промежуточного ПО laravel у меня возникает несоответствие токенов. Нет никакого способа, по которому сторонний платежный API может генерировать токен, так как я его отключил? только для этого маршрута?
или есть лучший вариант?
Route::get('/payment/ok', 'TransactionsController@Ok'); Route::get('/payment/fail', 'TransactionsController@Fail'); public function Ok( Request $request ) { $transId = $request->get('trans_id'); if ( isset( $transId ) ) { return $transId; } }
Начиная с версии 5.1 промежуточное ПО VerifyCsrfToken Laravel позволяет указывать маршруты, которые исключаются из проверки CSRF. Чтобы достичь этого, вам нужно добавить маршруты в $ except array в свой класс App \ Http \ MiddlewareVerifyCsrfToken :
<?php namespace App\Http\Middleware; use Illuminate\Foundation\Http\Middleware\VerifyCsrfToken as BaseVerifier; class VerifyCsrfToken extends BaseVerifier { protected $except = [ 'payment/*', ]; }
См. http://laravel.com/docs/master/routing#csrf-excluding-uris для получения дополнительной информации.