收藏
回答

电商收付通小程序调起支付提示:支付验证签名失败

近期调试收付通时遇到问题:小程序调起支付,弹出错误提示框:支付验证签名失败

操作步骤:

按照官方文档:https://pay.weixin.qq.com/wiki/doc/apiv3/wxpay/ecommerce/combine/chapter3_6.shtml

1、根据小程序appid,时间戳,随机字符串nonce以及prepay_id生成待签名串

2、使用商户私钥证书进行SHA256 with RSA签名

3、构造返回数据传给客户端,其中paySign为签名值,signType签名类型为RSA


问题说明:

1、商户证书以及签名算法在其它API调用场景可正常验证通过,并且签名值使用openssl工具核对正常,应该可以排除问题

2、查到客户端调起支付的API文档中描述,signType合法值只能为MD5或HMAC-SHA256(此处与收付通文档矛盾,或是文档未更新?)

3、依照客户端api文档使用MD5签名算法,仍然提示同样的错误信息


相关信息如下,希望大家帮忙解答!

小程序appid = wxe0a0e0d77287cb3d
服务商商户mch_id = 1513200771 



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

3 个回答

  • Alsoจุ๊บ
    Alsoจุ๊บ
    2020-09-07

    问题解决了吗?同样碰到该问题

    2020-09-07
    有用
    回复
  • 微信支付技术助手8
    微信支付技术助手8
    2020-03-18

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

    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-03-18
    有用
    回复 5
    • 2020-03-18
      1、签到名检查工具只支持MD5和HMAC-SHA256
      8、收付通里是合单下单接口,只支持SHA256-RSA
      2020-03-18
      回复
    • Runtoo
      Runtoo
      2020-03-18回复
      paysign传参格式贴出来
      2020-03-18
      回复
    • 2020-03-18回复Runtoo
      wxe0a0e0d77287cb3d\n1584454378\ngvqndeupc2z0sbtkloar53j971m4hxyf\nprepay_id=up_wx17221258120611de2eddf0261699838200\n
      2020-03-18
      回复
    • Runtoo
      Runtoo
      2020-03-18回复
      paysign没问题,然后在按照收付通的JS调起支付文档的请求传过去还是不行?
      2020-03-18
      回复
    • 2020-03-18回复Runtoo
      还是不行,传给客户端的就是上面4个参数再加paySign和signType="RSA"
      2020-03-18
      回复
  • Runtoo
    Runtoo
    2020-03-17

    参考https://blog.csdn.net/u011941145/article/details/104925044

    2020-03-17
    有用
    回复 6
    • 2020-03-17
      谢谢回复,但是依然不行哦,最后一行以"prepay_id="开头也是一样的错误提示,我自行使用公钥验证签名就能通过,太奇怪了
      2020-03-17
      回复
    • 飞哥
      飞哥
      2020-03-23
      想问问哥们,paySign这个签名值是服务端跟prepay_id一起返回给小程序端的吗,还是paySign这个签名是小程序端的生成,如果是小程序去生成,那不还是需要用到后端的证书
      2020-03-23
      回复
    • 2020-03-23回复飞哥
      服务端生成,传给小程序端
      2020-03-23
      回复
    • 飞哥
      飞哥
      2020-03-24回复
      服务端返回个小程序是不是这样:
      2020-03-24
      回复
    • 托雷妞
      托雷妞
      2020-05-19
      2020-05-19
      回复
    查看更多(1)
登录 后发表内容
问题标签