企业微信发红包接口一直报签名错误
在使用企业微信发红包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,依然报签名错误 参与支付签名的密钥,同一商户号调用其它接口是成功的,可以排除这里的问题。