收藏
回答

Java接入微信支付,第二次签名失败,请问怎么解决?


已经生成预支付订单成功了。

timeStamp

nonceStr

都是与预支付订单保持一致的

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

1 个回答

  • 微信支付技术助手1
    微信支付技术助手1
    09-04

    按照以下几点来检查,

    1)你签名中的key,也就是你的API密钥key,这个参数要你们自己到商户平台设置的,设置的规则是32位数字与字母大小写的组合的随机数,不能设置成签名串和参数appsecret,你们有正确设置吗???

    2)检查开放平台对应的包名与签名是否有正确设置。

    https://pay.weixin.qq.com/wiki/doc/api/app/app.php?chapter=8_5 这里有详细的设置说明。

    3)调用支付使用的noncestr这个参数必须和商家服务器调用统一下单接口返回的那个noncestr一致

    4)从预支付订单返回的数据 ,没有重新签名,也会引起这个问题。

    5)重新安装微信后试试。

    =======注意,二次签名也需要加上key


    09-04
    赞同
    回复 2
    • 龚国玮
      龚国玮
      09-04
      谢谢,已经解决了,是微信SDK里,第一次签名不是沙箱环境的情况下不是MD5,我看官方文档默认是MD5,就没有注意,再次签名的时候signType为必填,我就设置了MD5。因为加密方法不对,导致签名失败
      09-04
      回复
    • 龚国玮
      龚国玮
      09-04
      加密方法不一致,导致签名失败
      09-04
      回复