微信支付有汉字时出现签名错误的解决办法
Posted 叶威1
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了微信支付有汉字时出现签名错误的解决办法相关的知识,希望对你有一定的参考价值。
最近发现在win2003/win2008开发微信支付时,有汉字时出现签名错误,但在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;
以上是关于微信支付有汉字时出现签名错误的解决办法的主要内容,如果未能解决你的问题,请参考以下文章
调用微信退款接口时出现System.Security.Cryptography.CryptographicException: 出现了内部错误 解决办法
调用微信退款接口或发红包接口时出现System.Security.Cryptography.CryptographicException: 出现了内部错误 解决办法