收藏
回答

android支付验证验证签名失败

多个项目用的同一套支付逻辑,PayReq的sign参数统一用后台的,而当前的项目却提示验证签名失败;当我改成sign=“MD5”,却可以调起微信支付并成功,是SDK已经改逻辑了吗

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

14 个回答

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

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

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

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

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

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

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

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

    2020-09-21
    有用 2
    回复 7
    • 吖吖
      吖吖
      2020-09-21
      那为什么改成sign=“MD5”就可以成功
      2020-09-21
      2
      回复
    • féng kǎi
      féng kǎi
      03-29回复吖吖
      不要问为什么,我和后台同事调了一整天,最后改成MD5就可以了,我们一致认为,微信的SDK都涉及到玄学问题。
      03-29
      2
      回复
    • 谢亮
      谢亮
      07-27
      还真的是,只要不是正确的签名就可以,错误的反而支付成功,希望微信关注这个BUG,现在都2021年7月27了,这个BUG还在
      07-27
      回复
    • 箜篌
      箜篌
      07-29
      不二次签名吗?直接固定sign:MD5就可以了?弄了半天真服了,什么狗屎
      07-29
      回复
    • Tooler
      Tooler
      09-03回复箜篌
      2021.09.03这个改成md5就行了这个bug还在
      09-03
      回复
    查看更多(2)
  • 宁金鹏
    宁金鹏
    2020-10-16

    确实改成 sign=“MD5” 支付成功

    2020-10-16
    有用 10
    回复 4
    • LostLove
      LostLove
      2020-11-17
      看下你调起支付的参数值,noncestr和timestamp这两个值也要用后台二次加签返回的,不要自己随机,还有让后台开发看下他两次加签参数值都传对了吗,认真核对,只要两次签名校验都通过就是参数值传错了,我们后台就是商户id值错了,就依旧提示签名错误,你的问题应该就解决了。
      2020-11-17
      回复
    • 阿伟
      阿伟
      02-18
      没用,就是本楼说的,改成md5就行了。签名都不要了。
      02-18
      1
      回复
    • 夜晚的晨光
      夜晚的晨光
      03-03
      调试了两天死活报“支付验证签名失败”,来来回回检查一点没问题,ios都可以调成功,直到看到楼主说的sign=“MD5”,直接成功,简直坑爹啊
      03-03
      1
      回复
    • 杰灵
      杰灵
      07-20
      太坑 了啊
      07-20
      回复
  • 阿伟
    阿伟
    02-18

    这微信支付文档真的是垃圾中的战斗机 ,如楼主所言,将sign改成MD5,居然能支付成功,你敢信?服了,折腾了好几个小时。原来是腾讯内部的bug。支付这么谨慎的事,居然还有这么大的问题。真的服了。

    02-18
    有用 8
    回复
  • gg
    gg
    01-28

    确实解决了问题,不得不说官方文档和服务太差

    01-28
    有用 4
    回复
  • 何必捏
    何必捏
    06-01

    辛亏在网上搜了一下,看到了楼主的解决方案。如果相信微信的官方文档一个一个调试的话,就是傻X了。。。

    06-01
    有用 3
    回复
  • Sunset
    Sunset
    04-09

    sign这个参数写123都行,这是神马操作?

    

    04-09
    有用 3
    回复 4
    • 🙈🙉🙊
      🙈🙉🙊
      06-09
      惊了,还真是
      06-09
      回复
    • 传奇小嘻哈
      传奇小嘻哈
      06-10
      都是字符串,瞎写都可以,就是签名不行,什么鬼啊
      06-10
      2
      回复
    • Hello World
      Hello World
      07-07
      还真的可以,NB plus
      07-07
      回复
    • 撸码客
      撸码客
      07-23
      他们怕是把if条件写反了……
      07-23
      回复
  • Wang
    Wang
    2020-12-10

    微信就是国内开发者的毒瘤

    我就没见过错误日志报的这么屎的

    2020-12-10
    有用 3
    回复
  • 撸码客
    撸码客
    07-23

    简直是救命一般的帖子 谁能想到费心费力的算出签名就不行 随便写点啥就能支付 你们怕是把if条件写反了吧……

    07-23
    有用 1
    回复
  • 假装一个桌子💺
    假装一个桌子💺
    06-06

    sign = ”MD5“

    真是无语+1


    简直了……

    06-06
    有用 1
    回复
  • 史前
    史前
    05-03

    sign = ”MD5“ 真是无语

    05-03
    有用 1
    回复

正在加载...

登录 后发表内容
问题标签