From 70dcf4e610a0ec5fd6ca2c3daf9edf4957b30529 Mon Sep 17 00:00:00 2001
From: “djh” <“3298565835@qq.com”>
Date: 星期二, 25 二月 2025 16:34:46 +0800
Subject: [PATCH] 考试制证修改

---
 exam-system/src/main/java/com/gkhy/exam/pay/utils/PayUtils.java |   36 +++++++++++++++++++++---------------
 1 files changed, 21 insertions(+), 15 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 06802cc..1a707b2 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
@@ -408,15 +408,15 @@
 
         String reqdatastr = JSONObject.toJSONString(payReqData);
 
-        String mac = this.getMD5("A1749891493E4CDDBFE4506357B1F0AB||" + this.getBase64(reqdatastr));
+        String mac = this.getMD5(appId+"||"+ this.getBase64(payReqData));
         JSONObject jsonObject = new JSONObject();
-        jsonObject.put("appid", "A1749891493E4CDDBFE4506357B1F0AB");
+        jsonObject.put("appid", appId);
         jsonObject.put("mac", mac);
-        jsonObject.put("reqdata", this.getBase64(reqdatastr));
+        jsonObject.put("reqdata", this.getBase64(payReqData));
         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);
@@ -425,7 +425,9 @@
         JSONObject jsonObject2 = result.getJSONObject("respdata");
         String signfile = jsonObject2.getString("fileData");
         String orderNo1 = jsonObject2.getString("orderNo");
-        String xmlFilePath = "F:/files/" + orderNo1 + ".xml";
+        // /home/www/swspkmas/files/
+//        String xmlFilePath = "/home/www/swspkmas/files/" + orderNo1 + ".xml";
+        String xmlFilePath = "F:\\text\\" + orderNo1 + ".xml";
         generateBase64StringToFile(signfile, xmlFilePath);
         String trr2 = "";
 
@@ -559,7 +561,7 @@
         Map<String, Object> mmp = new HashMap();
 
         try {
-            String filePath = "F:/cssconfig.properties";
+            String filePath = "F:\\text/cssconfig.properties";
             System.out.println("配置文件路径:" + filePath);
             MOFClient client = new MOFClient(filePath);
             System.out.println("证书标识为:" + certId);
@@ -591,7 +593,7 @@
     public Boolean uploadXmlV2(String orderNo, String signFile) {
         log.info("上传验签开始");
         log.info("上传验签参数订单号:" + orderNo + "签名文件:" + signFile);
-        ResponseDataVo<?> res = ClientFactory.sdkConfig("A1749891493E4CDDBFE4506357B1F0AB", "http://finpt.xjcz.gov.cn/fs-service", "http://finpt.xjcz.gov.cn/fs-service");
+        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(signFile);
         signatureFile.setOrderNo(orderNo);
@@ -630,9 +632,12 @@
         }
     }
 
-    public String getBase64(String str) {
-        String encodedStr = org.apache.commons.codec.binary.Base64.encodeBase64String(str.getBytes());
-        return encodedStr;
+    public String getBase64(PayReqData str) {
+//        String encodedStr = org.apache.commons.codec.binary.Base64.encodeBase64String(str.getBytes());
+        String reqData = Base64.getEncoder().encodeToString(JSONObject.toJSONString(str).getBytes());
+
+        return reqData;
+
     }
 
 
@@ -670,7 +675,8 @@
 //        Map<String, Object> mmp = new HashMap<>();
 
         try {
-            String filePath = "F:\\text\\cssconfig.properties";
+//            String filePath = "/home/www/swspkmas/cssconfig.properties";
+            String filePath = "F:\\text/cssconfig.properties";
             System.out.println("配置文件路径:" + filePath);
             MOFClient client = new MOFClient(filePath);
             System.out.println("证书标识为:" + certId);
@@ -705,7 +711,7 @@
         SignResult result = null;
         String certId = "11650000MB1957293J";
         try {
-            MOFClient client = new MOFClient("F:\\text\\cssconfig.properties");
+            MOFClient client = new MOFClient("/home/www/swspkmas/cssconfig.properties");
             result = client.sign(certId, strData.getBytes(StandardCharsets.UTF_8));
             log.info("***签名成功***");
             log.info("签名返回结果为:" + result);
@@ -727,7 +733,7 @@
     public MOFVerifyResult verify(byte[] strData, String signData) {
         MOFVerifyResult verify = null;
         try {
-            MOFClient client = new MOFClient("F:\\text\\cssconfig.properties");
+            MOFClient client = new MOFClient("/home/www/swspkmas/cssconfig.properties");
 
             verify = client.verifySign(strData, signData.getBytes(StandardCharsets.UTF_8));
             log.info("验签成功");
@@ -751,7 +757,7 @@
     public EnvelopResult encryptEnvelop(byte[] plain) {
         EnvelopResult envelopResult = null;
         try {
-            AdvanceSignClient client = new AdvanceSignClient("F:\\text\\cssconfig.properties");
+            AdvanceSignClient client = new AdvanceSignClient("/home/www/swspkmas/cssconfig.properties");
             String certId = "rsa";
             CertIdParams certIdParams = new CertIdParams(certId);
             //将封装好的加密证书参数对象放入 数组中
@@ -772,7 +778,7 @@
     public DecryptResult decryptEnvelop(String signData) {
         DecryptResult result = null;
         try {
-            AdvanceSignClient client = new AdvanceSignClient("F:\\text\\cssconfig.properties");
+            AdvanceSignClient client = new AdvanceSignClient("/home/www/swspkmas/cssconfig.properties");
             byte[] enc_data = signData.getBytes();
             result = client.decryptEnvelop(enc_data);
             log.info("解密数字信封结果成功");

--
Gitblit v1.9.2