微信支付回调签名失败Tomcat编码问题解决

Posted 晖轩阁

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了微信支付回调签名失败Tomcat编码问题解决相关的知识,希望对你有一定的参考价值。

在IDEA环境内嵌Tomcat8正常,在Windows部署的Tomcat8不正常,返回签名错误,原因是tomcat默认的编码使用ISO-8859-1的编码解析器,只要指定HttpServletRequest的读取编码即可解决乱码问题

ServletInputStream inStream = request.getInputStream();
String resp = getStrFromInsByCode(inStream, "utf-8");




/**
*
* @param is 输入流
* @param code 指定读取编码
* @return
*/
public static String getStrFromInsByCode(InputStream is, String code) {
StringBuilder builder = new StringBuilder();
BufferedReader reader = null;


try {
reader = new BufferedReader(new InputStreamReader(is, code));
String line;
while ((line = reader.readLine()) != null) {
builder.append(line + " ");
}
} catch (Exception e) {
e.printStackTrace();
} finally {
try {
reader.close();
} catch (IOException e) {
e.printStackTrace();
}
}
return builder.toString();
}

以上是关于微信支付回调签名失败Tomcat编码问题解决的主要内容,如果未能解决你的问题,请参考以下文章

接微信支付提示:支付验证签名失败

汇聚,杉德,微信原生支付,支付宝成功/失败回调记录

pay支付参数验签失败咋回事

iOS 微信提示:签名失败

微信小程序之wx.requestPayment 发起微信支付

SpringBoot签名乱码