收藏
回答

微信内置浏览器掉起支付,支付验证签名失败,问题可能出现在哪里?

1.签名官方工具验证过,生成签名一致。传给前端唤起微信支付报签名验证失败

2.商户key,公众号和小程序关联一个,小程序可以

3.参数大小写检查都没发现问题

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

2 个回答

  • 微信支付技术助手8
    微信支付技术助手8
    2020-04-15

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

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

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

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

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

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

    2020-04-15
    有用
    回复 1
    • 风
      2020-04-15
      2019-09-27
      我检查了,签名与生成的确实一致,prepay_id 也获取到了,二次签名也检查了,是一致。

      Key重置了。

      total_fee也是int整形,带小数点统一下单那就过不去。

      参数中没有中文。

      大小写我也检查了。

      统一下单和调起支付签名都是用的同样函数做的签名,也经过调试工具(https://pay.weixin.qq.com/wiki/tools/signverify/)检查是一致的。

      然后还是提示验证签名失败……还请指点
      2020-04-15
      回复
  • Javen
    Javen
    2020-04-15

    1、统一下单接口是正常的吗?

    2、微信内 H5 调起支付的签名方式是否与统一下单的签名方式一致


    2020-04-15
    有用
    回复 2
    • 风
      2020-04-15
      统一下单正常,统一下单一次签名与返回值进行二次签名,方式一致,随机字符串用的都是统一下单返回来的,本身这个方法都是从小程序搬过来的,只是改了改appid 和密钥 。小程序那边正常
      2020-04-15
      回复
    • Javen
      Javen
      2020-04-15回复
      建议在前端把接收的参数 alert 出瞅瞅,看看与后端返回的数据是否一致,也有可能前端接收后处理错了(确认一下是否有犯低级错误)。
      2020-04-15
      回复
登录 后发表内容
问题标签