收藏
回答

微信企业付款接口,签名校验工具已正确,但还是返回【签名错误】

请求接口:

https://api.mch.weixin.qq.com/mmpaymkttransfers/promotion/transfers




各个参数已经按照文档:https://pay.weixin.qq.com/wiki/doc/api/tools/mch_pay.php?chapter=14_2 仔细检查过一篇。


请求参数,敏感信息已屏蔽:

<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<xml>
<amount>30</amount>
<nonce_str>**</nonce_str>
<mchid>**</mchid>
<partner_trade_no>888820190116103208693299</partner_trade_no>
<openid>***-1-OF0c</openid>
<mch_appid>**</mch_appid>
<sign>E26C6EC2D205D60DA9920F74DD046822</sign>
<check_name>NO_CHECK</check_name>
<spbill_create_ip>***</spbill_create_ip>
<sign_type>MD5</sign_type>
<desc>C大调祝你新春快乐!</desc>
</xml>


返回结果:


<?xml version="1.0" encoding="utf-8"?>
 
<xml>
  <return_code><![CDATA[SUCCESS]]></return_code>
  <return_msg><![CDATA[SIGN_ERROR]]></return_msg>
  <mch_appid><![CDATA[***]]></mch_appid>
  <mchid><![CDATA[***]]></mchid>
  <result_code><![CDATA[FAIL]]></result_code>
  <err_code><![CDATA[SIGN_ERROR]]></err_code>
  <err_code_des><![CDATA[签名错误]]></err_code_des>
</xml>


请问哪里还需要检查的?

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

5 个回答

  • 2019-01-16

    已解决,原因是多了个sign_type参数!




    2019-01-16
    有用 3
    回复
  • 波
    2019-01-16

    您好,请参考:

    1) 使用微信的在线签名工具检查签名是否和程序生成的一致

    https://pay.weixin.qq.com/wiki/doc/api/micropay.php?chapter=20_1 签名工具用谷歌打开。

    选择MD5,XML,然后把请求参数xml放进去,就能校验签名。

    2)如果和微信的在线签名工具一致,说明程序没有错误,确定是API密钥错误(被别人改动或者记错了)

    在商户平台的账户信息中更改API密钥(账户设置-安全设置-API安全), 15分钟后生效

    2.1)统一下单用的是A商户号,也必须是A商户号登陆商户平台设置key才对。

    2.2)要注意统一下单请求参数中total_fee参数的类型是int类型。

    3) 如果和微信的在线签名工具不一致,说明程序有错误,常见的错误可能是:

    3.1) 编码问题,确保所有的都是utf-8的. 如果有中文, 可以先把中文改成英文重新签名,看是否签名错误,如果英文不会错中文才会错,基本肯定是编码问题

    3.2:)消息中字段大小写和文档中完全一致


    2019-01-16
    有用 1
    回复 2
    • 2019-01-16

      已经按照1)和2)步骤检查~


      证书和Key都已经重置过了,但依然返回签名错误~



      另外,统一支付接口是可以正常工作的,是这个付款接口调用的时候才有这个问题~


      请尽快帮忙处理,谢谢!


      2019-01-16
      回复
    • wzz
      wzz
      2019-07-26回复
      您好,您的问题解决了吗?我也遇到这个问题了
      2019-07-26
      回复
  • 当当
    当当
    2020-02-26

    企业微信签名校验失败 WORKWX_SIGN_ERROR 怎么解决啊



    2020-02-26
    有用
    回复
  • Immortal
    Immortal
    2019-09-28

    我也遇到了,但是我没有多sign_type参数,检测工具同样没问题但就是返回签名错误

    2019-09-28
    有用
    回复 11
    • Immortal
      Immortal
      2019-09-29
      而且我微信支付、退款的签名都没问题,就这个企业付款签名错误!!
      2019-09-29
      回复
    • Immortal
      Immortal
      2019-09-29
      我解决了,是因为发送付款请求的时候xml参数编码问题造成的,检查方法:发送请求的参数用utf-8重新编码即可。
      2019-09-29
      1
      回复
    • hh
      hh
      2019-10-31
      我是获取凭证的时候就出现了签名错误,请问是否知道是什么原因导致的?(检验工具已验证通过了)
      2019-10-31
      回复
    • 测试名字是否显示
      测试名字是否显示
      2019-12-27回复hh
      大哥  终于找到组织了 我也是是获取凭证的时候签名错误 检验工具也通过了,获取凭证一直报签名错误
      2019-12-27
      回复
    • 当当
      当当
      2020-02-26
      企业微信签名校验失败 WORKWX_SIGN_ERROR 怎么解决啊
      2020-02-26
      回复
    查看更多(6)
  • Eureka
    Eureka
    2019-01-28

     我这里也有这个问题,签名都验证通过,调起微信支付出现支付就闪退了。

    2019-01-28
    有用
    回复 1
    • 2019-10-29
      大哥 解决了吗
      2019-10-29
      回复
登录 后发表内容