支付集成时如何处理CallBackURL,收不到第三方回调该如何解决
如果用户支付成功,第三方系统将通过调用此前重定向请求中提交的CallBackURL,向我方系统发送通知
官方回调流程图:
回调未接收排查步骤
1. 回调地址可用性校验
- 确认填写的
CallBackURL为公网可直接访问地址,禁止使用localhost、内网IP、需VPN访问的私有网络地址 - 临时放开服务器安全组、防火墙、WAF的IP限制,避免第三方回调请求被安全策略拦截
- 手动使用curl命令模拟回调请求,确认接口可正常返回200状态码:
若返回4xx、5xx错误,先修复接口本身的业务报错。curl -X POST 你的回调地址 -d '模拟第三方回调参数'
2. 回调接口规则适配校验
- 确认接口支持第三方要求的请求方法,绝大多数支付回调为POST请求,避免仅配置了GET请求的接收逻辑
- 临时关闭登录态校验、CSRF校验、签名校验,确认请求可正常触达后再逐步开启校验规则
- 确认接口返回内容符合第三方要求,部分平台要求回调必须返回固定字符串(如
success)才会判定回调成功,否则会停止后续推送。
3. 交易与平台侧日志排查
- 先确认测试订单为支付成功状态,未支付、支付失败的订单不会触发回调
- 登录第三方支付商户后台,查询对应交易的回调日志,确认平台是否发起回调、回调返回的状态码与报错信息
- 若平台显示回调已发起,排查你方Web服务器(Nginx/Apache)的访问日志、服务入口日志,确认请求是否被反向代理、路由规则拦截。
4. 特殊场景排查
- 确认回调地址无301/302跳转配置,多数支付平台不会跟随跳转地址发起回调
- 确认回调地址使用标准端口(80/443),部分平台不支持自定义端口的回调地址
- 若使用HTTPS协议,确认SSL证书为合法公网证书,自签名、过期证书都会导致回调请求失败。
内容的提问来源于stack exchange,提问作者Arslan
相关产品推荐
相关产品推荐

