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

其实这里所说的踩坑记录,无非就是微信在开发者文档上的写不太明确,也没有比较官方的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

解决方法:

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

微信退款 java工具类,微信支付中退款踩坑记录相关推荐

  1. java 工具类-去除字符串中特殊字符、全角转为半脚、获取字符串中姓名/电话、姓名重复后追加a.b.c...aa,ab..

    java 工具类-去除字符串中特殊字符.全角转为半脚.获取字符串中姓名/电话.姓名重复后追加a.b.c-aa,ab- public class NameUtil {/*** 姓名重复后追加a.b.c. ...

  2. 使用Java读取 “Python写入redis” 的数据踩坑记录

    https://my.oschina.net/u/2338224/blog/3061507 使用Java读取 "Python写入redis" 的数据踩坑记录 https://seg ...

  3. java工具类-判断一个对象中属性是否为null 或空字符串

    判断该对象是否为空对象 import cn.com.hwqh.user.entity.model.User;import java.lang.reflect.Field;/***判断该对象是否: 返回 ...

  4. 微信小程序请求不到接口解决(踩坑记录)

    检查 域名是否配置了ssl证书 小程序后台-开发-开发设置-服务器域名中是否配置了域名 配置完后可以在开发者工具中查看 如果还是不能请求到接口,请检查 ssl证书链是否有问题 myssl检测工具 我的 ...

  5. 微信小程序 html css xml,微信小程序 使用towxml解析html流程及踩坑记录

    towxml相对于wxParse还是有一定优势的,首先一些废弃或者过新的标签wxParse是不能解析的,会导致整个页面不能显示,其次 towxml对于界面的排版优化是比较美观的,对于开发者还算比较友好 ...

  6. java 发送邮件_Jenkins实现自动化邮件发送踩坑记录

    文章简介 本文分享Jenkins实现邮件发送,安装Jenkins可参考jenkins安装.写这篇文章,是在实际使用Jenkins过程中遇到这样一个问题,当每次Jenkins构建成功或者失败后,需要个人 ...

  7. java国际化服务器不识别_国际化踩坑记录java.util.MissingResourceException:

    在做国际化的时候遇到一个bug是无法加载到根目录下的自定义的properties文件 报错如下: java.util.MissingResourceException: Can't find bund ...

  8. Unity个人开发中的踩坑记录(混沌式更新)

    DateTime时间戳计算 一言蔽之,通常使用DateTime计算时间戳,起始时间点为UTC时间1970年1月1日0点整,需手动设置一个基准DateTime来处理. DateTime StartDat ...

  9. 安装KeOps过程中的踩坑记录

    由于需要跑一篇论文的代码,需要安装KeOps.这里忍不住再吐槽一次:Python开发环境的版本依赖管理太混乱了,加上各种操作系统,驱动,CUDA版本等等,太浪费生命.所以,如果要写论文,发布open ...

最新文章

  1. FPGA之道(28)VHDL的并行语句
  2. 实验6_MPEG音频编码实验
  3. 调用系统函数向进程发信号core
  4. 遇见不在洛谷收藏里的好题(并没有做)
  5. zend studio怎么连接mysql?
  6. libSM.so.6: cannot open shared object file: No such file or directoryapt-file search libSM.so.6
  7. 解决办法:RuntimeError: module compiled against API version 0xc but this version of numpy is 0xa
  8. c语言打印%-6llu,C语言-输出指定个数的质数
  9. SSM SpringBoot vue教务排课系统
  10. 【单片机仿真】(五)寻址方式 — 立即寻址与寄存器间接寻址
  11. 计算机恢复出厂设置xp,电脑xp一键恢复出厂设置
  12. 改善网页性能的5种方法
  13. 用户浏览器会话跟踪技术Cookie和Session
  14. html标签指定式权重,alternate和Canonical标签防止重复收录分散权重
  15. python excel处理重复行并统计个数_python统计一个文本中重复行数的方法
  16. 51.Linux 什么是线程?
  17. pg_restore恢复备份(记录一下)
  18. 学java被“劝退”的第三天
  19. SMP、COW、PVP、MPP计算机相关
  20. [Django1.5] two-scoops-django-best-practices 读书笔记

热门文章

  1. CDN怎么用?有哪些优势呢?如何挑选CDN服务商?
  2. ai写作软件免费-ai写作助手
  3. 域控制器需要安装文件服务器,域控服务器需要配置dns吗
  4. XVWA CSRF、Cryptography、Unvalidated Redirects and Forwards
  5. linux – 在hosts文件中为1个条目分配多个IP
  6. MySQL中的Boolean类型
  7. libreoffice python_从python运行Libreoffice BASIC宏
  8. html5 车牌识别,车牌识别系统
  9. selenium通过文本定位
  10. [linux数据库]error while loading shared libraries: libnsl.so.1: wrong ELF class: ELFCLASS32