支付
充值、支付配置与回调相关问题的排查。后台开启和运营操作见配置支付与充值;商户申请、密钥配置与回调见技术指南·积分与支付。
配置与启用
充值页不显示微信/支付宝选项
- 原因:后台「可用支付方式」未勾选对应渠道,或「启用充值」总开关未打开。
- 处理:Admin → 支付配置(
/admin/payment)勾选所需渠道并开启充值后保存,见配置支付与充值。
充值/支付接口返回 502(支付暂不可用 / 微信支付未配置)
- 原因:对应支付渠道(微信/支付宝)的商户密钥未在
.env配置,或配置后未重启容器。未配置时优雅降级返回 502,不影响其他功能。 - 处理:在
.env填入对应商户密钥并重建容器,再到后台「支付配置」确认状态卡显示已配置。
下单提示「该支付方式未启用」
- 原因:请求携带了后台「可用支付方式」中未勾选的渠道。
- 处理:在后台支付配置页补勾选对应方式并保存。
微信报签名/证书类错误
- 原因:证书私钥 base64 转换出错或填错位置。
NUXT_WXPAY_MERCHANT_PRIVATE_KEY应为apiclient_key.pem,NUXT_WXPAY_MERCHANT_CERT应为apiclient_cert.pem。 - 处理:检查 base64 是否为单行无换行、变量名是否拼写正确、两份 pem 是否对调。
支付宝回调验签失败
- 原因:
NUXT_ALIPAY_PUBLIC_KEY填成了应用公钥而不是支付宝公钥;或私钥/公钥包含换行时\n转义不完整。 - 处理:从开放平台「查看支付宝公钥」处复制支付宝公钥;确认密钥原文换行已用
\n转义。
支付与回调
微信报 NO_AUTH「此商家的收款功能已被限制,暂无法支付」(HTTP 403)
- 原因:商户侧问题,微信支付商户的收款功能被限制,不是本站点配置问题。
- 处理:登录微信支付商户平台核实收款状态,必要时联系客服解除限制。日志中
[pay-wechat]会打印微信返回的原始错误。
微信出码失败但未出现 NO_AUTH
- 处理:查看日志中
[pay-wechat]打印的微信code/message,按微信文档定位(例如商户号未开通 Native 支付、AppID 未绑定商户号等)。
用户付了款但一直「待支付」,直到超时取消
- 原因:回调没有到达服务器。常见:
NUXT_APP_URL不是公网域名(仍为http://localhost:3000)、容器/反向代理未放行/api/pay/notify/**、回调被防火墙拦截。 - 处理:把
NUXT_APP_URL改为公网 HTTPS 地址并重启,确认回调路径放行,再查服务端[pay-notify]日志确认验签结果。
想退款
- 原因:本系统未实现退款 API,已支付订单无法在系统内退回。
- 处理:在微信/支付宝商户平台操作退款,或另行接入退款能力。不要用人工重复扣减积分的方式处理已支付订单的资金。

