收藏
回答

微信支付签名错误

框架类型 问题类型 API/组件名称 终端类型 微信版本 基础库版本
小程序 需求 wx.requestPayment 客户端 6.7.3 2.3.0

在post调教数据https://api.mch.weixin.qq.com/pay/unifiedorder 返回

<xml><return_code><![CDATA[FAIL]]></return_code>

<return_msg><![CDATA[签名错误]]></return_msg>

</xml>

但是到工具 https://pay.weixin.qq.com/wiki/doc/api/jsapi.php?chapter=20_1 是效验通过的

appid:wx36901e1fe756b722

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

19 个回答

  • Soandso
    Soandso
    2018-10-29

    老哥你的解决了吗?跟你同样的问题,无从下手,心累。

    2018-10-29
    有用 7
    回复
  • 路过人间
    路过人间
    2020-01-07

    这个问题是你们把API密钥和APP_SECRET弄混了

    签名需要的是API密钥,设置路径如下:

    微信商户平台(pay.weixin.qq.com)–>账户设置–>API安全–>密钥设置

    2020-01-07
    有用 6
    回复 7
    • 高鹏
      高鹏
      2020-02-20
      你这个提醒救了命了,感谢!!!
      2020-02-20
      回复
    • 如虎添翼
      如虎添翼
      2020-03-04
      我的配置文件中就没有 这配置
      2020-03-04
      回复
    • 幻紫梦忆
      幻紫梦忆
      2020-03-10
      真的救了命,捯饬了一下午了
      2020-03-10
      回复
    • A-智滴科技人脸识别_樊诚
      A-智滴科技人脸识别_樊诚
      2020-07-07
      按你的说了, 也在官方提供的 网业测试过了, 可是实际环境就不行, 就是签名失败
      2020-07-07
      回复
    • Derek_沉默中的努力🤔
      Derek_沉默中的努力🤔
      2020-10-22回复A-智滴科技人脸识别_樊诚
      我的也是,前天还可以,第二天就不行了
      2020-10-22
      回复
    查看更多(2)
  • 小程序开发者
    小程序开发者
    2019-07-15

    我也遇到了同样的问题,最后发现是因为body参数里面使用了中文造成的。

    解决方法写出来供大家参考一下:

    1. md5加密的时候字符串使用utf-8。(这个网上好多搜一下就有)

    2. 请求微信接口的时候http的头部信息的Content-Type参数里面写上text/xml;charset=utf-8

    2019-07-15
    有用 5
    回复 2
    • 卷翼
      卷翼
      2020-09-30
      我来补充一下,我用的是官方的Demo,就以此为说明。
      问题确实是由于参数里有中文造成的,但根本原因是在代码里,在用HMAC-SHA256算法加密的时候,调用的WxPayData类中的CalcHMACSHA256Hash方法,该方法中有一段var enc = Encoding.Default;然后根据enc来将字符串编码成字节数组,调试的时候发现默认是gb2312,而微信官方使用的是utf-8编码,所以发送过去验证不符,返回签名错误。
      2020-09-30
      1
      回复
    • 大鹏
      大鹏
      2021-09-11
      感谢分享,果然是编码的问题
      2021-09-11
      回复
  • hL
    hL
    2019-06-18

    我的解决了,在本地测试一直成功,部署到测试环境就签名错误;解决办法:签名生成字段中不要出现汉字,用英文,这样编码不会错误(尤其注意签名类型 sign_type 字段

    2019-06-18
    有用 3
    回复 2
    • 桃子、
      桃子、
      2019-07-16
      你本地可以测试支付 你是怎么做到的?
      2019-07-16
      回复
    • 桃花
      桃花
      2019-07-18回复桃子、
      我能给你不下5种方式解决本地测试的问题,最简单的就是内网穿透,有个叫ding的东西,git上就有,windows和linux环境都有
      2019-07-18
      回复
  • 2019-05-06

    看下apiv3 key   和 api key  是两个,后台要配apikey,配错了就报签名错误,我中了这个毒

    2019-05-06
    有用 2
    回复 1
    • 竹林冰🐰🍭
      竹林冰🐰🍭
      2019-06-23

      我修改了apikey,怎么还不行呢

      2019-06-23
      1
      回复
  • 、、~
    、、~
    2020-05-18

    我的解决了,原因是商户账号绑定的appid失效了,大家注意下产品中心->开发设置里有没有失效的appid,重新绑定下就行

    2020-05-18
    有用 1
    回复 1
    • 新票子乐队
      新票子乐队
      2021-10-20
      试了各种方法没解决,验签没问题,API等几个能换的参数换了几次,最后把商户ID绑定到其他产品下正常,就只能支付到其他ID下了,只能说是微信的坑
      2021-10-20
      回复
  • 棉花君-无事小神仙
    棉花君-无事小神仙
    2020-02-18

    我也遇到这个问题了,用微信的工具验证了签名是ok的,但是预支付的时候提示签名错误。没个官方解释下吗?

    2020-02-18
    有用 1
    回复 3
    • 棉花君-无事小神仙
      棉花君-无事小神仙
      2020-02-18
      解决了自己来回答下,看一下验证的工具文档,上面有两点注意,key是否正确,重新设置了后台的key,预支付成功
      2020-02-18
      回复
    • ꯭赵꯭纲꯭
      ꯭赵꯭纲꯭
      2020-05-27
      key设置不能忽视
      2020-05-27
      回复
    • 青涩 向阳🕴
      青涩 向阳🕴
      2020-06-04
      有的时候,没有原因,就得重置才行呀
      2020-06-04
      1
      回复
  • 独孤飞雪
    独孤飞雪
    2022-08-12

    是真呀,我确定没有设置错误API密钥,找了一天"签名错误"的问题,最后重新设置了一遍API密钥就不报错了

    2022-08-12
    有用
    回复
  • 🌎小谭-杭州路维斯®租车
    🌎小谭-杭州路维斯®租车
    2021-03-31

    亲爱的们 经过 3天没头没脑的摸索,第三方开发没解决 ,微信客服没解决,关于微信支付提交订单显示 微信签名错误。已经完美解决 ,敲黑板 ,微信商户 API密匙设置之后还要在小程序里 填入商户号,及你设置的密匙,不是6位的支付密码,而是API 的32密匙

    2021-03-31
    有用
    回复
  • 鱼摆尾
    鱼摆尾
    2021-03-15

    重新设置了一下32位秘钥可以了

    2021-03-15
    有用
    回复

正在加载...

登录 后发表内容