版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。
2 篇文章0 订阅
订阅专栏
微信支付统一下单,签名错误的原因很多,解决方法就是一个个排除。
签名生成的通用步骤如下:
第一步,设所有发送或者接收到的数据为集合M,将集合M内非空参数值的参数按照参数名ASCII码从小到大排序(字典序),使用URL键值对的格式(即key1=value1&key2=value2…)拼接成字符串stringA。
特别注意以下重要规则:
参数名ASCII码从小到大排序(字典序);如果参数的值为空不参与签名;参数名区分大小写;验证调用返回或微信主动通知签名时,传送的sign参数不参与签名,将生成的签名与该sign值作校验。微信接口可能增加字段,验证签名时必须支持增加的扩展字段
第二步,在stringA最后拼接上key得到stringSignTemp字符串,并对stringSignTemp进行MD5运算,再将得到的字符串所有字符转换为大写,得到sign值signValue。
key设置路径:微信商户平台(pay.weixin.qq.com)-->账户设置-->API安全-->密钥设置
可能原因:
1、APP或者公众平台的商户号与微信商户平台的微信支付商户号不一样……
2、配置参数都没问题了,生成的sign和测试工具生成的sign也一样,还报签名错误,这时就要看下自己加入的可选字段的是否有问题,自己在生成的时候遇到两个参数错误,导致的,一个是IP地址,一个是签名方式,签名方式默认是MD5就没必要再加上这个字段了。
最后附下微信支付相关工具包:
http://download.csdn.net/detail/qq_35624642/9712110