From 3a762add44449332d6d379e361698850f6066e16 Mon Sep 17 00:00:00 2001
From: heheng <475597332@qq.com>
Date: 星期一, 19 五月 2025 15:20:12 +0800
Subject: [PATCH] 修改

---
 exam-system/src/main/java/com/gkhy/exam/pay/utils/PayUtils.java |   70 +++++++++++++++++------------------
 1 files changed, 34 insertions(+), 36 deletions(-)

diff --git a/exam-system/src/main/java/com/gkhy/exam/pay/utils/PayUtils.java b/exam-system/src/main/java/com/gkhy/exam/pay/utils/PayUtils.java
index a12e483..f34ad90 100644
--- a/exam-system/src/main/java/com/gkhy/exam/pay/utils/PayUtils.java
+++ b/exam-system/src/main/java/com/gkhy/exam/pay/utils/PayUtils.java
@@ -9,6 +9,11 @@
 import cn.hutool.http.HttpUtil;
 import com.alibaba.fastjson2.JSONObject;
 import com.gkhy.exam.pay.entity.PayReqData;
+import com.xjhys.edu.fee.sdk.client.BillClient;
+import com.xjhys.edu.fee.sdk.client.impl.ClientFactory;
+import com.xjhys.edu.fee.sdk.model.ResponseDataVo;
+import com.xjhys.edu.fee.sdk.model.SignatureFileVo;
+import com.xjhys.edu.fee.sdk.model.UploadXmlReponseDataVo;
 import lombok.extern.slf4j.Slf4j;
 import org.apache.commons.codec.digest.DigestUtils;
 import org.apache.http.HttpEntity;
@@ -306,7 +311,7 @@
         String stringContent = execute.getStringContent();
         ResultVo resultVo = JSONObject.parseObject(stringContent, ResultVo.class);
         log.info("请求结果为:" + resultVo);
-        if (resultVo.getRespcode().equals("BUS0000")) {
+        if (resultVo.getRespcode().equals(CaiZhengConstans.CAI_ZHENG_SUCCESS)) {
             return "success";
         }
         return "fail";
@@ -403,15 +408,15 @@
 
         String reqdatastr = JSONObject.toJSONString(payReqData);
 
-        String mac = this.getMD5("A1749891493E4CDDBFE4506357B1F0AB||" + this.getBase64(reqdatastr));
+        String mac = this.getMD5(appId + "||" + this.getBase64(reqdatastr));
         JSONObject jsonObject = new JSONObject();
-        jsonObject.put("appid", "A1749891493E4CDDBFE4506357B1F0AB");
+        jsonObject.put("appid", appId);
         jsonObject.put("mac", mac);
         jsonObject.put("reqdata", this.getBase64(reqdatastr));
         Map<String, String> header = new HashMap();
         header.put("Accept", "application/json;charset=utf-8");
         header.put("Content-Type", "application/json;charset=utf-8");
-        String resultStr = HttpUtil.post("http://finpt.xjcz.gov.cn/fs-service/fs-pay/invoice.do ", jsonObject);
+        String resultStr = HttpUtil.post(orderUrl, jsonObject);
         System.out.println("发起入参===" + jsonObject);
         JSONObject result = JSONObject.parseObject(resultStr);
         ResultVo resultVo = JSONObject.parseObject(resultStr, ResultVo.class);
@@ -445,11 +450,17 @@
         String jmsignfile = this.signFilejdnew(trr2);
         String zuizhongpath = montageXmlV3(xmlFilePath, jmsignfile);
         String zzsignfile = convertFileToBase64(zuizhongpath);
-        this.uploadXmlV2(orderNo1, zzsignfile);
+        Boolean b = this.uploadXmlV2(orderNo1, zzsignfile);
+
         File file = new File(xmlFilePath);
         file.delete();
         File file1 = new File(zuizhongpath);
         file1.delete();
+        if (b) {
+            return resultVo;
+        } else {
+            resultVo.setRespcode("BUS8888");
+        }
         return resultVo;
     }
 
@@ -548,7 +559,7 @@
         Map<String, Object> mmp = new HashMap();
 
         try {
-            String filePath = "F:/cssconfig.properties";
+            String filePath = "/www/wwwroot/exam/cssconfig.properties";
             System.out.println("配置文件路径:" + filePath);
             MOFClient client = new MOFClient(filePath);
             System.out.println("证书标识为:" + certId);
@@ -577,40 +588,27 @@
         }
     }
 
-    public ResultVo uploadXmlV2(String orderId, String plain) {
-        Map<String, String> params = new HashMap<>();
-
-
-        String appid = "A1749891493E4CDDBFE4506357B1F0AB";
-        String orderUrl = "http://finpt.xjcz.gov.cn/fs-service/fs-pay/uploadXml.do";
-
+    public Boolean uploadXmlV2(String orderNo, String signFile) {
+        log.info("上传验签开始");
+        log.info("上传验签参数订单号:" + orderNo + "签名文件:" + signFile);
+        ResponseDataVo<?> res = ClientFactory.sdkConfig(appId, "http://finpt.xjcz.gov.cn/fs-service", "http://finpt.xjcz.gov.cn/fs-service");
         SignatureFileVo signatureFile = new SignatureFileVo();
-        signatureFile.setFileData(plain);
-        signatureFile.setOrderNo(orderId);
+        signatureFile.setFileData(signFile);
+        signatureFile.setOrderNo(orderNo);
+        BillClient billClient = ClientFactory.getBillClient();
+        ResponseDataVo<UploadXmlReponseDataVo> dataRes = billClient.uploadXml(signatureFile);
 
-        String reqdata = getBase64(signatureFile.toString());
-        String mac = appid + "||" + reqdata;
-        mac = DigestUtils.md5Hex(mac.getBytes());
-
-        params.put("appid", appid);
-        params.put("reqdata", reqdata);
-        params.put("mac", mac);
-
-        HttpPost httpPost = new HttpPost(orderUrl);
-        httpPost.setEntity(assemblyFormEntity(params, "utf-8"));
-        HttpClient httpClient = getHttpClient(orderUrl);
-        HttpResultVo execute = null;
-        try {
-            execute = httpClient.execute(httpPost, getResponseHandler());
-        } catch (IOException e) {
-            throw new RuntimeException(e);
+        if (!dataRes.getRespcode().equals(CaiZhengConstans.CAI_ZHENG_SUCCESS)) {
+            log.info("上传验签失败:" + dataRes);
+            return false;
         }
-        String stringContent = execute.getStringContent();
-        ResultVo resultVo = JSONObject.parseObject(stringContent, ResultVo.class);
-        log.info("请求结果转为:" + resultVo);
-        return resultVo;
+//        String mac = this.getMD5("A1749891493E4CDDBFE4506357B1F0AB||" + this.getBase64(signatureFile.toString()));
+//        JSONObject jsonObject = new JSONObject();
+//        jsonObject.put("appid", "A1749891493E4CDDBFE4506357B1F0AB");
+//        jsonObject.put("mac", mac);
+//        jsonObject.put("reqdata", this.getBase64(signatureFile.toString()));
+        return true;
     }
-
 
     public String getMD5(String input) {
         try {

--
Gitblit v1.9.2