假设传送的参数如下:
appid: wxd930ea5d5a258f4f
mch_id: 10000100
device_info: 1000
body: test
nonce_str: ibuaiVcKdpRxkhJA
第一步:对参数按照key=value的格式,并按照参数名ASCII字典序排序如下:
stringA="appid=wxd930ea5d5a258f4f&body=test&device_info=1000&mch_id=10000100&nonce_str=ibuaiVcKdpRxkhJA";
第二步:拼接API密钥:
stringSignTemp=stringA+"&key=192006250b4c09247ec02edce69f6a2d" //注:key为商户平台设置的密钥key
sign=MD5(stringSignTemp).toUpperCase()="9A0A8659F005D6984697E2CA0A9CF3B7" //注:MD5签名方式
完全按照上述去得到签名
<xml>
<mch_id>123456</mch_id>
<nonce_str>5087e0xessefellkg</nonce_str>
<sign>xxxxxx</sign>
<sign_type>MD5</sign_type>
</xml>
提交上述信息到 https://fraud.mch.weixin.qq.com/risk/getpublickey
返回签名错误: SIGN_ERR
反复核对参数,没有问题呀!哪里错了?
计算参数和请求参数要保持一致,计算有device_info,请求没有device_info?
怎么解决的 我也遇到这个问题了