| | |
| | | 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 |
| | |
| | | stringEntity.setContentEncoding(HttpConstant.UTF8_ENCODE); |
| | | stringEntity.setContentType(HttpConstant.APPLICATION_JSON); |
| | | httpPost.setEntity(stringEntity); |
| | | log.info("请求{}接口的参数为{}", url, jsonParam); |
| | | // log.info("请求{}接口的参数为{}", url, jsonParam); |
| | | // 执行发送,获取相应结果 |
| | | httpResponse = httpClient.execute(httpPost); |
| | | httpEntity = httpResponse.getEntity(); |
| | |
| | | } |
| | | // 请求接口的响应时间 |
| | | endTime = System.currentTimeMillis(); |
| | | log.info("请求{}接口的响应报文内容为{},本次请求API接口的响应时间为:{}毫秒", url, result, (endTime - startTime)); |
| | | // log.info("请求{}接口的响应报文内容为{},本次请求API接口的响应时间为:{}毫秒", url, result, (endTime - startTime)); |
| | | return result; |
| | | |
| | | } |
| | |
| | | try { |
| | | defaultHttpClient = new DefaultHttpClient(); |
| | | HttpPost httpPost = new HttpPost(url); |
| | | httpPost.setHeader("Content-Type", "application/json;charset=ut-8"); |
| | | httpPost.setHeader("Content-Type", "application/json;charset=utf-8"); |
| | | if (StringUtils.isNotBlank(param)) { |
| | | log.info("参数值:{}", param); |
| | | HttpEntity httpEntity = new StringEntity(param, "utf-8"); |
| | |
| | | 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 = "/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(); |
| | | } |
| | | |
| | | } |
| | | } |