JS Checkout:如何处理父 window 在审批期间关闭?
JS Checkout: How to handle parent window closed during approval?
我们 运行 在我们的结账流程中遇到了一个奇怪的边缘案例,在我们通过 API 创建订单并启动 PayPal window 以获得用户批准后,他们能够在不触发 onCancel
回调的情况下以某种方式逃出结帐流程。
我们正在联系一些用户以弄清楚他们是如何做到这一点的,但我们已经能够通过简单地关闭原始(父)window 而 PayPal window 来重现它还开着。据我们所知,这种或其他一些非常相似的情况(如电源故障)是解决这种极端情况的唯一方法。
是否有某种处理这种情况的最佳实践?显然,我们可以有某种 chron 作业来查找旧的 non-accepted/non-canceled 订单,但我们更希望通过某种方式立即解决它们。我找到了 beforeunload
事件的文档。如果页面关闭,我是否应该取消订单?
有许多潜在 情况会导致订单未被付款人批准,例如您提到的电源故障或 window 未结永远没有任何动作,或者浏览器崩溃。您的业务逻辑不应依赖于 onCancel
曾经被调用。
对于这种情况的处理,干脆不要抓这样的PayPal订单。它们会自行过期。您自己的系统的付款尝试/购物车订单记录可以在您需要时过期。
我们 运行 在我们的结账流程中遇到了一个奇怪的边缘案例,在我们通过 API 创建订单并启动 PayPal window 以获得用户批准后,他们能够在不触发 onCancel
回调的情况下以某种方式逃出结帐流程。
我们正在联系一些用户以弄清楚他们是如何做到这一点的,但我们已经能够通过简单地关闭原始(父)window 而 PayPal window 来重现它还开着。据我们所知,这种或其他一些非常相似的情况(如电源故障)是解决这种极端情况的唯一方法。
是否有某种处理这种情况的最佳实践?显然,我们可以有某种 chron 作业来查找旧的 non-accepted/non-canceled 订单,但我们更希望通过某种方式立即解决它们。我找到了 beforeunload
事件的文档。如果页面关闭,我是否应该取消订单?
有许多潜在 情况会导致订单未被付款人批准,例如您提到的电源故障或 window 未结永远没有任何动作,或者浏览器崩溃。您的业务逻辑不应依赖于 onCancel
曾经被调用。
对于这种情况的处理,干脆不要抓这样的PayPal订单。它们会自行过期。您自己的系统的付款尝试/购物车订单记录可以在您需要时过期。