收藏
回答

微信支付服务商模式 jsapi支付 wx.chooseWXPay 支付验证签名失败 ?

----2020/05/11更新流程

统一下单xml

400

统一下单,验证如下图

二次验证

前端用的 chooseWXPay jsSDK注册时用的appId 是 wx7255f1881841f157

下面是前端请求的参数值,参数大小写对照过是对的


-----原内容

前言:之前的业务是 普通商户,整个模式是走通了的,现在换成服务商户模式,出现如标题所示问题,烦请大神们帮忙看看啊啊 啊啊啊

目前做过的努力:

1.认为jssdk注册时使用的是子商户的appId,认为是这个appId出现了问题,无效

2.wx.chooseWXPay中的参数少了sub_appId,又增加了 sub_appId 无效

3.尝试重置API密钥多次 无效

目前可以肯定的是:

1.加密方式一致都是MD5

2.二次验证的参数 和后台验证的参数是一致的。

跪求大神给个思路帮助,心态崩了 香菇

下图为 后端返给前端的数据,前端chooseWXPay是直接使用的这个数据

PS:JSSDK注册时 使用的是 服务商号的appId 这里返回的appId是子商户的appId

最后一次编辑于  05-11
回答关注问题邀请回答
收藏

2 个回答

  • 支付技术助手8
    支付技术助手8
    05-09

    服务商模式下,调用支付你用的秘钥是哪个?你把你完整的调用过程还有参数都发出来看看。

    另外,按照一下几点排查一下。

    1、使用签名检查工具(https://pay.weixin.qq.com/wiki/doc/api/micropay.php?chapter=20_1)校验签名算法是否有误

    2、确认秘钥是否有误(服务商模式使用服务商商户号秘钥,秘钥是在商户平台配置,如果同一商户号调用其它接口成功可排除是秘钥问题)

    3、确认接口实际的请求参数与生成签名原串的参数一致,不能增加或缺少参数(可通过打印签名原串进行排查)

    4、确认参数的大小写,参数名与接口文档一致

    5、签名原串的参数值使用原始值,不需要encode

    6、接口需要使用UTF-8编码

    05-09
    有用
    回复 1
  • 朱曉傻💤
    朱曉傻💤
    05-08

    确认原因是因为二次验证得时候key错误了,大家如果发现这个问题,不要过度依赖官方验证页面,可能它本身验证也有问题(我的猜测)

    总结:所有得不可思议得问题,都是小问题,重新review代码慢慢排查,(我就是一开始没有安静下来排查,后来实在没办法,夜深人静得时候花了30分钟review了代码,终于发现了错误原因)

    最后祝愿所有得小伙伴,以后开发微信支付都顺利一次过

    05-08
    有用
    回复
登录 后发表内容
问题标签