请求接口:
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 > |
请问哪里还需要检查的?
已解决,原因是多了个sign_type参数!
您好,请参考:
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:)消息中字段大小写和文档中完全一致
已经按照1)和2)步骤检查~
证书和Key都已经重置过了,但依然返回签名错误~
另外,统一支付接口是可以正常工作的,是这个付款接口调用的时候才有这个问题~
请尽快帮忙处理,谢谢!
企业微信签名校验失败 WORKWX_SIGN_ERROR 怎么解决啊
我也遇到了,但是我没有多sign_type参数,检测工具同样没问题但就是返回签名错误
我这里也有这个问题,签名都验证通过,调起微信支付出现支付就闪退了。