如何测试PayPal交易「On Hold」状态Webhook/通知?缺失更新排查
PayPal交易「On Hold」状态Webhook配置与测试指南
一、需启用的Webhook事件
PayPal交易进入「On Hold」(资金保留)状态时,会触发PAYMENT.CAPTURE.UPDATED事件。这个事件包含捕获资金的状态变更详情:
- 事件payload中的
status字段会变为PENDING pending_reason字段会显示具体保留原因(如REVIEW、RECEIVING_PREFERENCE_MANDATES_MANUAL_ACTION等)
你之前仅收到APPROVED状态通知,大概率是未启用该更新类事件,需在PayPal商家后台的Webhook配置中勾选启用PAYMENT.CAPTURE.UPDATED。
二、Webhook测试方法
1. 沙箱环境模拟真实场景
- 创建PayPal沙箱商家账号,进入收款偏好设置,开启「手动审核所有付款」选项
- 用沙箱买家账号发起支付并完成授权捕获,此时商家账号的交易会进入「On Hold」状态,PayPal会向配置的Webhook端点推送
PAYMENT.CAPTURE.UPDATED事件
2. 使用Webhook模拟器直接测试
- 登录PayPal开发者平台,进入「Webhook模拟器」
- 选择你的Webhook端点,事件类型选择
PAYMENT.CAPTURE.UPDATED - 自定义payload:将
status设为PENDING,pending_reason设为对应保留原因,点击推送即可验证系统是否能接收并解析该事件
三、额外排查要点
- 确认Webhook端点可正常访问:确保端点无防火墙拦截,且能在接收PayPal请求后返回
200 OK响应(PayPal会在端点响应异常时重试,但可能不会显示在你的Webhook历史中) - 核对Webhook配置:检查商家后台的Webhook列表,确认
PAYMENT.CAPTURE.UPDATED已启用,且端点URL无误 - 查看PayPal端事件日志:在Webhook配置页面的「事件历史」中,确认是否有
PAYMENT.CAPTURE.UPDATED事件被推送,排查是推送失败还是接收端未处理
内容的提问来源于stack exchange,提问作者rushgsp
相关产品推荐
相关产品推荐

