【问题标题】:Laravel session variables get Null, once redirect to Payment Gateway and return backLaravel 会话变量获取 Null,一旦重定向到支付网关并返回
【发布时间】:2019-08-29 08:12:34
【问题描述】:

我发现了一些相关的问题,但他们没有足够的解释/解决方案来解决我的问题。我正在将 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 之前的变量仍然存在。

【问题讨论】:

    标签: laravel session


    【解决方案1】:

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

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

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

    【讨论】:

    • 谢谢,它正在工作!在 Laravel 上工作 8 个月以上,从来没有遇到过这个问题!我也感谢你的解释。
    猜你喜欢
    • 2021-01-01
    • 2021-05-26
    • 1970-01-01
    • 1970-01-01
    • 2020-07-14
    • 2015-03-27
    • 1970-01-01
    • 2014-01-03
    • 1970-01-01
    相关资源
    最近更新 更多