收藏
回答

安卓调用微信支付没有问题,可是ios调用微信支付一直报“支付验证签名失败”

调用微信支付的上传的参数都是都是服务端传过来的,可是同样的参数,安卓没有问题,而ios总是报“支付验证签名失败

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

5 个回答

  • 微信支付技术助手8
    微信支付技术助手8
    2020-05-07

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

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

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

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

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

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

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

    2020-05-07
    有用 1
    回复 8
    • 丁世杰
      丁世杰
      2020-05-08
      参数都对,没具体原因,每个条件都一一核对过了
      2020-05-08
      回复
    • 郭红
      郭红
      2020-05-08
      1,2,3,4,5,6这几个原因都一一排查了,确定没有问题,但是还是不行,也没有报具体是什么原因导致的,只报“支付验证签名失败”,好迷茫,不知道该从哪里下手解决了。
      2020-05-08
      2
      回复
    • clover🍀
      clover🍀
      2020-08-06
      我来说下解决方案吧。其实啥都没问题,有问题的是微信的文档、微信的sdk解释!!!!
      只需要把文档里需要穿的  sign 字段,把 signType 赋值给他,即可!!!

          request.sign= "MD5";    可正确调用
          request.sign= "B44798F263C0F4XXD8AB65F0XXE904F4"; 报错:  支付签名验证失败
      2020-08-06
      6
      回复
    • 麦子
      麦子
      2020-09-19回复clover🍀
      我也遇到了同样的问题,request.sign= "MD5" 可正确调用
      2020-09-19
      回复
    • 麦子
      麦子
      2020-09-19回复clover🍀
      我也遇到了同样的问题,request.sign= "MD5" 可正确调用
      2020-09-19
      回复
    查看更多(3)
  • 诗和远方🐠
    诗和远方🐠
    2022-10-20

    我也是同样的问题,安卓可以,ios报签名错误。试了上面说的把sign改成MD5和123456都不行。

    最后发现是ios的时间戳只支持到秒,而我返回的时间戳精确到毫秒,所以只要把时间戳毫秒去掉就可以了。

    2022-10-20
    有用
    回复
  • 刚好遇见你
    刚好遇见你
    2020-10-29

    你们最后怎么弄的呀


    2020-10-29
    有用
    回复
  • 飘落的叶子
    飘落的叶子
    2020-07-01

    解决了吗

    2020-07-01
    有用
    回复
  • 郭红
    郭红
    2020-05-11

    麻烦咨询一下,可不可以发邮件把我们的问题帮我们解决一下啊。具体问题出在哪里,给一个明确的提示!

    2020-05-11
    有用
    回复 2
    • Blingbiubiubiu~
      Blingbiubiubiu~
      2020-06-13
      加我V:suixinZT1204,希望可以帮助你
      2020-06-13
      回复
    • Blingbiubiubiu~
      Blingbiubiubiu~
      2020-06-13
      应该是参数效验问题
      2020-06-13
      回复
登录 后发表内容
问题标签