永远不会发送 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 不会在沙盒中的 BILLING.SUBSCRIPTION.CANCELLED 上触发 webhook