拉起H5支付报错商家参数格式有误,请联系商家解决

96 阅读2分钟

问题详情:rt,h5支付预下单接口成功拉起支付,前端报错商家参数格式有误,请联系商家解决,如图:

image.png

这报错其实接口文档写得很清楚了奈何部分开发者就是不看文档的。。。

解决方案:

1.当前调起H5支付的referer为空导致,一般是因为直接访问页面调起H5支付,请按正常流程进行页面跳转后发起支付,或自行抓包确认referer值是否为空

2.如果是APP里调起H5支付,需要在webview中手动设置referer,如(Map extraHeaders = new HashMap();
extraHeaders.put("Referer", "商户申请H5时提交的授权域名");//例如 www.baidu.com )

这个报错第一时间抓包核实refer是否为空、又或者不为空但是跳转的域名压根在商户后台的H5支付域名上没配置。比如跳转的refer为A.com,商户后台H5支付域名配置的是B.com

如何配置H5支付域名: 参考文档 pay.weixin.qq.com/doc/v3/merc…

有部分开发者会疑惑:为什么我的商户号A和商户号B跳转的refer域名都一样是test.a.com,商户号A和商户号B后台都没配置完整的支付域名,但是商户号A可以正常跳转,商户号B却报这个错误呢?

这里有一个域名校验规则需补充:

JSAPI支付支付目录:如果配置的是 a.com,那么拉起支付允许 https://a.com/xxx,…
H5支付域名:如果配置的是 a.com,那么拉起支付允许 a.com/xxx,也允许 x.a.com/xxx,子域名是可以的

所以大概率就是商户A的后台配置了a.com,允许子域名校验,所以refer为test.a.com的时候通过了,但商户号B后台没配置导致的。