如何处理 PayPal IPN 延迟

How to Handle PayPal IPN Delay

我们设计了 1 个 Bootstrap 网站,使用 PayPal 提供一次性购买选项,到目前为止,IPN 响应迅速,没有任何问题。

然后,我们有另一个 Bootstrap 网站使用定期订阅并且 IPN 总是延迟。我们还使用 'PayPal Roles' 模块开发了另外 2 个基于定期订阅的 Drupal 网站,并且 IPN 在这些网站上也总是延迟。

当 customer/user 在完成付款后返回到我们的任何订阅网站时,我们的确认页面 returns 出现 "You are not authorized to view this page..." 错误,因为 IPN 延迟且尚未收到来自贝宝。通常,如果我们等待大约 5-10 秒并刷新页面,IPN 会赶上来,更新数据库,错误就会消失,用户就可以访问我们的网站了。但是,在测试期间有一次 IPN 需要 10 分钟才能到达。

在 PayPal Developer 网站上,我了解到 IPN 不是实时解决方案,但似乎没有提供解决此问题的解决方案。那么解决潜在 IPN 延迟的最佳解决方案是什么?由于大部分付款都是成功的,我们希望我们的客户在付款完成后能够立即访问我们的网站。如果由于某种原因付款确实失败,我们可以手动更新客户帐户。

贝宝是对的。 IPN 不是实时系统。您可能会在一个小时后获得 IPN(或者,如果您的系统出现故障,则必须等待 IPN 重试)。

如果实时性如此重要,那么您应该切换到 Payments Pro。 API 为您提供应能满足您需求的实时响应。但是,您必须同时订阅 Payments Pro 和定期付款系统。

我设法获得了 PayPal 技术支持,我想我会分享 IPN 选项的替代方案,称为 PDT(支付数据传输)。

PDT 将立即 return 交易数据,对于需要立即响应客户的网站(如提供数字产品或服务的商店)非常有用。

虽然 PDT 不允许客人结账,但它只会发送一次交易数据。如果您的网站出现故障,它不会重新尝试发送通知,并且以后不会发送有关拒付、退款等的其他通知。

PayPal 通常推荐 IPN,但公开表示它可能会有延迟。