我将Laravel应用程序部署到共享主机(cpanel)。对于付款,用户首先重定向到银行帐户,然后重定向到我的页面。在此过程中,用户将被注销!
为保护路由,我使用身份验证中间件,对于会话驱动程序,我使用默认的会话驱动程序file。此外,框架/会话的许可为777。
这是重定向到银行页面的代码:
$go = "https://thebank/example";
redirect()->to($go)->send();
付款成功后,银行将重定向到我指定的用于验证付款的路由。
Route::get('/payment/callBack' , 'PaymentController@VerifyData')->middleware('auth');
该路由利用auth中间件。但是,大多数情况下,用户未登录,并自动重定向到登录页面。我注意到如果我不使用auth中间件,并且如果用户刷新页面,则该用户会自动登录。 laravel通常不会发生这种情况。我还尝试了cookie驱动程序进行会话,但它不起作用并引起了更多问题。
在默认PHP $ _SESSION中存储user_id和cart_id时,我也没有获得任何成功。当用户从银行页面重定向回时,所有会话似乎都已清除。
如何解决该问题?
答案 0 :(得分:2)
Laravel 7更改
我们的软件包与Laravel 7兼容,但是在默认的Laravel安装中,same_site设置已更改,请确保在以下位置将same_site
更改为null
config/session.php
或回叫将不包含cookie,并且付款完成后您将被注销。因此,在您的config/session.php
更新中
return [
...
...
'same_site' => null,
...
...
];
答案 1 :(得分:0)
您可以参考此示例https://medium.com/justlaravel/how-to-integrate-paypal-payment-gateway-in-laravel-695063599449并实现付款网关。 在回调时,您的身份验证不会使用户登录令牌属性就可以重新登录