我正在实施一个支付系统,通过卡片详细信息发布到网关页面,该页面透明地将用户重定向回我的网站。 我的会话验证用户代理以确保它们在每个请求中都相同。 这在Chrome和FF中都可以正常工作,但在IE中,用户代理发送在透明重定向上是不同的。
请求1.设置付款数据的Ajax请求。用户代理是 Mozilla / 5.0(Windows NT 6.1; WOW64; Trident / 7.0; rv:11.0),如Gecko
请求2.从gatway回来的透明重定向。 (GET请求)代理是 Mozilla / 5.0(兼容; MSIE 10.0; Windows NT 6.2; Trident / 6.0)
这基本上打破了我的会话,因为它已被视为新会话,因为代理已更改。 我可以轻松关闭用户代理检查,但我想保留它。 知道发生了什么吗?
答案 0 :(得分:2)
我建议不要使用用户代理检查。在我自己的项目中,我们通常生成一个令牌,我们将其存储在会话中并将其包含在重定向URL中。当您的用户回来时,您可以将其与会话中存储的内容进行比较。
答案 1 :(得分:0)
确保您强制用户在paypal建议的相同模式下使用IE。
我从类似问题的回答:
TokenMismatch ONLY Certain Browsers - Laravel 5 Fresh/Production
"问题的根源可能是IE的兼容模式以及使用这些模式的不同会话。
你可以尝试在get和post页面上添加这一行:
标题(" X-UA兼容:IE = Edge");"