From 5cac1da67768c3dbbcd74e50ad59cb80fb82def0 Mon Sep 17 00:00:00 2001
From: KKSU <15274802129@163.com>
Date: Thu, 18 Jan 2024 11:21:36 +0800
Subject: [PATCH] fapiao

---
 src/test/java/cc/mrbird/febs/ProfitTest.java |  108 +++++++++++++++++++++++-------------------------------
 1 files changed, 46 insertions(+), 62 deletions(-)

diff --git a/src/test/java/cc/mrbird/febs/ProfitTest.java b/src/test/java/cc/mrbird/febs/ProfitTest.java
index 554e4dd..1c57182 100644
--- a/src/test/java/cc/mrbird/febs/ProfitTest.java
+++ b/src/test/java/cc/mrbird/febs/ProfitTest.java
@@ -46,6 +46,7 @@
 import org.apache.http.entity.StringEntity;
 import org.apache.http.impl.client.CloseableHttpClient;
 import org.apache.http.impl.client.HttpClients;
+import org.apache.http.message.BasicNameValuePair;
 import org.apache.http.util.EntityUtils;
 import org.junit.jupiter.api.Test;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -196,54 +197,44 @@
 
     @Test
     public void rankProfit04() throws IOException {//获取用户填写的抬头
-        FPUserTitleDto fpUserTitleDto = new FPUserTitleDto();
-        fpUserTitleDto.setScene("WITH_WECHATPAY");
-        fpUserTitleDto.setFapiao_apply_id("");
-
-        String parseObj = JSONUtil.parseObj(fpUserTitleDto).toString();
+        //初始化请求参数
+        Map<String, Object> params = new HashMap<>();
+        params.put("scene","WITH_WECHATPAY");
+        params.put("fapiao_apply_id","4200002070202401175245187105");
+        String parseObj = JSONUtil.parseObj(params).toString();
         System.out.println(parseObj);
+
         String baseUrl = "https://api.mch.weixin.qq.com";
         String canonicalUrl = "/v3/new-tax-control-fapiao/user-title";
+
+        String urlparm = baseUrl+canonicalUrl;//有参数的get请求,加密是需要把参数加载进去URL
+        List<BasicNameValuePair> parameters = new ArrayList<>();
+        for (Map.Entry<String, Object> entry : params.entrySet()) {
+            parameters.add(new BasicNameValuePair(entry.getKey(), entry.getValue().toString()));
+        }
+        StringBuilder dataparm = new StringBuilder();
+        params.forEach((k, v) -> dataparm.append("&" + k + "=" + v));
+        String string = dataparm.toString();
+        if (!"".equals(string)) {
+            urlparm = baseUrl+canonicalUrl + "?" + dataparm.substring(1);
+        }
+        System.out.println(urlparm);
+
         PrivateKey privateKey = wxFaPiaoService.getPrivateKeyV3();
         String postStr = null;
         try {
             postStr = wxFaPiaoService.createAuthorization(
-                    "POST",
-                    baseUrl+canonicalUrl,
-                    parseObj,
+                    "GET",
+                    urlparm,
+                    "",
                     privateKey
             );
         } catch (NoSuchAlgorithmException e) {
             e.printStackTrace();
         }
-        String token = AppContants.FP_TOKEN_HEADER_TYPE+postStr;
-
-        System.out.println("WECHATPAY2-SHA256-RSA2048 "+postStr);
-        String s = wxFaPiaoService.sendPost(baseUrl + canonicalUrl, parseObj, "WECHATPAY2-SHA256-RSA2048 "+postStr);
+        String s = wxFaPiaoService.sendGet(baseUrl+canonicalUrl, params, "WECHATPAY2-SHA256-RSA2048 "+postStr);
         System.out.println(s);
-        cn.hutool.json.JSONObject jsonObject = JSONUtil.parseObj(s);
-        System.out.println(jsonObject);
-    }
-
-    @Test
-    public void rankProfit05() throws IOException {//获取用户填写的抬头
-        byte[] bytes = "daL341aN5orDt13puXadsAf2rpuX12v3".getBytes("utf-8");
-        try {
-            //传入证书
-            PrivateKey privateKey = wxFaPiaoService.getPrivateKeyV3();
-            //刷新
-            PrivateKeySigner signer = new PrivateKeySigner(AppContants.WX_CARD_NUM, privateKey);
-            WechatPay2Credentials credentials = new WechatPay2Credentials("1658958205", signer);
-            AutoUpdateCertificatesVerifier autoUpdateCertificatesVerifier = new AutoUpdateCertificatesVerifier(credentials
-                    , bytes);
-
-            NotificationHandler handler = new NotificationHandler(autoUpdateCertificatesVerifier,bytes);
-        } catch (UnsupportedEncodingException e) {
-            e.printStackTrace();
-        } catch (IOException e) {
-            e.printStackTrace();
-        }
-    }
+                                }
 
     @Test
     public void rankProfit2() throws IOException {//查询配置开发选项
@@ -263,22 +254,25 @@
             e.printStackTrace();
         }
         System.out.println("WECHATPAY2-SHA256-RSA2048"+postStr);
