Я только что закончил Laravel 7 приложение. После завершения платежей, у меня сейчас странные проблемы. Я отправляю LOGGED IN USER на платежный шлюз, пользователь платит, и шлюз отправляет пользователя обратно на сайт в виде запроса POST. Но ответное действие сайта никогда не вызывается. Поскольку он находится под auth middleware, пользователь не знает, как LOGGED OUT и отправляется на экран входа в систему.
Определение маршрута выглядит следующим образом:
<?php
Route::middleware('auth')->group(function () {
// This sends the user to gateway
Route::post('subscription', 'SubscriptionController@renew')->name('subscription.renew');
// Gateway sends the user back here
Route::post('subscription/process', 'SubscriptionController@process')->name('subscription.process');
});
Проверка вкладки сети на предмет прыжков выглядит следующим образом:
POST http://localhost:8000/subscription -> 302 << gateway >>
<< gateway >> -> POST http://localhost:8000/subscription/process -> 302 http://localhost:8000/login
В ответе, когда приложение отправляет на http://localhost: 8000 / login , заголовки имеют laravel_session
готовьте ie по мере необходимости.
Но действие http://localhost: 8000 / подписка / процесс никогда не вызывается, и пользователь выходит из системы. Никогда не было таких проблем до Laravel 6 с тем же платежным шлюзом.
Более того, я также добавил ниже URL-адрес к VerifyCsrfToken
промежуточному программному обеспечению, так как сначала было 419.
<?php
namespace App\Http\Middleware;
use Illuminate\Foundation\Http\Middleware\VerifyCsrfToken as Middleware;
class VerifyCsrfToken extends Middleware
{
protected $except = [
'/subscription/process',
];
}
Кто-нибудь может пролить свет на то, что может быть причиной?