我正在使用Laravel 7,并使用PayTabs付款网关进行付款。当用户从“付款”标签中重定向后,所有会话和Auth均会清除。
在重定向到Paytabs之前,在将数据放入会话中时会保存会话。
Session::put('data', $data);
Session::save();
重定向到Paytabs的方法如下:
if ($response->response_code == "4012") { //Page created
return redirect()->to($response->payment_url);
} else {
abort(404);
}
我还从CSRF令牌检查中排除了返回网址,如下所示:
VerifyCsrfToke.php
protected $except = [
'/paytab_return'
];
我还检查了Paytabs是否使用https和www重定向到正确的URL。
收藏夹需要解决此问题。谢谢
答案 0 :(得分:0)
这适用于Laravel 6.19.1:
$sessionKey = config('session.cookie') . '=' . session()->getId();
$successUrl = route('wirecardSuccess') . '?' . $sessionKey;
我要输入的网址是
http://beatbox.vnr:8082/vnr/payment/wirecard/success?self_service_local_vnr_session=qNSQ7SessionIdtEA3Z72ReuvgsFt
作为URL,其中self_service_local_vnr_session是我的会话cookie名称,而qNSQ7SessionIdtEA3Z72ReuvgsFt当前会话的ID。
<?php
declare(strict_types=1);
namespace App\Http\Middleware;
use Illuminate\Contracts\Session\Session;
use Illuminate\Http\Request;
/**
* Class StartSession
* @package App\Http\Middleware
*/
class StartSession extends \Illuminate\Session\Middleware\StartSession
{
/**
* Get the session implementation from the manager.
*
* @param Request $request
* @return Session
*/
public function getSession(Request $request): Session
{
return tap($this->manager->driver(), static function ($session) use ($request) {
$sessionCookieName = config('session.cookie');
if ($request->has($sessionCookieName)) {
$sessionId = $request->input($sessionCookieName);
} else {
$sessionId = $request->cookies->get($session->getName());
}
$session->setId($sessionId);
});
}
}
我希望它能对登陆此页面的人有所帮助:)
答案 1 :(得分:0)
在 config/session.php 中编辑此字段
requestLocationUpdates