我正在将以下数组分配给 transactionInfo。
$transactionDetails=[
'amount' => $total,
'description'=>$description,
'notify_url'=>'http://url.com/paypal/log',
'headerImageUrl'=>'http://url.com/img/bhi_logo.png',
'brandName'=>'Name',
'encodedTestIDs' => serialize($payForTestID),
'returnUrl' => 'http://url.com/payment/return',
'cancelUrl' => 'http://url.com/payment/cancel'
];
Session::put('transactionInfo',$transactionDetails);
如果我重定向到网站上的另一个页面,我可以使用以下方法拉取数组
Session::get('tranactionInfo');
但是,如果我重定向到 PayPal 以收取付款,然后 PayPal 将用户重定向回我的站点,则 session 变量将为空。
这是 PayPal 返回的路线:
Route::any('/payment/return',function(){
if(Session::has('transactionInfo')){
echo 'what is happening?';
}
//Session::flush();
dd(Session::get('transactionInfo')); die;
});
最佳答案
我不确定为什么 Laravel 不会持久化 session 数据。
但是,另一种方法是在重定向到 PayPal 之前将交易数据存储在您的数据库中。您可以在您的 returnUrl 中引用 transactionId,正如我在此处描述的那样:
关于session - 重定向到外部网站时,Laravel session 不会持续存在,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24440048/