微信支付有汉字时出现签名错误的解决办法java
最近发如今win2003开发微信支付时,有汉字时出现签名错误,但在win7上不会出错,微信
最后发现是字符编码不一致形成的。微信支付
解决办法编码
改正wxpay-scanpay-java-sdk-1.0.jar中的md5.java文件,加密
/**
* MD5编码
* @param origin 原始字符串
* @return 通过MD5加密以后的结果
*/
public static String MD5Encode(String origin) {
String resultString = null;
try {
resultString = origin;
MessageDigest md = MessageDigest.getInstance("MD5");
// resultString = byteArrayToHexString(md.digest(resultString.getBytes()));//原文件内容,可能缘由是:win2003时系统缺省编码为GBK,win7为utf-8
resultString = byteArrayToHexString(md.digest(resultString.getBytes("utf-8")));//正确的写法
} catch (Exception e) {
e.printStackTrace();
}
return resultString;
}.net