微信支付——签名问题
签名顺序
首先签名顺序必须按照ASCII码来排列
例如
stringA="appid=wxd930ea5d5a258f4f&body=test&device_info=1000&mch_id=10000100&nonce_str=ibuaiVcKdpRxkhJA";
签名大小写
签名sign字符串必须是大写的
例如
sign=MD5(stringSignTemp).toUpperCase()="9A0A8659F005D6984697E2CA0A9CF3B7" //注:MD5签名方式
签名秘钥问题
首先声明一点,就是支付签名的key并不是整个商户的key,是一个全新的key,如果你的签名与微信工具签名保持一致;那么请注意,key的正确性,key的正确性,key的正确性;重要的话说三遍,本人在这个问题上调试了一天,希望读者能注意这一点。
最终强调一点
就是请注意吗,最好使用微信提供的SDK,不要到处去乱找代码
请认准微信官方SDK
GitHub地址:https://github.com/wxpay/WXPay-SDK-Java
maven依赖:
<dependency> <groupId>com.github.wxpay</groupId> <artifactId>WXPay-SDK-Java</artifactId> <version>0.0.4</version> </dependency>
以上内容参考至:微信统一支付接口返回“签名错误”的可能原因;微信公众号支付官方文档
最后提一句,如果你还遇到什么乱七八糟的问题的时候,可以与笔者一起分享;邮箱:gongfuboychina@gmail.com