我找到了一些相关的问题,但是他们对我的问题没有足够的解释/解决方案。我正在将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中,会话变量为null。但是放在PaymentController.php前面的变量仍然存在。
答案 0 :(得分:2)
当Laravel应用程序生命周期开始时,在应用程序生命周期结束之前,尚未存储在Session中的任何值。重定向阻止了这种情况。
在调用put()
之后立即保留会话值:
Session::put(SampleModel::PARAMS, $params);
Session::save();