日志:
ASCII排序,HMACSHA256格式 参数:【appid=wxa......&body=充值下单&mch_id=152.....&nonce_str=gKIrE7boGn8fqYb1Z4eyqYA7qqVf2aa6¬ify_url=https://payments-mini.51zhaoyou.com/test/weix/notify&out_trade_no=201902251456229116641&product_id=1153&spbill_create_ip=223.104.212.149&total_fee=1&trade_type=NATIVE&key=SjOpU.....】
微信请求接口 method :【/pay/unifiedorder】,请求参数 xml : 【<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<xml>
<nonce_str>gKIrE7boGn8fqYb1Z4eyqYA7qqVf2aa6</nonce_str>
<out_trade_no>201902251456229116641</out_trade_no>
<total_fee>1</total_fee>
<product_id>1153</product_id>
<appid>wxa9f7.......</appid>
<sign>A667CEFBC9C63280A96FA3A94CF9F30D5E6721F8DA7A1D8DA74C4018473DE23D</sign>
<trade_type>NATIVE</trade_type>
<body>充值下单</body>
<mch_id>1526......</mch_id>
<spbill_create_ip>223.104.212.149</spbill_create_ip>
<sign_type>HMAC-SHA256</sign_type>
</xml>
】
2019-02-25 15:54:37.814 INFO 118092 --- [ main] com.zhaoyou.pay.utils.wxPay.WXPayReport : report v1,WXPaySDK/3.0.9,wp3g2Tb6hRRddLYYG5cBrJKoOUfmknTY,1551081277,528,api.mch.weixin.qq.com,true,6000,8000,0,0,0,701CF98653E5985BDDEC472A3E8F0D6AE3A1FE7D1AE0079ADDD7390C1B765AA2
2019-02-25 15:54:37.814 INFO 118092 --- [ main] com.zhaoyou.pay.utils.wxPay.WXPay : 微信请求接口 method :【/pay/unifiedorder】,返回信息 resp : 【<xml><return_code><![CDATA[FAIL]]></return_code>
<return_msg><![CDATA[签名错误]]></return_msg>
</xml>】
-- 微信支付接口签名校验工具,检查正常 ,密钥key生效了几次了,还是不行。
您好,请按照以下几点仔细检查:
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:)消息中字段大小写和文档中完全一致