gpt4 book ai didi

php - 从支付网关重定向后清除 Laravel session 和 Auth

转载 作者:行者123 更新时间:2023-12-05 04:58:33 30 4
gpt4 key购买 nike

我正在使用 Laravel 7 并使用 PayTabs 支付网关进行支付。当用户从 Paytabs 重定向回来时,所有 session 和 Auth 都被清除。

在重定向到 Paytabs 之前,我在将数据放入 session 时保存 session 。作为

Session::put('data', $data);
Session::save();

并且重定向到 Paytabs 如下:

if ($response->response_code == "4012") { //Page created
return redirect()->to($response->payment_url);
} else {
abort(404);
}

我还从 CSRF token 检查中排除了返回 url,如下所示:

验证CsrfToke.php

protected $except = [
'/paytab_return'
];

我还检查了 Paytabs 是否使用 https 和 www 重定向到正确的 URL。

解决这个问题需要帮助。谢谢

最佳答案

这适用于 Laravel 6.19.1:

  1. 我在支付 channel 的成功、错误或 cancelUrls 中添加了一个 GET 变量
  2. 此变量的调用与 session cookie 的名称完全相同
$sessionKey = config('session.cookie') . '=' . session()->getId();
$successUrl = route('wirecardSuccess') . '?' . $sessionKey;

我得到的 URL 是例如

http://beatbox.vnr:8082/vnr/payment/wirecard/success?self_service_local_vnr_session=qNSQ7SessionIdtEA3Z72ReuvgsFt

作为 url,其中 self_service_local_vnr_session 是我的 session cookie 名称,qNSQ7SessionIdtEA3Z72ReuvgsFt 是当前 session 的 ID。

  1. 然后我需要用这段代码扩展 StartSession 中间件
<?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. 付款已完成,重定向 URL(带有 session ID)允许我检索旧 session 信息。

我希望它能帮助登陆此页面的人:)

关于php - 从支付网关重定向后清除 Laravel session 和 Auth,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63893109/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com