收藏
回答

wx.requestPayment弹框提示支付验证签名失败?

小程序在调用wx.requestPayment时会弹出这提示,签名用微信支付接口签名校验工具验证也是通过的,请问是哪里出问题了呢?


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

2 个回答

  • 微信支付技术助手8
    微信支付技术助手8
    2020-09-16

    请按照以下几点进行排查:

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

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

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

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

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

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

    7、调用“小程序支付API”中appid没有按照文档要求的格式

    8、调用“小程序支付API”中signType类型与“统一下单接口”不一致

    2020-09-16
    有用 1
    回复
  • 老张
    老张
    2020-09-16

    二次签名错误。

    2020-09-16
    有用
    回复 4
    • 左半边翅膀
      左半边翅膀
      2020-09-23
      二次签名,是指什么?第一次指生成sign字符串,第二次生成xml的文件格式吗
      2020-09-23
      回复
    • 老张
      老张
      2020-09-23回复左半边翅膀
      统一下单是一次签名,拉起支付的时候还要二次签名。
      2020-09-23
      回复
    • 左半边翅膀
      左半边翅膀
      2020-09-24回复老张
      拉起支付不是用的这个,应该需要在哪里进行二次签名wx.requestPayment(
                  {
                    'timeStamp': timestamp+'',
                    'nonceStr': _obj.nonce_str,
                    'package': 'prepay_id='+_obj.prepay_id,
                    'signType': 'MD5',
                    'paySign': _obj.sign,
                    'success': function (res) {
                      debugger;
                      that.AddBook();
                    },
                    'fail': function (res) {
      2020-09-24
      回复
    • 老张
      老张
      2020-09-24回复左半边翅膀
      paySign这个值出错了。
      2020-09-24
      回复
登录 后发表内容
问题标签