微信公众号-申请退款-Java

  • 接口地址
  1. 接口链接:https://api.mch.weixin.qq.com/secapi/pay/refund
  • 是否需要证书
  1. 请求需要双向证书,需要登录微信支付官网下载证书
  • 请求参数
  1. 详见微信支付官方文档(https://pay.weixin.qq.com/wiki/doc/api/jsapi.php?chapter=9_4)
  • 说明
  1. 关于微信中的签名、将map 转 xml串或xml串转map 在微信Demo 中都可以找到
//组装退款需要的参数
Map<String, String> data = new HashMap<>();
data.put("appid", WxPayConstants.APPID);//公众账号ID
data.put("mch_id", WxPayConstants.MCH_ID);//商户号
data.put("sign_type", "MD5");//签名类型
data.put("nonce_str", "ABCDEFG001");//随机字符串
data.put("transaction_id", "3200000053200000000000000001");//微信订单号
data.put("out_refund_no", "T000000000001");//商户退款单号
data.put("total_fee", "100");//订单金额,单位为分
data.put("refund_fee", "100");//退款金额,单位为分
data.put("refund_fee_type", "CNY");//退款货币种类
data.put("notify_url", this.refundNotifyUrl);//退款结果通知url
//生成签名信息
data.put("sign", WxPayUtils.generateSignature(data, WxPayConstants.KEY));//KEY:签名密钥
//将map 转为xml串
String mapToXml = WxPayUtils.mapToXml(data);

KeyStore keyStore = KeyStore.getInstance("PKCS12");
//加载本地的证书进行https加密传输
FileInputStream instream = new FileInputStream(new File(this.certPath));//certPath:证书路径
try {
      keyStore.load(instream, WxPayConstants.MCH_ID.toCharArray());  //加载证书密码,默认为商户ID
} catch (Exception e) {
       //do nothing
}finally {
       instream.close();
}
// 实例化密钥库 & 初始化密钥工厂
KeyManagerFactory kmf = KeyManagerFactory.getInstance(KeyManagerFactory.getDefaultAlgorithm());
kmf.init(keyStore, WxPayConstants.MCH_ID.toCharArray());

// 创建 SSLContext
SSLContext sslContext = SSLContext.getInstance("TLS");
sslContext.init(kmf.getKeyManagers(), null, new SecureRandom());

SSLConnectionSocketFactory sslConnectionSocketFactory = new SSLConnectionSocketFactory(
                    sslContext,
                    new String[]{"TLSv1"},
                    null,
                    new DefaultHostnameVerifier());
CloseableHttpClient httpclient = HttpClients.custom()  
                    .setSSLSocketFactory(sslConnectionSocketFactory).build();
//退款请求地址
HttpPost httpPost = new HttpPost("https://api.mch.weixin.qq.com/secapi/pay/refund");
			
StringEntity reqEntity = new StringEntity(mapToXml);
			
RequestConfig requestConfig = RequestConfig.custom().setSocketTimeout(readTimeoutMs).setConnectTimeout(connectTimeoutMs).build();
httpPost.setConfig(requestConfig);
	        
httpPost.addHeader("Content-Type", "text/xml");
//设置参数
httpPost.setEntity(reqEntity);
			
//发起请求
CloseableHttpResponse response = httpClient.execute(httpPost);
//获取退款返回内容
String strResult = EntityUtils.toString(response.getEntity(), Charset.forName(encoding));
	        

转载于:https://my.oschina.net/u/3694704/blog/1791883

### 回答1: weixin-java-mp是一个基于Java开发的微信公众平台开发工具包。它提供了丰富的接口和功能,方便开发者与微信公众号进行交互和开发。 weixin-java-mp支持公众号的基本操作,例如消息的接收和发送、用户管理、素材管理等。开发者可以使用weixin-java-mp来构建自己的公众号,并通过自定义的逻辑来处理微信用户的操作和请求。 weixin-java-mp还提供了丰富的API接口,允许开发者根据自己的需求进行接口的调用和业务逻辑的实现。开发者可以通过调用weixin-java-mp提供的API接口,实现用户信息的获取、发送模板消息、创建自定义菜单等功能。 除了基本的功能和接口,weixin-java-mp还支持微信支付的功能。开发者可以通过weixin-java-mp来实现微信支付的相关逻辑,例如生成支付二维码、处理支付回调等。 总的来说,weixin-java-mp是一个强大的工具包,提供了丰富的功能和接口,方便开发者进行微信公众号的开发和管理。无论是开发新的公众号应用还是对已有公众号进行升级和优化,使用weixin-java-mp都能够提高开发效率,减少开发工作量。 ### 回答2: weixin-java-mp是一个基于Java微信公众号开发框架。它提供了一系列的接口和工具,方便开发者与微信公众号进行交互和开发。 首先,weixin-java-mp可以帮助开发者实现与微信公众号的接入和消息事件的处理。它提供了接口来验证开发者的服务器配置信息,并能够接收、解析和处理微信公众号发送的消息和事件,比如文本消息、图片消息、菜单点击事件等。 其次,weixin-java-mp还封装了微信公众号的各种功能接口,开发者可以利用这些接口实现自定义的功能。例如,发送回复消息、获取用户信息、创建自定义菜单、上传下载媒体文件等等。开发者可以根据自己的需求选择合适的接口来实现对微信公众号的操作。 此外,weixin-java-mp还提供了一些常用的工具类,例如消息加解密工具、支付签名工具等,方便开发者进行相关功能的开发和调试。 总的来说,weixin-java-mp是一个功能丰富、易于使用的微信公众号开发框架,可以帮助开发者快速搭建和开发微信公众号的各种功能,使开发工作变得更加高效和便捷。 ### 回答3: weixin-java-mp是一个Java开发的微信公众号开发框架,它提供了一系列方便的功能和API,方便开发者进行微信公众号的开发和管理。 weixin-java-mp可以帮助开发者快速搭建微信公众号应用,提供了与微信服务器进行交互的工具类和方法。开发者可以使用weixin-java-mp来处理接收到的微信消息、回复消息、获取用户信息、创建自定义菜单等功能。同时,weixin-java-mp还支持微信支付、素材管理、用户管理、模板消息等高级功能的开发和调用。 weixin-java-mp使用了面向对象的设计模式,提供了丰富的API接口,让开发者能够方便地与微信服务器进行通信。它使用了一种简单且灵活的方式来定义和处理微信消息,可以根据不同的消息类型进行相应的处理,比如文本消息、图片消息、语音消息等。通过weixin-java-mp,开发者可以轻松地处理和响应用户发送的不同类型的消息。 此外,weixin-java-mp还支持多种微信支付方式的开发和调用,包括统一下单、订单查询、退款等功能,方便开发者进行商业化的微信公众号应用开发。开发者可以使用weixin-java-mp来方便地调用这些支付接口,实现微信支付的功能。 总之,weixin-java-mp是一个功能强大且易于使用的微信公众号开发框架,它提供了丰富的API和工具类,方便开发者进行微信公众号应用的开发和管理。无论是开发者初学者还是有经验的开发者,都可以使用weixin-java-mp来快速搭建微信公众号应用。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值