博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
微信支付中退款踩坑记录
阅读量:7040 次
发布时间:2019-06-28

本文共 968 字,大约阅读时间需要 3 分钟。

首先附上微信支付的开发者文档

https://pay.weixin.qq.com/wiki/doc/api/app/app.php?chapter=9_16&index=11

其实这里所说的踩坑记录,无非就是微信在开发者文档上的写不太明确,也没有比较官方的demo,在此列出一个可行的demo,供大家下载使用。

主要问题就是在这几步解密上

img_68bd6512760942952075e70af57ca2a9.png
微信的解密算法

首先是base64解码的工具类

img_7a8c2425cdbbadaf289a830fe4418328.png
base64Utils

这个工具类都是比较简单的,大部分的框架都会封装这种类似的工具类,这里自己做简单封装

然后是md5工具类,这个就不往外放了,网上多的是,现成的也多的是

主要坑人的地方是第三条。。。

img_245e815f6366d82b0310b279a2947046.png
解密参数设置
img_cd3fa4a9fcce1ab995abec214d5df0d9.png
AES解密方法

上面写明了用AES-256-ECB-PKCS7Padding,但是你把下面的ALGORITHM_MODE_PADDING参数换成AES/ECB/PKCS7Padding,发现报了这么个异常

java.security.NoSuchAlgorithmException: Cannot find any provider supporting DES/ECB/PKCS7Padding,

然后把参数改成AES/ECB/PKCS5Padding,发现 Illegal key size or default parameters

解决方法:

JDK8 jar包下载地址:

JDK7 jar包下载地址:

JDK6 jar包下载地址:

把里面的两个jar包:local_policy.jar 和 US_export_policy.jar 替换掉原来jdk安装目录Java\jre\lib\security 下的两个jar包接可以了

然后运行一些试试,,此时代码正常,数据正常。。。

因为某些国家的进口管制限制,Java发布的运行环境包中的加解密有一定的限制。比如默认不允许256位密钥的AES加解密,解决方法就是修改策略文件,  从官方网站下载JCE无限制权限策略文件,注意自己JDK的版本别下错了。将local_policy.jar和US_export_policy.jar这两个文件替换%JRE_HOME%\lib\security和%JDK_HOME%\jre\lib\security下原来的文件,注意先备份原文件。

转载地址:http://jwaal.baihongyu.com/

你可能感兴趣的文章
Zcan无线扫描鼠标,滑哪扫哪
查看>>
寻找薛定谔的猫:量子物理的奇异世界
查看>>
mysql 获取刚插入行id汇总
查看>>
Python 数据科学入门教程:Matplotlib
查看>>
windows下codelite的使用
查看>>
VR设备前进路上,必须经历的九九八十一难
查看>>
5G汽车联盟,助力BBA角逐智能汽车市场
查看>>
安卓应用安全指南 4.5.1 使用 SQLite 示例代码
查看>>
django 1.8 官方文档翻译: 9-1-1 国际化和本地化
查看>>
OpenStack云撑起百联O2O战略布局
查看>>
Spring MVC使用@RestController生成JSON示例
查看>>
瑞士军刀包购买选择
查看>>
基于epoll封装的事件回调miniserver
查看>>
SpringBoot使用validator校验
查看>>
CSS去除免费虚拟主机的广告心得分享
查看>>
AngularJS学习总结
查看>>
Hadoop体系结构之 HDFS
查看>>
基于以太坊发行ERC20 Token(代币)
查看>>
[Silverlight]TextBlock控件全攻略
查看>>
从与星瑞格软件的合作看浪潮深化主机生态布局
查看>>