【发布时间】:2021-09-19 15:39:31
【问题描述】:
我正在构建一个电子商务网站,但在使用两个不同的支付网关时遇到了问题。访客输入他们的卡详细信息,然后进入 3D Secure 步骤,这需要访问他们的银行网站。当他们从那里返回时,他们在我们的网站上没有 cookie,我们无法识别它们来链接订单。
使用一个支付网关,这会导致订单失败;另一方面,付款通过,但未链接到任何特定帐户或购买的产品。显然,这两个都是问题。
我知道很多浏览器会在关闭浏览器时清除 cookie,但我不知道有什么会因为您离开网站片刻而清除 cookie。 (此外,在两个支付网关之一上,3D 安全步骤是在 iframe 中完成的,因此用户甚至还没有离开网站。)正在消失的是用户的会话。
具体问题:
- 会话 cookie 具有这种易失性是否很常见?这是我无法复制自己的行为。是否有一些常见的浏览器设置或插件会积极(并且过早地)删除会话 cookie?
- 是否有其他原因导致我看到的效果?
【问题讨论】:
-
我不知道我们是否在谈论“标准”重定向(即,没有卷曲之类的)。例如,您确定您没有从
http://www.example.org重定向到支付网关并获得重定向回调到http://example.org?此外,大多数支付网关在其支付状态通知中都包含某种信息(订单 ID 等),可让您将此类事件与用户相关联。 -
有有个这样的浏览器扩展,我使用的是github.com/Cookie-AutoDelete/Cookie-AutoDelete(我对此非常满意,因为它让我可以“是啊,无论如何”到所有 GDPR cookie 弹出窗口)……但我认为这很可能不是您的问题的原因。它可能与您的会话 cookie 的
SameSite设置有关,因此请检查一下。 developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Set-Cookie/… -
嗯。自动将
SameSite设置从“Lax”升级到“Strict”的浏览器设置很可能会导致我看到的问题。很可能就是这样,@CBroe。 -
@CBroe。将会话
SameSite设置为“Strict”确实允许我重现问题(然后提供解决方法),就是这样。你想把它写成答案吗?
标签: php apache session-cookies