@FRYST3

Как избавится от 419 PAGE EXPIRED laravel 8?

При подключении платёжной системы с толкнулся такой проблемой, при просмотре платежа со стороны платёжной системы вылазит ошибка Ответ сервера: 419 PAGE EXPIRED из-за этого платежи на сайт мой не доходят. Платёжная подключается к payment/hadle к post запросу.
Web.php
Route::group(['prefix' => '/payment'], function () {
    Route::post('/handle', [MainController::class, 'checkPayment']);
    Route::get('/fail', [MainController::class, 'fail']);
    Route::get('/success', [MainController::class, 'success']);
});

MainController:
public function checkPayment(Request $r) {
        $hash = hash('sha256',$_POST['shop_id'].$_POST['amount'].'SecretKey'.$_POST['id']); // генерируем hash на вашей стороне
        if($hash != $_POST['hash']){ // сравниваем полученные hash
            exit('NO HASH');
        }

        $payment = Payments::where('id', $r->label)->first();
        if(!$payment) return 'Платеж не найден';

        $user = User::where('id', $payment->user_id)->first();

        $user->balance+= $payment->amount;
        $user->save();
        $payment->status = 1;
        $payment->save();
        
        exit('200');
    }
  • Вопрос задан
  • 404 просмотра
Решения вопроса 1
@FRYST3 Автор вопроса
Вообщем решение проблемы было таковым:
Указать в VerifyCsrfToken исключение для payment
<?php

namespace App\Http\Middleware;

use Illuminate\Foundation\Http\Middleware\VerifyCsrfToken as Middleware;

class VerifyCsrfToken extends Middleware
{
    /**
     * The URIs that should be excluded from CSRF verification.
     *
     * @var array<int, string>
     */
    protected $except = [
        'payment/*',
    ];
}
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы