何时使用PayPal中的IPN和WebHooks作为通知机制?

15

我正在查看WebHooks和IPN的文档,想知道:在我的商店中,如果我不需要实时通知,应该使用哪个?即使延迟1小时也无妨。对于这个问题,WebHooks和IPN有何不同?

3个回答

9

IPN是通知商家付款或订阅等事件的经典方式,与已弃用的经典API配对使用。事件可能需要一分钟才能到达商家。

Webhooks是新的REST API方式,事件几乎即时发送到商家。

最好实现Webhooks,因为它是新的方法,而IPN将来可能会被废弃。


2
Webhooks有一些不太重要的缺点。首先,如果您发送了数百个付款,则Webhook将被通知数百次。这是一种自动DDOS攻击。其次,如果您不使用API,则不会触发事件。也就是说,如果您从PayPal Web应用程序进行简单的付款,则Webhook不会被通知。这也完全没有记录。 - agori
在设计这样的系统时,最好将Webhook接收器放置在队列管理器(例如RabbitMQ或其他redis支持的队列工作者)之后。 - Shafiq al-Shaar
@agori能否详细说明一下"webhook不会被通知"的意思?您是指手动发送付款时,webhook不会被触发吗?如果您将PayPal Checkout正确集成到您的服务中,这难道不是可以忽略的吗? - Martin Braun

3
这是PayPal关于Webhooks、IPN和PDT的通知文档的入口点:https://developer.paypal.com/docs/notifications/ 我无法提供明确的区别,但一些来源称Webhooks比IPN在第一条消息上更快。Webhooks确实是最近实现的。根据我的经验,IPN消息非常复杂,一点也不直接明了。Webhook消息乍一看更加直接明了。
基于你的描述,我认为两者之间没有太大的区别。我会优先考虑在你的技术栈中是否有更多现成的库可用。

我正在使用Paypal订阅API,文档在此处 https://developer.paypal.com/docs/api/subscriptions/v1/。我正在使用Paypal Webhook进行回调/通知,但如果订阅付款失败,Webhook没有通知我,但是Paypal IPN具有通知我有关跳过/失败付款的功能。因此,我考虑同时使用Webhook和IPN,但我担心Paypal已经弃用了许多东西,也许IPN是下一个被弃用的,那么Paypal会弃用IPN的可能性有多大? - HarisH Sharma

-6

1
那对于原帖的目的来说,“Webhooks和IPN有什么区别?” - philraj
在我看来,Webhooks 更加简洁。它还可以在失败时重试,并且比 IPN 更快,因为 IPN 大约需要一分钟。“如果该应用程序不可用或响应时间过长,PayPal 将取消请求并在 3 天内重试 25 次。” - Danish Absar

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接