微信服务商支付报「受理机构必须传入sub_mch_id」
现象
服务商模式发起支付时报「受理机构必须传入sub_mch_id」,但请求参数里的 sub_mchid 明明有值。
原因
这条报错文案有误导性 —— 它真正的含义是微信对「服务商 ↔ 特约商户」绑定关系的校验失败,不是字段缺失。
最常见的触发是配置错误:服务商自己的商户号被填进了特约商户号位置,sp_mchid 与 sub_mchid 是同一个号 —— 微信不允许服务商「特约」自己。
判别
在通道子应用日志里核对请求体,出现 sp_mchid == sub_mchid(且 sp_appid == sub_appid),即可确认是配置问题而非代码问题。
也可以先看商户的资质:微信商户平台里有「服务商平台」入口的才是服务商,没有入口的属于普通商户。
修复
按商户的实际资质分两种情况:
- 普通商户:不该使用微信服务商产品,改配微信直连即可
- 服务商:特约商户号必须填服务商进件绑定的真实二级商户号,不能填服务商自己的号
通道配置说明见 微信支付。