收藏
回答

统一订单成功, 二次签名测试校验通过, APP端一直提示“支付验证签名失败”

微信APP支付,后端是用的是apiv3版本的,之前申请的一个商户是正常跳到支付,又申请了一个商户,点支付后一直返回的就是支付验证签名失败!不知道为什么会出现这种原因,之前的商户可以支付说明代码应该是没什么问题,新商户是不是app支付还要配置什么的东西?

回答关注问题邀请回答
收藏

5 个回答

  • 支付社区运营
    支付社区运营
    2022-01-07

    一、签名错误问题可以按照以下几点进行排查:

    1、使用签名检查工具校验签名算法是否有误

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

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

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

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

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

    如果上面的您都检查了

    二、请按照以下几点排查:

    1、打印出您请求出去最后的数据与您工具校验正确的数据做一下对比,看是否有大小写不同,或者多余的空格

    2、拿现在的参数使用postman进行测试,排除法,避免应用层处理问题导致

    3、重置KEY

    2022-01-07
    有用
    回复
  • Mr.B🏀
    Mr.B🏀
    2022-06-10



    这个是什么问题呢?怎么都解决不了呢

    2022-06-10
    有用
    回复 1
    • 哦哦哦
      哦哦哦
      2023-07-25
      解决了吗?
      2023-07-25
      回复
  • ?,!。
    ?,!。
    2022-02-24

    折腾了一下午和一晚上终于解决了。我这边的问题是:我们之前已经对接 过app的微信支付,后台直接返回了{ "package": "Sign=WXPay", "appid": "wx666", "sign": "7E9360EE36", "partnerid": "1116401", "prepayid": "wx66000", "noncestr": "345332", "timestamp": "1625620895" } 这样的数据各式我当时的做法是拿着后台返回的这些参数 格式化后直接去调用微信支付。

    但是注意注意,JSAPI加密sign的方法和app不一样, sign不能混用,它是是 需要把appId , timeStamp, nonceStr,package, signType 5个参数拼接key 以后 再使用md5加密


    2022-02-24
    有用
    回复
  • 无穷369
    无穷369
    2022-01-14

    同样的问题,太奇怪了,校验工具结果都一致,就是不行

    2022-01-14
    有用
    回复 1
    • 天之上
      天之上
      2022-11-10
      你解决了吗
      2022-11-10
      回复
  • NullPointException
    NullPointException
    2022-01-11

    请问楼主解决这个问题了么

    2022-01-11
    有用
    回复 1
    • 杨鑫
      杨鑫
      2022-01-12
      并没有,重新设置了apiv3密钥还是报这个错,另外一个商户可以正常支付
      2022-01-12
      回复
登录 后发表内容