Laravel session 变量一旦重定向到支付网关并返回,就会变为 Null

标签 laravel session

我发现了一些相关问题,但他们没有对我的问题提供足够的解释/解决方案。我正在将 Paycorp 支付网关与现有项目集成。在 PaymentController.php 中,我将所有酒店 IPG 设置放入一个数组中并放入 session 中。一旦我将它放入 session 中,我尝试使用 vardump 打印它,它正在工作,它在 session 中!然后我启动付款并重定向到生成的网址。它重定向到 Paycorp 付款,我提供卡详细信息并提交。当它返回到 PaymentCompleteController.php 时,我需要完成付款,并且我需要我已在 session 中放入的酒店 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 中, session 变量为空。但放在 PaymentController.php 之前的变量仍然存在。

最佳答案

当 Laravel 应用程序生命周期开始时,在应用程序生命周期结束之前,放入 Session 中的任何值都不会被存储。重定向阻止了这种情况。

在调用 put() 后立即保留 session 值:

Session::put(SampleModel::PARAMS, $params);
Session::save();

关于Laravel session 变量一旦重定向到支付网关并返回,就会变为 Null,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55569009/

相关文章:

php - 流明框架 View 不工作

c# - 开发类似于ASP.NET session 的系统时要考虑的安全性注意事项

mysql - 在没有有效 session 的情况下限制对.net页面的访问 vb.net

php - 相同的域,不同的文件夹 PHP session

reactjs - 从连续 react 中读取 session 存储的变化

迁移时用户 root@localhost 的 Laravel 5.4 访问被拒绝

php - Laravel 有很多更新关系

mysql - 拉维尔 5 : How to dump SQL query?

php - Laravel 模型中的命名空间问题 - 包开发

javascript - 我如何从 Meteor 中的服务器获取浏览器 cookie 以进行 session 处理?