做微信支付推荐用github或者码云的开源工具,链接:https://gitee.com/binary/weixin-java-tools

其实在那个开源工具里都有解码,在package com.github.binarywang.wxpay.bean.notify下,名字叫WxPayRefundNotifyResult的类中,fromXML静态方法。不过它里面是AES/ECB/PKCS5Padding这样的解码模式,而微信api要求AES/ECB/PKCS7Padding。我起先因为没怎么看源码,就自己手写(网上copy后改改改...)了解码。但是项目自己封装的MD5加密不是apache的,不是import org.apache.commons.codec.digest.DigestUtils这个,而是用import java.security.MessageDigest这个去实现。但是,但是,但是,微信api的退款回调通知说明上只是说MD5加密Key,没说是哪种MD5加密方式。

MD5加密可以参考这篇博客:http://zoroeye.iteye.com/blog/2026984?utm_source=tuicool&utm_medium=referral

起先,我用项目的MD5Utils类,处理就gg了。找了半天的错,报如下异常!

【pad block corrupted】

换成apache的MD5加密方式就好了,表明当初微信那边的加密信息的key加密也是用apache的。。。

也就是代码换成下面这样的:

另附下载工具类链接:https://download.csdn.net/download/baidu_35751704/10637005

没积分的可以给我发消息。

Logo

开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!

更多推荐