Переменные сеанса Laravel получают значение Null, после перенаправления на платежный шлюз и возврата обратно - PullRequest
2 голосов
/ 08 апреля 2019

Я нашел несколько связанных вопросов, но у них недостаточно объяснений / решений для моей проблемы.Я интегрирую платежный шлюз Paycorp с существующим проектом.В PaymentController.php я поместил все настройки IPG отеля в массив и начал сеанс.Как только я помещаю это в сессию, я пытаюсь напечатать это с vardump, это работает, это находится в сессии!Затем я инициирую платеж и перенаправляю на созданный URL.Он перенаправляет на платеж Paycorp, я предоставляю данные карты и отправляю.Когда он возвращается в PaymentCompleteController.php, мне нужно завершить платеж, и мне нужны настройки IPG отеля, которые я установил в сеансе.Когда я пытался получить его, ничего не было, и оно равно NULL.

PaymentController.php

    $params['something1'] = $something1;
    $params['something2'] = $something2;
    $params['something3'] = $something3;
    $params['something4'] = $something4;

    Session::put(SampleModel::PARAMS, $params);
    //At this point Params are in the session
    //var_dump(Session::get(SampleModel::PARAMS)); exit();

    //Initiate Payment and Redirect to URL

После того, как данные карты предоставлены и отправлены, она будет перенаправлена ​​обратно на

PaymentCompleteController.php

    vardump(Session::get(SampleModel::PARAMS)); exit();

В переменной PaymentCompleteController.php переменная сеанса равна нулю.Но переменная, поставленная перед PaymentController.php, все еще там.

1 Ответ

2 голосов
/ 08 апреля 2019

Когда запускается жизненный цикл приложения Laravel, любое значение, введенное в Session, еще не сохраняется, пока не закончится жизненный цикл приложения.Перенаправление предотвращает это.

Сохраняет значения сеанса сразу после вызова put():

Session::put(SampleModel::PARAMS, $params);
Session::save();
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...