VPS参考测评推荐
专注分享VPS主机优惠信息
衡天云优惠活动
华纳云优惠活动
荫云优惠活动

微信支付验证或签名失败的原因是什么?附三个解决方案(什么意思,微信签名验证失败)

主机参考:VPS测评参考推荐/专注分享VPS服务器优惠信息!若您是商家可以在本站进行投稿,查看详情!此外我们还提供软文收录、PayPal代付、广告赞助等服务,查看详情!
我们发布的部分优惠活动文章可能存在时效性,购买时建议在本站搜索商家名称可查看相关文章充分了解该商家!若非中文页面可使用Edge浏览器同步翻译!PayPal代付/收录合作

微信统一支付验证失败是怎么回事?签名失败,货款无法支付,真的很着急,主要是身体中文的问题。解决起来很麻烦。百度做了很多,却找不到一篇完全解决的文章。总之各种烦恼。这里就不赘述了。让我们开门见山:

因为公司的项目要微信支付,调配的时候发现签名总是不对。经过调查,原来是编码问题。然后,找到原因,就能解决问题。本文详细介绍了三种解决方案。如果你读完的时间有限,那就直接进入第三个解决方案,希望能帮到你。

第一种解决方案:将tomcat编码设置为utf-8。window环境下tomcat的默认编码是gbk,所以需要将Tomcat编码设置为UTF -8。

第一步:在catalina.bat文件头的第二行添加

set _ opts = -xms 128 m-xmx 512 m-xx:maxperm size = 256 m-dfile . encoding = utf-8 -dsun . jnu . encoding = ut F-8让java环境使用ut F-8编码。第2步:在server.xml中添加它

URIEncoding = ut F-8 ;useBodyEncodingForURI = true ,以便tomcat发送的请求使用utf-8,如下面的代码所示

lt连接器端口= 8081 协议= HTTP/1.1 ;

connectionTimeout = 20000 gt;

重定向端口= 8443 URIEncoding = ut F-8 ;useBodyEncodingForURI = true / gt;

控制台可能是乱码,换成gbk没问题,但是微信签名失败。

第二种解决方案:body转码String body = new String( ;中国人体场值”。toString()。getBytes( ;iso 8859-1 ;), ut F-8 ;);

但是微信返回的商品名称会出现乱码。

微信支付验证或签名失败的原因是什么?附三个解决方案(什么意思,微信签名验证失败)-主机参考

第三种方案:修改签名md5编码(这种方案才是王道)。tomcat在window环境下的默认编码是gbk,所以签名MD5的时候设置编码为utf-8就足够了。

微信支付验证或签名失败的原因是什么?附三个解决方案(什么意思,微信签名验证失败)-主机参考

这是我使用的MD5签名工具类:

public class MD 5 util { private static String byteArrayToHexString(byte b[]){ String buffer resultSb = new String buffer();for(int I = 0;我 ltb .长度;i++)results b . append(byteToHexString(b[I]));返回resultsb . tostring();}私有静态字符串byteToHexString(byte b){ int n = b;如果(n lt0)n+= 256;int D1 = n/16;int d2 = n % 16返回hex digits[D1]+hex digits[D2];}公共静态字符串MD5Encode(String origin,String charset name){ String result String = null;try { result String = new String(origin);message digest MD = message digest . getinstance( ;MD5 );if(charset name = = null | | ;"。equals(charset name))resultString = byteArrayToHexString(MD . digest(resultString . getbytes());elseresultString = byteArrayToHexString(MD . digest(resultstring . getbytes(charset name)));} catch (Exception异常){ }返回resultString}私有静态最终字符串hex digits[]= { ;0 gt;, 1 , 2 , 3 , 4 , 5 , 6 , 7 , 8 , 9 , a , b , c , d , e , f };}相关建议:

微信支付:支付权限检查失败。原因是什么?

微信支付:支付权限检查失败。原因是什么?微信支付验证或签名失败的原因是什么?附上三个解决方案的细节。请多关注主机参考其他相关文章!

这几篇文章你可能也喜欢:

本文由主机参考刊发,转载请注明:微信支付验证或签名失败的原因是什么?附三个解决方案(什么意思,微信签名验证失败) https://zhujicankao.com/79589.html

【腾讯云】领8888元采购礼包,抢爆款云服务器 每月 9元起,个人开发者加享折上折!
打赏
转载请注明原文链接:主机参考 » 微信支付验证或签名失败的原因是什么?附三个解决方案(什么意思,微信签名验证失败)
主机参考仅做资料收集,不对商家任何信息及交易做信用担保,购买前请注意风险,有交易纠纷请自行解决!请查阅:特别声明

评论 抢沙发

评论前必须登录!