From dcf2c39ca10e6b7e91a7970cd784a5bf07a55207 Mon Sep 17 00:00:00 2001
From: heheng <heheng@123456>
Date: 星期二, 18 二月 2025 16:41:52 +0800
Subject: [PATCH] merge

---
 exam-system/src/main/java/com/gkhy/exam/pay/utils/DemoUtils.java |  178 +++++++++++++++++++++++++++++++++++++----------------------
 1 files changed, 111 insertions(+), 67 deletions(-)

diff --git a/exam-system/src/main/java/com/gkhy/exam/pay/utils/DemoUtils.java b/exam-system/src/main/java/com/gkhy/exam/pay/utils/DemoUtils.java
index 66612af..aac0545 100644
--- a/exam-system/src/main/java/com/gkhy/exam/pay/utils/DemoUtils.java
+++ b/exam-system/src/main/java/com/gkhy/exam/pay/utils/DemoUtils.java
@@ -1,12 +1,18 @@
 package com.gkhy.exam.pay.utils;
 
+import cn.com.jit.mof.MOFClient;
+import cn.com.jit.mof.bean.MOFSignResult;
+import cn.com.jit.mof.bean.MOFVerifyResult;
+import cn.com.jit.new_vstk.exception.NewCSSException;
 import cn.hutool.http.HttpUtil;
 import com.alibaba.fastjson2.JSONObject;
+import com.gkhy.exam.pay.entity.PayReqData;
 import org.apache.commons.codec.binary.Base64;
 import sun.misc.BASE64Encoder;
 
 import java.io.*;
 import java.math.BigDecimal;
+import java.nio.charset.StandardCharsets;
 import java.security.MessageDigest;
 import java.security.NoSuchAlgorithmException;
 import java.util.HashMap;
@@ -72,7 +78,7 @@
             e.printStackTrace();
         }
 
-        String jmsignfile = signFilejdnew(trr2);
+        String jmsignfile = signFilejdnew(trr2, null);
         String zuizhongpath = montageXmlV3(xmlFilePath, jmsignfile);
         String zzsignfile = convertFileToBase64(zuizhongpath);
 
@@ -82,6 +88,44 @@
         File file1 = new File(zuizhongpath);
         file1.delete();
         return result;
+    }
+
+
+    public void faqiV3(PayReqData payReqData) throws Exception {
+
+        PayUtils payUtils = new PayUtils();
+        ResultVo resultVo = payUtils.sendApiPost(payReqData);
+        String fileData = resultVo.getRespdata().getFileData();
+        String orderNo = resultVo.getRespdata().getOrderNo();
+
+        String xmlFilePath = "D:/files/" + orderNo + ".xml";
+        generateBase64StringToFile(fileData, xmlFilePath);
+        String trr2 = "";
+        try {
+            File file2 = new File(xmlFilePath);
+            FileReader reader1 = new FileReader(file2);
+            BufferedReader bReader = new BufferedReader(reader1);
+            StringBuilder sb = new StringBuilder();
+            String s = "";
+            while ((s = bReader.readLine()) != null) {
+                sb.append(s);
+            }
+            bReader.close();
+            trr2 = sb.toString();
+        } catch (Exception e) {
+            e.printStackTrace();
+        }
+        JSONObject jsonObject = signFileV2(fileData);
+        String jmsignfile = signFilejdnew(trr2, jsonObject);
+        String zuizhongpath = montageXmlV3(xmlFilePath, jmsignfile);
+        String zzsignfile = convertFileToBase64(zuizhongpath);
+
+        uploadXml(orderNo, zzsignfile);
+        File file = new File(xmlFilePath);
+        file.delete();
+        File file1 = new File(zuizhongpath);
+        file1.delete();
+
     }
 
     public String getMD5(String input) {
@@ -129,11 +173,11 @@
         }
     }
 
