永远不会发送 PayPal webhook 事件?

Posted

技术标签:

【中文标题】永远不会发送 PayPal webhook 事件?【英文标题】:PayPal webhook events never being sent? 【发布时间】:2016-09-07 15:00:47 【问题描述】:

我们有一个使用 PayPal 作为付款方式之一的制作游戏。在某些情况下,我们永远不会收到 webhook 通知。

这是发生的顺序。有时我们会从这个序列中获得 webhook,而其他时候我们不会。在服务器上,我们使用 Java API。所有这些都是生产(不是沙盒)PayPal 服务器的行为。

    用户选择产品后,它会调用我们的服务器,该服务器通过 Payment.create() 创建 Payment 对象。此时状态为“已创建”,我们将用户重定向到链接中返回的approval_url。 用户批准付款并发送回我们的服务器。我们通过 Payment.get() 获取付款,该方法成功并且状态为“已创建”。 我们使用 PaymentExecution 执行付款。这将返回更新状态为“已批准”的付款。 然后我们等待 WebHook 通知我们付款已完成。有时,从不发送此 webhook,导致购买不完整。检查 PayPal 控制台,不存在付款的 webhook 事件,即使付款显示为已完成。

这里的问题是:

这是正确的顺序吗?还是缺少什​​么? 当用户从 PayPal 返回而不是仍然“创建”时,不应该“批准”付款吗? 在成功执行后付款不应该是“完成”还是“进行中”? 处理 webhook 永远不会到达的情况的正确方法是什么?继续轮询付款直到状态更新?

【问题讨论】:

【参考方案1】:

我认为您的序列没有任何问题。也可以参考这里的步骤作为例子-https://developer.paypal.com/docs/integration/web/accept-paypal-payment/

关于 Webhooks,您提到有时您会获得 Webhooks,但有时您没有。您能否为您没有看到任何 Webhook 的调用提供相关性或调试 ID?我们会解决问题并回来吗?

【讨论】:

丢失的 webhook 调用被报告为事件 160508-000086。

以上是关于永远不会发送 PayPal webhook 事件?的主要内容,如果未能解决你的问题,请参考以下文章

Paypal 自适应支付和 Webhook 事件未注册

从 paypal webhook 获取事件数据

Paypal 不会在沙盒中的 BILLING.SUBSCRIPTION.CANCELLED 上触发 webhook

PayPal webhook 所有事件仍处于待处理状态

RESTful Paypal API WebHooks Simulator 不适用于 Laravel

订阅所有 paypal webhooks 事件