多年以来,我一直在使用Paypal IPN在交易后发送电子邮件,效果很好,但是我看到了4种类似的方法:
问题:在这种情况下,使用一个或另一个,尤其是最后两个?
关于前两个问题的部分答案:使用PDT,当客户完成付款后,立即会通知您的站点。但是,使用IPN,在客户完成付款的时间与您的站点收到此事件的通知的时间之间存在实质性的滞后。但是后者可以更可靠; doc确实表示:
PDT有一个主要缺点:它仅发送一次订单确认。因此,PDT发送确认信息时,您的站点必须正在运行;否则,它将永远不会收到该消息。相反,使用IPN,实际上可以保证订单确认的交付,因为IPN会重新发送确认,直到您的站点确认收货为止。因此,贝宝(PayPal)建议您实施IPN而不是PDT。
最后一件事情:
我已尝试启用REST API应用程序的webhooks,已将其启用为Live
(不是沙盒),检查是否已注册All events
,并使用webhook模拟器在服务器上测试了我的侦听器脚本(正在运行),但是...可悲的是,“实时”交易不会生成任何webhook事件(因此问题甚至不是来自我的侦听器脚本,是Paypal不会触发该webhook事件...)。
我注意到您可以在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,因此在我的情况下这是使用选项。