跳到主要内容
异次元店铺1 支付回调不通?按这个顺序排查
异次元店铺1 /支付对接

支付回调不通?按这个顺序排查

「钱扣了,订单没变」——这个问题必须快速解决,因为每拖一分钟都在产生客服工单。

先确认问题在哪一段

支付流程分三段,先定位是哪段断了:

客户支付 → [1] 支付平台收到钱 → [2] 平台回调你的站点 → [3] 站点处理订单

去支付平台后台看这笔交易是否存在:

  • 不存在 → 问题在 [1],钱可能根本没付成功
  • 存在,但回调记录显示失败 → 问题在 [2],往下看
  • 回调成功但订单没变 → 问题在 [3],看站点日志

绝大多数情况是 [2]。

按概率排查 [2]

一、回调地址填错

去支付渠道后台核对回调地址。最常见的错误:

  • 站点已经切了 HTTPS,回调地址还是 http://
  • 换过域名,回调地址还是旧的
  • 地址末尾多了或少了斜杠

二、CDN 拦截

:::danger 这是套了 CDN 之后最常见的原因 CDN 会把回调请求当成异常流量拦掉,或者缓存了响应。

解法:给回调单独开一个不走 CDN 的子域名。 :::

三、防火墙 / WAF 拦截

支付平台的回调 IP 可能被你的安全策略拦了。查 Nginx 访问日志,看有没有这个请求:

tail -n 200 /www/wwwlogs/yourdomain.com.log | grep -i notify
  • 日志里没有这条请求 → 请求根本没到 Nginx,是网络层拦的(安全组、云 WAF)
  • 有请求但状态码是 403 → 是站点的 WAF 规则拦的
  • 状态码 200 → 请求到了,问题在 [3]

四、伪静态没配

回调地址通常是 /pay/notify/xxx 这种,没有伪静态会 404。检查站点伪静态配置是否存在。

五、SSL 证书链不完整

支付平台校验证书比浏览器严格。浏览器显示正常不代表没问题,用命令验证:

curl -vI https://yourdomain.com/ 2>&1 | grep -i "SSL certificate"

或者用 SSL Labs 在线检测,看有没有 Chain issues

排查表

现象 最可能的原因
所有渠道都不回调 CDN 或防火墙
只有某一个渠道不回调 该渠道回调地址填错
切 HTTPS 之后开始的 回调地址还是 http,或证书链不全
时好时坏 挂机版掉线,见挂机版配置
换域名之后开始的 回调地址是旧域名

临时止血

排查期间,用后台「补单」功能先把已付款的订单手动完成,别让客户等。

评论 0

目录
登录 / 注册 登录后可点赞与评论
风格
明暗
语言
风格
明暗
语言