5

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

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

  1. 整个付款过程正常,我可以与 Paypal 通信并验证付款。
  2. 使用 webhook 模拟器时它工作正常,所以我知道我的系统没问题。
  3. 我订阅了所有活动。我希望至少收到“PAYMENT.AUTHORIZATION.CREATED”和“PAYMENT.SALE.COMPLETED”通知(如果付款被拒绝,则为“PAYMENT.SALE.DENIED”)。我检查了它们是否列在支持的事件类型列表中
  4. 我仍在使用沙盒环境,但我没有看到任何说明它不应该在这种情况下工作。
  5. “Sandbox Webhooks Events”是空的,但我不确定它们是否应该出现在这里。
  6. 我不知道这个相关 ID/调试 ID 应该在哪里。
    编辑:从答案中,可以在响应标头中找到相关 ID。这里是地雷:
    • aa25ee518487a // 创建 webhook
    • 1fbf78ce3a034 // 支付创建
    • 7a5d3c34daa5d // 支付执行

我还应该做些什么来让它发挥作用吗?还是我可以做更多的事情来调试它?
奖励:在我的情况下,我期望“PAYMENT.AUTHORIZATION.CREATED”和“PAYMENT.SALE.COMPLETED/DENIED”通知是否正确?

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

4

2 回答 2

3

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

这解决了我的问题。

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

  • 付款.捕获.完成
  • 付款.捕获.拒绝
  • 付款.捕获.待处理
  • 付款.捕获.反转"

来监控它的实际状态。

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

于 2016-10-14T14:44:47.163 回答
-1

您可以在 api 调用的响应标头中找到相关 ID。如果您可以让我们知道,我们可以帮助您进一步排除故障。

谢谢

于 2016-07-15T04:02:38.130 回答