未收到 Paypal webhook 事件

Paypal webhook events not received

我正在使用贝宝 REST API 实现一个简单的支付工作流程。我首先创建一个付款,将用户重定向到此调用返回的 URL,并在批准后执行付款。 为了让它更可靠,我想使用 webhook 通知。
这是它开始出现问题的时候:我没有收到任何通知。

鉴于到目前为止我阅读了不同的问答,以下是我的评论:

  1. 整个支付过程正常,我能够与 Paypal 通信并验证支付。
  2. 它在使用 webhook 模拟器时工作正常,所以我知道我的系统没问题。
  3. 我订阅了所有活动。我希望至少收到 "PAYMENT.AUTHORIZATION.CREATED" 和 "PAYMENT.SALE.COMPLETED" 通知(或者 "PAYMENT.SALE.DENIED" 如果付款被拒绝)。我检查过它们是否列在 supported event type list.
  4. 我仍在使用沙箱环境,但我没有看到任何说明它不应在此上下文中工作的内容。
  5. "Sandbox Webhooks Events" 是空的,但我不确定它们是否应该出现在这里。
  6. 我不知道这个关联 ID/debug ID 应该在哪里。
    编辑:从答案中,可以在响应 header 中找到 correlationID。 这是地雷:
    • aa25ee518487a // webhook 创建
    • 1fbf78ce3a034 // 支付创建
    • 7a5d3c34daa5d // 支付执行

我还应该做些什么来让它发挥作用吗?或者我还能做些什么来调试它?
额外奖励:在我的案例中,我期望收到 "PAYMENT.AUTHORIZATION.CREATED" 和 "PAYMENT.SALE.COMPLETED/DENIED" 通知是否正确?

EDIT2:一个月后,我又回到了这个问题。我现在可以在仪表板中看到 webhook 事件(不知道发生了什么变化),它的状态是 PENDING。它的transaction-id是4396a630-78bc-11e6-8890-77339302725b。 知道如何获得有关其待处理原因的更多详细信息吗?

您可以在 api 调用的响应 headers 中找到关联 ID。如果您能让我们知道,我们可以帮助进一步解决问题。

谢谢

来自 PayPal 技术支持:
“我看到您在测试帐户上启用了付款审核。 您能否禁用它并提交一些交易并确保它们已完成,然后检查 webhook 通知。"
此设置可以在 Sandbox > accounts 中找到。然后对于您使用的每个帐户,在个人资料 > 设置中,将 "Payment Review" 设置为关闭。

这解决了我的问题。

注意:据我了解,执行支付后,如果状态为"approved",则支付完成。事实并非如此,因为付款可能会自动接受审查。如果像我一样您需要完全控制付款状态,您可能需要切换到带有 intent="authorize" 的付款方式。执行后您将需要另一个步骤,即捕获付款。然后您可以订阅:

  • PAYMENT.CAPTURE.COMPLETED
  • PAYMENT.CAPTURE.DENIED
  • PAYMENT.CAPTURE.PENDING
  • PAYMENT.CAPTURE.REVERSED

监控其实际状态。

关于"PAYMENT.AUTHORIZATION.CREATED" webhook事件,它是在执行支付后触发的。