收藏
回答

JSAPI支付验证签名失败到底什么原因?

用的官方提供的java微信支付SDK。

沙箱模式跟正式环境调用统一下单API都成功了,并且获取到了预支付ID。

但是这个预支付ID在前端使用时,就一直提示支付验证签名失败。

查过很多论坛,也按照他们的说法,挨个验证了,依然无法支付。

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

3 个回答

  • 微信支付技术助手1
    微信支付技术助手1
    08-21

    请按照以下几点来检查,

    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)重新安装微信后试试。


    08-21
    赞同 1
    回复 2
    • fenrir
      fenrir
      08-21
      第4看得有点懵,"从预支付订单返回的数据"是指我们后台调用统一下单成功后拿到的数据吗?
      08-21
      回复
    • fenrir
      fenrir
      08-21

      按照你说的

      第一步,我刚刚重置了密钥了,用的uuid。

      第二步,我们这边用的是小程序调用的支付,用的你们提供的方法。

      第三步,我们从来没搞错过这一步

      至于你说的第四步,我是没看明白,其他的照你说的做了,依然支付失败。

      我能不能把预支付ID提供给你,你看一下验证失败的原因?

      08-21
      回复
  • fenrir
    fenrir
    星期三 14:33

    - -基本不会在这里登录欸,刚刚才看到。建议去github下个demo,官方写的sdk真的太垃圾了

    星期三 14:33
    赞同
    回复
  • 一种修行
    一种修行
    09-02

    你用等号(=)split来获取签名了?

    09-02
    赞同
    回复 3
    • fenrir
      fenrir
      09-02
      已经解决了
      09-02
      回复
    • 华&绅
      华&绅
      09-03回复fenrir
      我也碰见了这个问题,麻烦指点下您是怎么解决的
      09-03
      回复
    • 奇(ji)点
      奇(ji)点
      10-28回复fenrir
      请问怎解决的
      10-28
      回复