微信支付有漢字時出現簽名錯誤的解決辦法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