调用jssdk的chooseWXPay接口需要先使用统一下单接口。
支付接口是由服务商来申请的,所以我们统一下单接口使用的是服务商模式的接口,修改了参数增加sub_appid,
下单成功。
然后进行生成参数与签名,调用chooseWXPay。这个时候提示支付验证签名失败。
服务商模式下调用chooseWXPay,里面的参数appId,包括生成chooseWXPay接口所需的sign时所调用的key,是服务商的还是商户个人的?
我这边修改商户个人的或者使用服务商的,都提示支付验证签名失败。
在下述链接验证签名,发现使用相同参数生成的签名是一致的
https://pay.weixin.qq.com/wiki/doc/api/jsapi.php?chapter=20_1
所以,支付验证签名失败,是我哪里出了问题
appid 用当前公众号的appid
密钥使用服务商的密钥
jssdk在初始化的时候,要传入一个appId,正常情况下,这个appId是公众号的appId,但是由于调用微信支付统一下单接口(服务商)的时候,appId是服务商的appId,这就导致两个appId不一致了,所以会报错
解决方法:
在jssdk初始化的时候,如果微信支付到服务商,那么appId就初始化为服务商的appId即可
我也遇到了这个问题,现在提示 appId 不正确,请问楼主解决了吗?