gpt4 book ai didi

.net - 从支付网关回发时丢失 session

转载 作者:行者123 更新时间:2023-12-05 07:22:44 24 4
gpt4 key购买 nike

我有一个 .NET Web 应用程序,在用户通过支付网关付款后,我似乎在回发时丢失了我的 session 。
1. 用户登录门户2. 基于门户中的交易,一次被定向到支付网关门户3. 调用第三方支付网关时,我们传递支付状态发布到的回调 URL 以及一些详细信息4. 当我通过跟踪运行它时,我看到当用户登录我的应用程序时生成的 ASP.NET_SessionId cookie 在上面的步骤 #3 中被支付网关传回给我。5. 此时,当我尝试检索 session 详细信息时,它们丢失了。结果我让用户返回登录页面,而不是确认付款状态,

我相信当从支付网关回发时, session 不会在我的 IIS 中检索到。我检查了 AppPool 回收超时(设置为默认值 1740 ),这将回收 session 。然而,这种情况在 1740 分钟的时间跨度内发生了多次。我的默认空闲超时是 20 分钟。当它确实发生时,并不是用户空闲超过 20 分钟

这是间歇性的,一天中的任何特定时间都可能发生在少数用户身上。可能是什么原因导致的,我如何跟踪 IIS 中的 session 以查看它是否真的已过期?

最佳答案

其实我也面临着类似的事情。

我还没有解决它,但这里有几件事我必须检查一下。

确保您返回支付网关的 url 是相同的 http/https 机制。如果您的 session cookie 仅是安全的,而您返回到非安全状态,则该 session 将会丢失。

我很挣扎,因为即使 session 应该仍然处于事件状态,我唯一能取回它的方法是将 session ID 附加到安全性较低的 url。

然后在调用 session_start 之前添加到我的代码中

if (isset($_POST['sessionname'])) {
session_id($_POST['sessionname']);
}

session_start();

关于.net - 从支付网关回发时丢失 session ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56430829/

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