小程序微信退款

本文详细介绍了小程序微信退款的步骤,包括下载证书、配置文件、调用证书及生成签名。文中提供退款代码示例,并提醒注意退款通知URL的设置。对于不熟悉流程的开发者,作者愿意提供帮助。
摘要由CSDN通过智能技术生成

小程序微信退款

老规矩写之前阅读官方文档:https://pay.weixin.qq.com/wiki/doc/api/jsapi.php?chapter=9_4

1、开发准备-下载证书
在这里插入图片描述

1.1证书下载之后在本地是这样的
在这里插入图片描述
选择.p12格式的文件放到配置文件的证书路径(SSLCERT_PATH)
在这里插入图片描述

2、开发过程-配置文件
此处的配置文件可以参考上篇文章小程序微信支付,其中SSLCERT_PATH(证书路径)和SSLCERT_PASSWORD(密码)就是所需的参数,路径直接填本地文件所在的路径即可(比如:C:/Users/Administrator/Downloads/WXCertUtil/cert/1521091331_20190114_cert/apiclient_cert.p12)

#微信的配置参数
APPID=微信公众平台中
#开发者密码
APPSECRET=微信公众平台中
#微信商户号
MCH_ID=客户开通的商户号
#交易类型
TRADE_TYPE=JSAPI(公众号和小程序都能用次类型)
#微信退款回调地址
#REFUND_NOTIFY_URL = 退款成功回调地址
#签名方式
SIGN_TYPE=MD5
#微信支付商户密钥
KEY=商户平台中下载证书的时候设置的密钥
#证书路径
SSLCERT_PATH = 证书路径
#默认密码 默认为商户号
SSLCERT_PASSWORD = 商户号

3、WXAuthUtil 参考上篇微信付款中的WXAuthUtil文件,其中SSLCERT_PATH、SSLCERT_PASSWORD、REFUND_NOTIFY_URL

4、记重点!!!调用证书

public class ClientCustomSSL {
   
	 @SuppressWarnings("deprecation")
	    public static String doRefund(String url,String data) throws Exception {
    
			/** 
			* 注意PKCS12证书 是从微信商户平台-》账户设置-》 API安全 中下载的 
			*/ 
			KeyStore keyStore = KeyStore.getInstance("PKCS12"); 
			/**
			*此处要改
			*wxconfig.SSLCERT_PATH : 指向你的证书的绝对路径,带着证书去访问 ===========要修改
			*/
			FileInputStream instream = new FileInputStream(new File(WXAuthUtil.SSLCERT_PATH));//P12文件目录 
			try {
    
			/** 
			* 此处要改 
			* 
			* 下载证书时的密码、默认密码是你的MCHID mch_id===========要修改
			* */ 
			keyStore.load(instream, WXAuthUtil.SSLCERT_PASSWORD.toCharArray());//这里写密码
			} finally {
    
				instream.close(); 
			} 
			/** 
			* 此处要改 
			* 下载证书时的密码、默认密码是你的MCHID mch_id
			* */ 
			 SSLContext sslcontext = SSLContexts.custom() 
			.loadKeyMaterial(keyStore, WXAuthUtil.SSLCERT_PASSWORD.toCharArray())//这里也是写密码的 
			.build(); 
			// Allow TLSv1 protocol only 
			SSLConnectionSocketFactory sslsf = new SSLConnectionSocketFactory( 
			sslcontext, 
			new String[] {
    "TLSv1" }, 
			null, 
			SSLConnectionSocketFactory.BROWSER_COMPATIBLE_HOSTNAME_VERIFIER); 
			CloseableHttpClient httpclient = HttpClients.custom() 
			.setSSLSocketFactory(sslsf) 
			.build(); 
			try {
    
			HttpPost httpost = new HttpPost(url); // 设置响应头信息 
			httpost.addHeader("Connection", "keep-alive"); 
			httpost.addHeader("Accept", "*/*"); 
			httpost.addHeader("Content-Type", "application/x-www-form-urlencoded; charset=UTF-8"); 
			httpost.addHeader("Host", "api.mch.weixin.qq.com"); 
			httpost.addHeader("X-Requested-With", "XMLHttpRequest"); 
			httpost.addHeader("Cache-Control", "max-age=0"); 
			httpost.addHeader("User-Agent", "Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.0) "); 
			httpost.setEntity(new StringEntity(data, "UTF-8")); 
			CloseableHttpResponse response = httpclient.execute(httpost
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值