From c2dcf4d9ee2b576603514285b45b06c87f7bc4ea Mon Sep 17 00:00:00 2001 From: yanghui <2536613402@qq.com> Date: 星期四, 17 十一月 2022 11:00:07 +0800 Subject: [PATCH] #feat .. --- springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/utlis/HttpClientUtil.java | 71 +++++++++++++++++++++++++++++++++++ 1 files changed, 71 insertions(+), 0 deletions(-) diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/utlis/HttpClientUtil.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/utlis/HttpClientUtil.java index 4898691..f6021ff 100644 --- a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/utlis/HttpClientUtil.java +++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/utlis/HttpClientUtil.java @@ -4,27 +4,35 @@ import java.net.MalformedURLException; import java.net.URL; import java.net.URLConnection; +import java.security.KeyStore; import java.util.Iterator; import java.util.List; import java.util.Map; +import com.alibaba.fastjson.JSONObject; import org.apache.http.Header; import org.apache.http.HttpEntity; import org.apache.http.HttpResponse; import org.apache.http.client.HttpClient; +import org.apache.http.client.methods.CloseableHttpResponse; import org.apache.http.client.methods.HttpGet; import org.apache.http.client.methods.HttpPost; import org.apache.http.client.methods.HttpUriRequest; +import org.apache.http.conn.ssl.SSLConnectionSocketFactory; import org.apache.http.entity.StringEntity; +import org.apache.http.impl.client.CloseableHttpClient; import org.apache.http.impl.client.DefaultHttpClient; import org.apache.http.impl.client.HttpClients; import org.apache.http.message.BasicHeader; +import org.apache.http.ssl.SSLContexts; import org.apache.http.util.EntityUtils; import org.springframework.util.ObjectUtils; import com.panzhihua.common.constants.HttpConstant; import lombok.extern.slf4j.Slf4j; + +import javax.net.ssl.SSLContext; /** * @program: springcloud_k8s_panzhihuazhihuishequ @@ -332,4 +340,67 @@ return in; } + /** + * 退款请求微信 + * @param url 请求地址 + * @param data 请求数据 + * @param mchId 商户id + * @param isTest 是否是测试 + * @return 退款结果 + * @throws Exception 抛出异常 + */ + public static String doRefund(String url, String data,String mchId,Boolean isTest) throws Exception{ + KeyStore keyStore = KeyStore.getInstance("PKCS12"); + //P12文件目录 证书路径,这里需要你自己修改,linux下还是windows下的根路径 + String filepath = ""; + if(isTest){ + filepath = "D:\\wx\\WXCertUtil\\cert\\"; + }else{ + filepath = "/mnt/data/refund/huacheng/"; + } + System.out.println("filepath->"+filepath); + FileInputStream instream = new FileInputStream(filepath+"apiclient_cert.p12"); + try { + keyStore.load(instream, mchId.toCharArray());//这里写密码..默认是你的MCHID + } finally { + instream.close(); + } + + // Trust own CA and all self-signed certs + SSLContext sslcontext = SSLContexts.custom() + .loadKeyMaterial(keyStore, mchId.toCharArray())//这里也是写密码的 + .build(); + // Allow TLSv1 protocol only + SSLConnectionSocketFactory sslsf = new SSLConnectionSocketFactory( + sslcontext, + SSLConnectionSocketFactory.getDefaultHostnameVerifier()); + 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); + try { + HttpEntity entity = response.getEntity(); + + String jsonStr = EntityUtils.toString(response.getEntity(), "UTF-8"); + log.info("请求微信退款接口返回结果:" + JSONObject.toJSONString(jsonStr)); + EntityUtils.consume(entity); + return jsonStr; + } finally { + response.close(); + } + } finally { + httpclient.close(); + } + + } } -- Gitblit v1.7.1