我正在尝试为客户端实现 Paypal REST API,我正处于需要测试 webhook 系统的地步。我无法获取 API 来生成事件;成功的付款应该会产生一个,我也尝试过使用 REST API 发出退款,并且我尝试过从开发人员沙箱发出退款。这些活动都没有对我产生影响。
例如,如果我执行命令:
curl -v -X GET -H 'Authorization: Bearer VALID_BEARER_TOKEN' 'https://api.sandbox.paypal.com/v1/notifications/webhooks-events'
我明白了:
{"events":[],"count":0}
即使在沙盒和直播中成功支付了十几次,可能还有六次退款,我也看到了"count": 0
。沙盒商户中心和交易明细都知道每笔交易的正确状态,如果我查询/v1/payments/payment/{id}
资源,我会看到正确的状态{id}
。
在操作上,我已经正确设置了一切:
- webhook uri 已在应用详细信息中正确注册,并订阅了所有事件类型
- 端点具有有效的 SSL 证书
- 端点没有防火墙或其他安全措施会阻止成功的 SSL 连接(我已经彻底测试过)
我已将应用程序日志记录到最精细的细节,但没有结果。我在 webhook 目标机器上监听 tcpdump 只是为了查看是否尝试了任何握手,也没有结果。我什至用应用程序尝试了旧的“删除并重新创建”技巧,但没有帮助。我还注册了一个新的 PayPal 商家账户,也遇到了同样的问题。
我确实看到启用了默认 IPN 处理程序的帐户之一的 IPN 流量。如果可能的话,我更愿意使用 webhook,我的客户首先想要这样做的原因是远离 IPN。
我在某处缺少设置吗?是否有一些神奇的无证标志?还是 webhook 支持太新了,我不应该依赖它,停止浪费我的时间并回到 IPN?