Skip to content

问题现象

用户在微信小程序、公众号或收银台使用微信支付/支付宝完成扣款后,微信/支付宝端显示扣款成功,但在商城中订单状态依然显示为“待支付”或“支付失败”,未正常流转为“已支付/待发货/待审核”。


根本原因

支付平台(微信支付/支付宝)在用户付款成功后,会由官方服务器向 EBAOZU 系统的 异步通知回调地址(Notify URL) 发起 POST 回调请求。 若系统未将订单置为已支付,通常是由以下原因导致:

  1. 后台系统域名配置错误:后台【基础设置】填写的网站域名协议不正确(如实际为 HTTPS 却填了 HTTP,或反之),导致支付网关下发的回调地址无法送达。
  2. 异步回调接口被防火墙/CDN拦截:宝塔防火墙、云厂商 WAF 或 CDN 拦截了来自微信/支付宝服务器的 POST 回调请求,返回了 403 Forbidden 或验证码。
  3. SSL 证书或协议异常:微信支付与支付宝要求回调 URL 必须使用有效的 SSL 证书,过期或自签名证书会被直接拒绝连接。
  4. 支付密钥或公私钥配置错误:异步通知到达后端后,后端在进行验签(Signature Verify)时失败,导致未执行业务状态更新。
  5. 消息队列消费延迟或阻塞:支付回调触发的异步事件排队中未能及时消费。

排查与解决步骤

核对后台网站域名与协议

  1. 登录平台总后台 -> 【设置】 -> 【系统设置】 -> 【基础设置】。
  2. 确认 网站域名 格式正确,必须包含协议且与线上访问一致(例如 https://www.yourdomain.com,末尾不带 /)。
  3. 保存后重启 Swoole 服务。

检查微信支付配置

  1. 登录微信商户平台(pay.weixin.qq.com),核对商户号(MchID)、API v2 / v3 密钥。
  2. 检查公众号/小程序 AppID 与微信商户号的绑定授权关系(AppID 授权关联)。
  3. 检查后台是否上传了微信支付 API 证书文件(apiclient_cert.pemapiclient_key.pem)。

检查支付宝配置

  1. 登录支付宝开放平台,核对 应用公钥/私钥支付宝公钥(注意区分“应用公钥”与“支付宝公钥”)。
  2. 若采用证书模式,需在后台正确上传应用公钥证书、支付宝公钥证书和支付宝根证书。
  3. 检查支付宝应用中的“授权回调地址”与接口权限集是否已开通“电脑网站支付/手机网站支付/小程序支付”。

检查防火墙与 WAF 放行

确保防火墙未拦截以下支付回调路径:

  • 微信支付回调路径:/api/wechat/notify/api/order/notify
  • 支付宝回调路径:/api/alipay/notify

查看系统日志排查

若回调已到达但处理报错,请查看服务器日志定位具体验签或数据库写入异常:

bash
tail -n 100 /www/wwwroot/你的项目/runtime/log/当前年月/当前日期.log

日志中搜索 notifypay 关键词,查看具体的验签失败或异常堆栈信息。

承信租多门店租赁商城系统官方文档