美文网首页
微信支付中退款踩坑记录

微信支付中退款踩坑记录

作者: kevin0016 | 来源:发表于2018-08-27 15:54 被阅读344次

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

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

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

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

    微信的解密算法

    首先是base64解码的工具类

    base64Utils

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

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

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

    解密参数设置 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

    解决方法:

    http://stackoverflow.com/questions/6481627/java-security-illegal-key-size-or-default-parameters

    JDK8 jar包下载地址:

    http://www.oracle.com/technetwork/java/javase/downloads/jce8-download-2133166.html

    JDK7 jar包下载地址:

    http://www.oracle.com/technetwork/java/javase/downloads/jce-7-download-432124.html

    JDK6 jar包下载地址:

    http://www.oracle.com/technetwork/java/javase/downloads/jce-6-download-429243.html

    把里面的两个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下原来的文件,注意先备份原文件。

    相关文章

      网友评论

          本文标题:微信支付中退款踩坑记录

          本文链接:https://www.haomeiwen.com/subject/qsoziftx.html