多年来,我一直在使用Paypal IPN在交易后发送电子邮件,效果很好,但是我看到了4种类似的方法:


IPN
PDT (Payment Data transfer),这是一个有趣的问题:IPN vs PDT in Paypal
REST API app webhooks
NVP/SOAP API


问题:在哪种情况下使用一个或另一个,尤其是最后两个?

paypal - Paypal IPN,PDT,REST API应用程序Webhooks,NVP/SOAP API Webhooks-LMLPHP



关于前两个问题的部分答案:使用PDT,当客户完成付款后,会立即通知您的网站。但是,使用IPN,在客户完成付款的时间与您的站点收到此事件的通知的时间之间存在实质性的滞后。但是后者可以更可靠; doc确实表示:


  PDT的主要缺点是:它仅发送一次订单确认。因此,PDT发送确认信息时,您的站点必须正在运行;否则,它将永远不会收到该消息。相反,使用IPN,实际上可以保证订单确认的交付,因为IPN会重新发送确认,直到您的站点确认收货为止。因此,贝宝建议您实施IPN而不是PDT。




最后一件事:


我尝试启用REST API应用程序webhooks,已启用Live(不是沙盒),检查是否已注册All events,并使用webhook模拟器在服务器上测试了我的侦听器脚本(正在运行),但是...可悲的是,“实时”交易不会产生任何webhook事件(因此问题甚至不是我的侦听器脚本引起的,是Paypal不会触发webhook事件...)。

paypal - Paypal IPN,PDT,REST API应用程序Webhooks,NVP/SOAP API Webhooks-LMLPHP
我注意到您可以在Manage NVP/SOAP Webhooks选项卡中或需要首先创建的REST API应用程序中创建Webhooks,有什么区别?注意:我在前者的URL中看到“ accountBasedWebhooks”,这是否意味着某些webhooks对于该帐户而言是通用的,而某些webhooks对于某个应用程序而言是特定的(那么在这种情况下,真正的应用程序是什么?)?

最佳答案

部分答案:


在为REST API应用程序设置Webhook时,仅在将事件链接到该应用程序时才会触发事件(在我看来,它从未发生!)
如果要为所有帐户触发Webhooks,则必须使用NVP/SOAP API Webhooks:https://developer.paypal.com/developer/accountBasedWebhooks/create,因此在我的情况下,可以使用此选项。

关于paypal - Paypal IPN,PDT,REST API应用程序Webhooks,NVP/SOAP API Webhooks,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/58416041/

10-11 03:43