Php 如何处理PayPal IPN延迟

Php 如何处理PayPal IPN延迟,php,twitter-bootstrap,drupal,delay,paypal-ipn,Php,Twitter Bootstrap,Drupal,Delay,Paypal Ipn,我们使用PayPal设计了一个一次性购买选项的Bootstrap网站,到目前为止,IPN响应速度很快,没有问题 然后,我们有另一个使用定期订阅的引导网站,IPN总是延迟。我们还使用“PayPal角色”模块开发了另外两个基于定期订阅的Drupal网站,这些网站上的IPN也总是延迟 当客户/用户在完成付款后返回到我们的任何订阅网站时,我们的确认页面会返回“您无权查看此页面…”错误,因为IPN已延迟且尚未从PayPal收到。通常,如果我们等待大约5-10秒并刷新页面,IPN就会赶上,更新数据库,错误就

我们使用PayPal设计了一个一次性购买选项的Bootstrap网站,到目前为止,IPN响应速度很快,没有问题

然后,我们有另一个使用定期订阅的引导网站,IPN总是延迟。我们还使用“PayPal角色”模块开发了另外两个基于定期订阅的Drupal网站,这些网站上的IPN也总是延迟

当客户/用户在完成付款后返回到我们的任何订阅网站时,我们的确认页面会返回“您无权查看此页面…”错误,因为IPN已延迟且尚未从PayPal收到。通常,如果我们等待大约5-10秒并刷新页面,IPN就会赶上,更新数据库,错误就会消失,用户就可以访问我们的网站。然而,在测试过程中有一次IPN需要10分钟才能到达


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

贝宝是正确的。IPN不是一个实时系统。您可能最晚会获得一个IPN(或者,如果您的系统已关闭,则必须等待IPN重试)


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

我设法联系了PayPal技术支持,我想我会告诉大家,IPN选项还有一种替代方案,称为PDT(支付数据传输)

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

PDT不允许来宾结账,它只发送一次交易数据。如果您的网站关闭,它将不会再次尝试发送通知,并且不会在将来发送有关退单、退款等的其他通知


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

感谢您的回复。我们有许多网站,其中一些网站将使用Pro,但我们有一些较小的网站需要使用免费的标准PayPal服务。对于提供数字服务的小型网站来说,听上去PDT可能是目前最好的选择。还有其他支付网关,比如Stripe,可以免收月费(你在支付时支付)。如果PayPal不打算做你需要的事情,那可能值得一试,我想这就是为什么他们称之为即时付款通知。呵呵。