微信公众号开发---退款   微信接口文档地址:https://pay.weixin.qq.com/wiki/doc/api/jsapi.php?chapter=9_4

1.先上官方文档说明

注意点:该接口是需要证书的,so,点击证书使用查看

按照上图中的所示路径前往下载(下载时比较烦,每次都有要验证码,而且是没点击一次下载就发一条,很容易造成验证码不正确)

我这儿是windows服务器,so直接下载运行即可,密码是商户号。

2.ok,准备工作好了,开始开发

参数

SortedMap paramesMap = new TreeMap<>();

paramesMap.put("appid", appId);

paramesMap.put("mch_id", mchId);

paramesMap.put("nonce_str", "date");

paramesMap.put("out_trade_no", tradeNo);//商户订单号,也可用微信的订单号,二选已,具体看文档

paramesMap.put("out_refund_no", refundSn);//商户退款单号,商户方自己生成

paramesMap.put("total_fee", "total_fee");//订单总金额

paramesMap.put("refund_fee", "refund_fee");//退款金额

paramesMap.put("sign", generateSign(paramesMap));//签名,同支付签名一样

请求

HttpPost httpPost = new HttpPost("https://api.mch.weixin.qq.com/secapi/pay/refund");

String xml=""

+""+appId+""

+ ""+mchId+""

+ ""+paramesMap.get("nonce_str")+""

+ ""+paramesMap.get("out_trade_no")+""

+ ""+paramesMap.get("out_refund_no")+""

+ ""+paramesMap.get("refund_fee")+""

+ ""+paramesMap.get("total_fee")+""

+ ""+paramesMap.get("sign")+""

+"";

httpPost.setEntity(new StringEntity(xml, "UTF-8"));

CloseableHttpResponse response = httpclient.execute(httpPost);

返回的数据

String jsonStr = EntityUtils.toString(response.getEntity(), "UTF-8");

3,请求成功了,就开始配置回调,用于微信通知商户方是否退款成功

微信配置:

在该处配置退款的回调地址即可

然后,就要开始处理回调结果了,还是先上官方文档

微信对订单的相关数据进行了加密,需要解密处理

base64解码直接调用java自带的

java.util.Base64.Decoder base64进行解码,最好不要用第三方包。然后将商户key进行32位小写md5加密,

最后用该key进行AES-256-ECB解密

解密时需要注意的是,jar包的安全策略是只支持128位的,所以需要替换安全策略文件

下载地址,oracle官方搜索

Java Cryptography Extension (JCE) Unlimited Strength Jurisdiction Policy Files 8 Download下载该文件,并替换 Java\jdk1.8.0_101\jre\lib\security

该文件夹中的这两个文件。ok,参数加密后就可以按照具体逻辑处理了。

java微信退款接口demo_微信公众号接口开发----退款详解相关推荐

  1. 微信公众平台菜单编辑php,Vue.js实现微信公众号菜单编辑器步骤详解(上)

    这次给大家带来Vue.js实现微信公众号菜单编辑器步骤详解(上),Vue.js实现微信公众号菜单编辑器的注意事项有哪些,下面就是实战案例,一起来看一下. 学习一段时间Vue.js,于是想尝试着做一个像 ...

  2. 在微信平台上做一个公众号,业务序列图

    Simplicity(191**17) 2018-06-10 10:03:49 Simplicity(191**17) 2018-06-10 10:05:49 请教:这个图表示 经销商向厂家下达采购订 ...

  3. JAVA微信公众号后台开发 接口接入

    前期准备 注册一个公众号,完成认证,阅读开发手册,选取开发工具,配置环境等等. 微信公众号开发标准 通过阅读文档我们了解到微信服务器向开发者提供接口,具体的流程如下 由上图可以看出,开发者需要做的:接 ...

  4. Java架构学习(五十一)微信公众号开发混合开发技术流程微信推送原理外网映射工具使用微信公众号接口认证代码获取微信客户端信息解决微信消息幂等问题

    一.微信公众号项目 SOA架构:面向接口开发,也就是相当于把传统的那种ssh项目的业务逻辑层抽取出来 做成接口. SSH架构与分布式架构的区别 SSH架构是整个项目的任何模块都在一个项目里面 分布式架 ...

  5. JeeWx捷微2.4.1版本发布,JAVA微信管家平台(支持公众号、企业号)

    JeeWx捷微2.4.1版本发布,JAVA微信管家平台(支持公众号.企业号) 1.JEEWX平台介绍  Jeewx是一款开源.敏捷.组件化的微信管家平台,支持微信公众号.微信企业号管理,采用JAVA语 ...

  6. JeeWx捷微 2.4.1版本发布,开源JAVA微信管家平台(支持公众号、企业号)

    JeeWx捷微2.4.1版本发布,JAVA微信管家平台(支持公众号.企业号) 1.JEEWX平台介绍  Jeewx是一款开源.敏捷.组件化的微信管家平台,支持微信公众号.微信企业号管理,采用JAVA语 ...

  7. 微信公众号-接口配置信息url和tokken

    一.接入指南 https://developers.weixin.qq.com/doc/offiaccount/Basic_Information/Access_Overview.html 接入概述 ...

  8. 微信公众号开发 - 配置表设计以及接入公众号接口开发

    微信公众号开发文章目录 1.微信公众号开发 - 环境搭建 2.微信公众号开发 - 配置表设计以及接入公众号接口开发 3.微信公众号开发 - token获取(保证同一时间段内只请求一次) 4.微信公众号 ...

  9. 微信支付、微信公众号接口认证方案

    1 微信公众号接口认证方案 1.1 认证流程 安全API接口认证方案 流程图模板_ProcessOn思维导图.流程图​www.processon.com/view/link/636e05a21e085 ...

  10. 微信公众号api关注接口php,1.1 公众号接口绑定

    ### 绑定微信公众号接口 * * * * * 在应用Admin目录下新建Wecha.php,并不需要权限控制,所以直接继承Controller. 这里的接口代码,学习于方倍工作室的<微信公众平 ...

最新文章

  1. 第 6 章 Harddisk IO
  2. 卫星导航技术的源起很有戏剧性
  3. android查看kernel log
  4. luogu P1762 偶数
  5. linux 编译system.img,android生成sysytem.img的命令过程
  6. Ansible Inventory
  7. 删除节点命令removeNode
  8. 狗熊冬眠_4本最佳的冬眠书–Spring冬眠书
  9. 为什么「margin:auto」可以让块级元素水平居中?
  10. TeeChart插入
  11. 数据库复习-3.常用的概念模型
  12. 链接mysql 504_常见错误类型502与504
  13. 2021-2027全球与中国气溶胶检测器市场现状及未来发展趋势
  14. granite crushers in german
  15. OpenGL 亮度调节
  16. 03-能看懂代码,就是自己写不出来,怎么办?
  17. MAPGIS快捷键大全
  18. 智慧城市建设多面手 5G智慧灯杆成为关键桥梁
  19. java指针乱跳_鼠标卡顿,指针乱跳,鼠标失灵的解决办法。 涨知识了
  20. (修改gho文件办法)做属于自己个性的gho系统

热门文章

  1. 自动驾驶商用车需要什么样的电气架构?
  2. 相似度计算方法(一) 皮尔森相关系数
  3. 中国AI专利数稳居第一!世界各国AI专利深度盘点
  4. 稳压芯片TPS54531的设计和分析
  5. 周末浅说--未将对象引用设置到对象的实例(System.NullReferenceException)
  6. Web应用程序设计(一)——基础开发环境搭建
  7. Linux ——IP配置修改
  8. 微分方程模型——偏微分方程
  9. 华硕Chromebox-cn 62+i7-5500 U+HD 5500
  10. 笑看风云|水花投资(20220109 Week1-3)