资讯动态

观察行业视觉,用专业的角度,讲出你们的心声

微信支付接入要准备什么?企业常卡住的五个环节

2026-10-06

接微信支付,写代码往往一天,等配置常常一周。五个常见卡点:商户主体与小程序主体不一致、经营场景与类目不符、支付授权目录没配、API 证书与密钥放错、支付回调地址外网不可达。

第一关:主体不一致会怎样?

小程序的主体(营业执照)和微信支付商户号的主体必须是同一个,或者有明确的关联关系(同集团、同法人可申请关联)。用 A 公司的小程序收 B 公司的钱,属于二清,会被限制。这一条要在注册前确认,改起来非常麻烦。

第二关:经营场景填错了有什么后果?

商户号申请时要选经营场景:线下门店、公众号、小程序、APP、网站。选了小程序,就要填小程序 AppID;选了线下门店,要填门店地址和照片。填错会导致支付功能开通了但下单时报「商户号未配置该场景」。

第三关:授权目录和 AppID 怎么绑定?

  • 小程序支付:在商户平台绑定小程序 AppID,否则调起支付会报错
  • H5 支付:要配置授权域名,且域名必须已备案
  • Native 扫码支付:要配置回调地址,且必须是公网可访问的 https
  • APP 支付:需要在开放平台创建应用并通过审核

第四关:证书和密钥的位置

商户 API 证书、APIv3 密钥、平台证书,这三样东西经常被放错。常见问题:证书路径写成了本地绝对路径、上线后忘记同步、密钥用了 APIv2 的去调 APIv3 接口。现在新接入建议直接用 APIv3,密钥长度是 32 位,不是 16 位。

安全上要注意:密钥不要写进代码仓库,放在环境变量或独立配置文件里,并且不要放在 web 可访问目录。这一点在服务器被扫描时区别很大。

第五关:回调为什么总是不通?

支付成功后的回调是「服务端到服务端」的请求,很多人只在自己浏览器里测通就上线,结果回调被防火墙拦、被 CDN 缓存、被 https 证书链问题挡住。表现是:用户付了钱,订单状态还是「待支付」。

排查顺序:先看服务器访问日志有没有收到请求,再看证书是否完整(中间证书要带),最后看是否被 WAF 规则拦。回调地址最好独立于前端域名,避免被当成普通页面做缓存。

对账这一步别省

支付成功不等于订单正确。要每天拉一次微信账单,与自己的订单表比对:金额、订单号、退款、手续费。差异通常来自三处:部分退款、超时未支付后关闭、重复回调导致重复发货。系统要对回调做幂等处理,同一个订单号重复通知只处理一次。

上线前的检查清单

  • 正向流程:下单→支付→回调→发货/开通,全链路走通
  • 异常流程:支付超时、用户取消、支付成功但回调失败
  • 退款流程:全额退、部分退、退款失败重试
  • 对账:能拉到当日账单并自动比对差异
  • 压测:并发支付时订单不重复、不丢单

手续费和结算周期怎么算?

普通商户的费率按行业分档,结算默认次日到账,可以申请更快或更慢的周期。这部分成本要在报价或运营预算里体现,尤其是客单价低、退款率高的业务,手续费与退款手续费会明显吃掉毛利。

退款要区分「全额退」和「部分退」:全额退通常退还手续费,部分退按比例,具体以商户平台的規則为准。系统里要能看到每笔订单的手续费,否则算不出真实毛利。锐达盛世网络科技做涉及交易的项目时,会把手续费字段做进订单表,方便后期核算。

锐达盛世网络科技在交付涉及支付的系统时,会把证书、密钥、回调地址、对账脚本作为交付清单的一部分,并在上线首周盯对账差异。支付的问题 90% 出现在配置和边界流程,而不是主流程。