-        try {
-            HttpClient httpClient = new HttpClient();
-            GetMethod method = new GetMethod(baseUrl+canonicalUrl);
-            method.setRequestHeader("Accept", "application/json");
-            method.setRequestHeader("User-Agent", "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/51.0.2704.106 Safari/537.36");
-            method.setRequestHeader("Content-Type", "application/x-www-form-urlencoded; charset=UTF-8");
-            method.setRequestHeader("Connection", "keep-alive");
-            method.setRequestHeader("Authorization", "WECHATPAY2-SHA256-RSA2048 "+postStr);
-            httpClient.executeMethod(method);
-            System.out.println(method);
-            String responseBodyAsString = method.getResponseBodyAsString();
-            cn.hutool.json.JSONObject maps = JSONUtil.parseObj(responseBodyAsString);
-            System.out.println(maps);
-        } catch (IOException e) {
-            e.printStackTrace();
-        }
+        String s = wxFaPiaoService.sendGet(baseUrl + canonicalUrl, new HashMap<>(), "WECHATPAY2-SHA256-RSA2048 "+postStr);
+
+        System.out.println(s);
+//        try {
+//            HttpClient httpClient = new HttpClient();
+//            GetMethod method = new GetMethod(baseUrl+canonicalUrl);
+//            method.setRequestHeader("Accept", "application/json");
+//            method.setRequestHeader("User-Agent", "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/51.0.2704.106 Safari/537.36");
+//            method.setRequestHeader("Content-Type", "application/x-www-form-urlencoded; charset=UTF-8");
+//            method.setRequestHeader("Connection", "keep-alive");
+//            method.setRequestHeader("Authorization", "WECHATPAY2-SHA256-RSA2048 "+postStr);
+//            httpClient.executeMethod(method);
+//            System.out.println(method);
+//            String responseBodyAsString = method.getResponseBodyAsString();
+//            cn.hutool.json.JSONObject maps = JSONUtil.parseObj(responseBodyAsString);
+//            System.out.println(maps);
+//        } catch (IOException e) {
+//            e.printStackTrace();
+//        }
 
     }
 
@@ -301,18 +295,8 @@
         } catch (NoSuchAlgorithmException e) {
             e.printStackTrace();
         }
-        HttpClient httpClient = new HttpClient();
+        String responseBodyAsString = wxFaPiaoService.sendGet(baseUrl + canonicalUrl, new HashMap<>(), "WECHATPAY2-SHA256-RSA2048 "+postStr);
         try {
-            GetMethod method = new GetMethod(baseUrl+canonicalUrl);
-            method.setRequestHeader("Accept", "application/json");
-            method.setRequestHeader("User-Agent", "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/51.0.2704.106 Safari/537.36");
-            method.setRequestHeader("Content-Type", "application/x-www-form-urlencoded; charset=UTF-8");
-//            method.setRequestHeader("Connection", "keep-alive");
-            method.setRequestHeader("Authorization", "WECHATPAY2-SHA256-RSA2048 "+postStr);
-            int i = httpClient.executeMethod(method);
-            System.out.println(i);
-            System.out.println(method);
-            String responseBodyAsString = method.getResponseBodyAsString();
             cn.hutool.json.JSONObject maps = JSONUtil.parseObj(responseBodyAsString);
             System.out.println(maps);
 

--
Gitblit v1.9.1