微信支付调起失败或者llegal key size解密大坑(已解决)

第一个坑,调起微信支付失败的原因之一

第二个大坑,Illegal key size 报错问题,你的代码是没错的,jdk的问题


此篇文章是承接微信支付下面这篇文章

微信V3APP支付2022,全网最新+踩坑(已实现)

第一个坑,调起微信支付失败的原因之一

返回的参数一定要小写啊,特别是timestamp ,能小写劲量小写,否则不能调起微信支付(即弹到微信里支付)

官方的调起支付参数都是小写

JSONObject object = WechatPayUtils.WxTuneUp(prepay_id, WechatPayConfig.appId);
  JSONObject jsonObject = new JSONObject();
        jsonObject.put("appid", appId);
        jsonObject.put("partnerid", WechatPayConfig.mchId);
        jsonObject.put("prepayid", prepay_id);
        jsonObject.put("package", WechatPayConfig.PACKAGE);
        jsonObject.put("noncestr", noncestr);
        jsonObject.put("timestamp", time);
        jsonObject.put("signtype", "RSA");
        jsonObject.put("sign", packageSign);
 

第二个大坑,Illegal key size 报错问题,你的代码是没错的,jdk的问题

javax.crypto.Cipher.checkCryptoPerm(Cipher.java:1029)
javax.crypto.Cipher.implInit(Cipher.java:795)
javax.crypto.Cipher.chooseProvider(Cipher.java:854)
javax.crypto.Cipher.init(Cipher.java:1374)
javax.crypto.Cipher.init(Cipher.java:1308)
com.focustech.common.codec.encrypter.AES256Encrypter.cipher(AES256Encrypter.java:37)
com.focustech.common.codec.encrypter.AES256Encrypter.encrypt(AES256Encrypter.java:45)

异常原因:如果密钥大于128, 会抛出java.security.InvalidKeyException: Illegal key size 异常. 因为密钥长度是受限制的, java运行时环境读到的是受限的policy文件. 文件位于jdk/jre/lib/security,

解决办法也很简单:

替换jdk 与jre下两个jar包:local_policy.jar和 US_export_policy.jar即可。

一般下载jdk的时候,已经有jre了,所以一般就只用改 jdk/jre/lib/security这个目录的两个jar包就好了。 


 

 官方网站提供了JCE无限制权限策略文件的下载:
请根据JDK版本去官方下载JCE无限制权限策略文件
https://www.oracle.com/technetwork/java/javase/downloads/jce-all-download-5170447.html
jdk 5:
http://www.oracle.com/technetwork/java/javasebusiness/downloads/java-archive-downloads-java-plat-419418.html#jce_policy-1.5.0-oth-JPR
jdk6:
http://www.oracle.com/technetwork/java/javase/downloads/jce-6-download-429243.html
jdk7:
http://www.oracle.com/technetwork/java/javase/downloads/jce-7-download-432124.html
jdk8:
http://www.oracle.com/technetwork/java/javase/downloads/jce8-download-2133166.html
下载后解压,可以看到local_policy.jar和US_export_policy.jar以及readme.txt
如果安装了JRE,将两个jar文件放到%JRE_HOME%\lib\security目录下覆盖原来的文件
如果安装了JDK,还要将两个jar文件也放到%JDK_HOME%\jre\lib\security目录下覆盖原来文件。

但是下载需要钱,我这准备了1.8jdk的,如果需要其他我可以帮你找。下面是1.8jdk的

链接:https://pan.baidu.com/s/1BEx-Q4Gr_TjwG9uFKhO6pw 
提取码:6666


 

  • 5
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值