微信支付号前几天开通企业付款到零钱,但是在调用付款的接口时一直提示签名错误,统一下单接口和退款接口都没出现此错误提示。
使用微信支付接口签名校验工具也提示校验通过
请求参数:<xml><nonce_str><![CDATA[KWDouYQ9p1x1]]></nonce_str><amount><![CDATA[200]]></amount><mchid><![CDATA[1307883801]]></mchid><partner_trade_no><![CDATA[ZK1910281032000001]]></partner_trade_no><openid><![CDATA[o1SiA4psaIkouXnnLuQccEtdCBBU]]></openid><mch_appid><![CDATA[wxecc14c827927e1ab]]></mch_appid><sign><![CDATA[ED831137066922B87D8412094E63E044]]></sign><check_name><![CDATA[NO_CHECK]]></check_name><spbill_create_ip><![CDATA[127.0.0.1]]></spbill_create_ip><sign_type><![CDATA[MD5]]></sign_type><desc><![CDATA[提现单号TXD190326100000009]]></desc></xml>
响应数据:
<xml>
<return_code><![CDATA[SUCCESS]]></return_code>
<return_msg><![CDATA[SIGN_ERROR]]></return_msg>
<mch_appid><![CDATA[wxecc14c827927e1ab]]></mch_appid>
<mchid><![CDATA[1307883801]]></mchid>
<result_code><![CDATA[FAIL]]></result_code>
<err_code><![CDATA[SIGN_ERROR]]></err_code>
<err_code_des><![CDATA[签名错误]]></err_code_des>
</xml>
已解决 XML中不要sign_type参数
HttpEntity xmlData = new StringEntity((String) xmlObj, "text/xml", "UTF-8");
微信真鸡贼。有的接口有sign_type有的接口没有,而且有的接口sign_type仅支持HMAC-SHA256,有的能用md5和HMAC-SHA256。
哎,不知道坑了多少人,耽误了多少时间,花费在调接口上。