收藏
回答

企业微信发红包接口一直报签名错误

在使用企业微信发红包api接口进行测试的时候,做了各种尝试依然报报签名错误,应该往哪个方向排查呢?

接口api地址:https://developer.work.weixin.qq.com/document/path/90275

接口测试,请求参数xml如下:

接口返回结果:

<xml>

<return_code><![CDATA[SUCCESS]]></return_code>

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

<result_code><![CDATA[FAIL]]></result_code>

<err_code><![CDATA[SIGN_ERROR]]></err_code>

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

</xml>

参与企业签名的参数和参数顺序

参与支付签名的参数

----------------------------

排查过程,已经对照企业微信“发企业红包”接口对过很多遍,也搜索了别人之前的踩坑经历都做了对比排查

1、使用签名检查工具(http://mch.weixin.qq.com/wiki/tools/signverify/)校验签名算法是否有误。已排查过确认无误,程序签名结果与网页检查工具签名结果一致

2,确认秘钥是否有误(服务商模式使用服务商商户号秘钥,秘钥是在商户平台配置,如果同一商户号调用其它接口成功可排除是秘钥问题),已排查过,同一商户号调用其它接口是成功的,很多地方都在使用这个密钥,也不敢去轻易修改测试

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

4,确认参数的大小写,参数名与接口文档一致。确认过,一致无误。

5,签名原串的参数值使用原始值,不需要encode。确认过无误

6,接口需要使用UTF-8编码。确认过是用的UTF-8编码,为了防止编码问题,请求参数里面没带中文一样签名错误

7、排查参数值,

wxappid使用的企业id,

mch_id商户号也确认过,

参与企业签名的agentid和密钥Secret,分别用了”企业支付“应用的agentid和Secret和自己创建的测试应用的agentid和Secret,依然报签名错误

参与支付签名的密钥,同一商户号调用其它接口是成功的,可以排除这里的问题。

最后一次编辑于  2022-07-24
回答关注问题邀请回答
收藏

1 个回答

  • Memory
    Memory
    2022-07-24

    签名工具只校验签名的方式是否正确,不校验参数的正确性。签名使用的是商户APIV2 key,这里问题无非就是商户key不对或者参数不对

    2022-07-24
    有用 1
    回复 2
    • 龙向阳
      龙向阳
      2022-07-25
      这里签名包含两部分,
      其中企业微信签名,按签名接口协议要求使用的Secret是”企业支付“应用的Secret;
      支付签名使用的key,接口协议里面说的是“key为商户平台API密钥里面设置的key”,公司里的与微信支付相关的都是用的这个key,用普通的公众号发红包接口用的也是这个key,能正常发红包成功。你这里说的“APIV2 key”是指的这个key吗。
      谢谢!
      2022-07-25
      回复
    • 龙向阳
      龙向阳
      2022-07-25
      已解决,原因正如你说的签名使用的是商户APIV2 key弄错了。非常感谢。
      2022-07-25
      回复
登录 后发表内容