-    public String signFilejdnew(String plain) {
-        BillSign sign = new BillSign((ISignCommond) new Object());
+    public String signFilejdnew(String plain, JSONObject job) {
+
         try {
-            String xx = sign.signBill(plain);
-            return xx;
+            String s = BillSignUtils.signBill(plain, job);
+            return s;
         } catch (BillSignException e) {
             e.printStackTrace();
             return null;
@@ -159,68 +203,68 @@
         return null;
     }
 
-//    public JSONObject signFileV2(JSONObject job) throws Exception {
-//        JSONObject xysfResult = new JSONObject();
-//        String certId = "11650000MB1957293J";
-//        String plain = job.getString("data").trim();
-//        MOFSignResult result = null;
-//        Map<String, Object> mmp = new HashMap<>();
-//
-//        try {
-//            String filePath = "F:/cssconfig.properties";
-//            System.out.println("配置文件路径:" + filePath);
-//
-//            MOFClient client = new MOFClient(filePath);
-//            System.out.println("证书标识为:" + certId);
-//            System.out.println("待签名数据:" + plain);
-//
-//
-//            result = client.sign(certId, plain.getBytes(StandardCharsets.UTF_8));
-//            /* 323 */
-//            System.out.println("签名返回结果:" + JSONObject.toJSONString(result));
-//
-//            /* 325 */
-//            byte[] signData = result.getSignData();
-//
-//            /* 327 */
-//            String base64Str = new String(Base64.encode(signData));
-//            /* 328 */
-//            mmp.put("signResult", base64Str);
-//
-//            /* 330 */
-//            MOFVerifyResult resultVer = client.verifySign(signData, plain.getBytes(StandardCharsets.UTF_8));
-//            /* 331 */
-//            System.out.println("验签结果为:" + JSONObject.toJSONString(resultVer));
-//
-//            /* 333 */
-//            mmp.put("issure", resultVer.getIssure());
-//            /* 334 */
-//            mmp.put("sn", resultVer.getSn());
-//            /* 335 */
-//            mmp.put("signTime", resultVer.getSignTime());
-//
-//            /* 337 */
-//            xysfResult.put("success", Boolean.valueOf(true));
-//            /* 338 */
-//            xysfResult.put("content", mmp);
-//            /* 339 */
-//            return xysfResult;
-//        }
-//        /* 341 */ catch (NewCSSException e) {
-//            /* 342 */
-//            System.out.println("****签名失败****");
-//            /* 343 */
-//            System.out.println("错误号为:" + e.getCode());
-//            /* 344 */
-//            System.out.println("错误描述为:" + e.getDescription());
-//            /* 345 */
-//            xysfResult.put("success", Boolean.valueOf(false));
-//            /* 346 */
-//            xysfResult.put("msg", "系统错误");
-//            /* 347 */
-//            return xysfResult;
-//        }
-//    }
+    public JSONObject signFileV2(String plain) throws Exception {
+        JSONObject xysfResult = new JSONObject();
+        String certId = "11650000MB1957293J";
+
+        MOFSignResult result = null;
+        Map<String, Object> mmp = new HashMap<>();
+
+        try {
+            String filePath = "F:/cssconfig.properties";
+            System.out.println("配置文件路径:" + filePath);
+
+            MOFClient client = new MOFClient(filePath);
+            System.out.println("证书标识为:" + certId);
+            System.out.println("待签名数据:" + plain);
+
+
+            result = client.sign(certId, plain.getBytes(StandardCharsets.UTF_8));
+            /* 323 */
+            System.out.println("签名返回结果:" + JSONObject.toJSONString(result));
+
+            /* 325 */
+            byte[] signData = result.getSignData();
+
+            /* 327 */
+            String base64Str = new String(Base64.decodeBase64(signData));
+            /* 328 */
+            mmp.put("signResult", base64Str);
+
+            /* 330 */
+            MOFVerifyResult resultVer = client.verifySign(signData, plain.getBytes(StandardCharsets.UTF_8));
+            /* 331 */
+            System.out.println("验签结果为:" + JSONObject.toJSONString(resultVer));
+
+            /* 333 */
+            mmp.put("issure", resultVer.getIssure());
+            /* 334 */
+            mmp.put("sn", resultVer.getSn());
+            /* 335 */
+            mmp.put("signTime", resultVer.getSignTime());
+
+            /* 337 */
+            xysfResult.put("success", Boolean.valueOf(true));
+            /* 338 */
+            xysfResult.put("content", mmp);
+            /* 339 */
+            return xysfResult;
+        }
+        /* 341 */ catch (NewCSSException e) {
+            /* 342 */
+            System.out.println("****签名失败****");
+            /* 343 */
+            System.out.println("错误号为:" + e.getCode());
+            /* 344 */
+            System.out.println("错误描述为:" + e.getDescription());
+            /* 345 */
+            xysfResult.put("success", Boolean.valueOf(false));
+            /* 346 */
+            xysfResult.put("msg", "系统错误");
+            /* 347 */
+            return xysfResult;
+        }
+    }
 
 
     public static String montageXmlV3(String ywfilePath, String xmlStr) {

--
Gitblit v1.9.2