springboot java微信支付统一下单接口body为中文,报【签名错误】/付款界面中文??? 的解决办法

本文根据此文章 微信统一下单接口body为中文,报【签名错误】的解决办法做修改,因为使用的是springboot,所以和他的解决方式不太一样:

问题源于:
生成预付款订单向微信发送xml中, xml含有中文,导致签名失败
搜索其他关于此问题的解决方式都是 转换编码之类,无济于事,顶多是将xml中的中文 转成???从而 成功生成预支付订单id,但是此时 , 你已经将含有???的符号传给微信,导致付款界面就都显示成了你之前转的???

查资料知: tomcat默认的编码方式不是utf-8
如果你的项目没有修改成utf-8就会导致问题的出现
springboot解决方法:
原来的项目启动方式: java -jar XXX.jar
指定编码启动: java -Dfile.encoding=UTF-8 -jar XXX.jar

查看项目的当前编码

String iso8859 = new String(xmlstring.getBytes("iso8859-1"));
        String gbk = new String(xmlstring.getBytes("gbk"));
        String utf8 = new String(xmlstring.getBytes("utf-8"));
        if(iso8859.equals(xmlstring)){
            logger.error("当前系统编码:-----------iso8859");
        }else  if(gbk.equals(xmlstring)){
            logger.error("当前系统编码:-----------gbk");
        }else  if(utf8.equals(xmlstring)){
            logger.error("当前系统编码:-----------utf8");
        }
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

那一年丶天空很高丶风很清澈

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值