微信支付有汉字时出现签名错误的解决办法

微信支付有汉字时出现签名错误的解决办法

最近发现在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; }

出门走好路,出口说好话,出手做好事。

微信支付有汉字时出现签名错误的解决办法

相关文章:

你感兴趣的文章:

标签云: