微信公众号接口开发—-退款详解编程语言
2023-06-13 09:20:40 时间
微信公众号开发 退款 微信接口文档地址:https://pay.weixin.qq.com/wiki/doc/api/jsapi.php?chapter=9_4
1.先上官方文档说明
注意点:该接口是需要证书的,so,点击证书使用查看
按照上图中的所示路径前往下载(下载时比较烦,每次都有要验证码,而且是没点击一次下载就发一条,很容易造成验证码不正确)
我这儿是windows服务器,so直接下载运行即可,密码是商户号。
2.ok,准备工作好了,开始开发
参数
SortedMap String, Object 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=" xml " +" appid "+appId+" /appid " + " mch_id "+mchId+" /mch_id " + " nonce_str "+paramesMap.get("nonce_str")+" /nonce_str " + " out_trade_no "+paramesMap.get("out_trade_no")+" /out_trade_no " + " out_refund_no "+paramesMap.get("out_refund_no")+" /out_refund_no " + " refund_fee "+paramesMap.get("refund_fee")+" /refund_fee " + " total_fee "+paramesMap.get("total_fee")+" /total_fee " + " sign "+paramesMap.get("sign")+" /sign " +" /xml 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,参数加密后就可以按照具体逻辑处理了。
原创文章,作者:ItWorker,如若转载,请注明出处:https://blog.ytso.com/13705.html
cjavaoraclephpwindowsxml相关文章
- 微信公众号开发(一)服务器及接口的配置
- 微信公众号-微信接口
- 在线客服系统源码开发实战总结:Golang实现对接微信公众号网页授权接口功能
- 企业微信api,企业微信sdk接口
- ICP备案查询接口/API
- 滑动窗口进行接口的限流
- Java的函数式接口以及Lambda表达式
- 全志 芯片 Linux MIPI CSI摄像头接口开发指南 VIN DVP CSI MIPI V4l2
- 接口测试第8讲:基于unittest框架requests自动化测试上
- 关于单个flask接口的微信request合法域名认证(无需借助任何集成环境)
- 微信客服接口对接-签名验签-微信客服GET请求回调URL验证解析返回数据-【唯一客服】
- 真是够变态的,微信小程序一个小小的头像和昵称接口竟然改了那么多次
- 微信小程序调用客服php接口实现回复消息详解程序员
- Hibernate Query接口 setBoolean方法:绑定映射类型为boolean的参数
- 微信JS接口汇总及使用详解