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

---
 exam-system/src/main/java/com/gkhy/exam/pay/service/impl/PaymentServiceImpl.java |   79 +++++++++++++++++++++++++++++++++++++++
 1 files changed, 79 insertions(+), 0 deletions(-)

diff --git a/exam-system/src/main/java/com/gkhy/exam/pay/service/impl/PaymentServiceImpl.java b/exam-system/src/main/java/com/gkhy/exam/pay/service/impl/PaymentServiceImpl.java
index c75d118..eb252fd 100644
--- a/exam-system/src/main/java/com/gkhy/exam/pay/service/impl/PaymentServiceImpl.java
+++ b/exam-system/src/main/java/com/gkhy/exam/pay/service/impl/PaymentServiceImpl.java
@@ -1,18 +1,27 @@
 package com.gkhy.exam.pay.service.impl;
 
+import cn.hutool.http.HttpUtil;
+import com.alibaba.fastjson2.JSONObject;
 import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 import com.gkhy.exam.pay.entity.CoalPayStudent;
 import com.gkhy.exam.pay.entity.NonCoalPayStudent;
 import com.gkhy.exam.pay.mapper.CoalPayStudentMapper;
 import com.gkhy.exam.pay.mapper.NonCoalPayStudentMapper;
 import com.gkhy.exam.pay.service.PaymentService;
+import com.gkhy.exam.pay.utils.CaiZhengConstans;
 import com.gkhy.exam.pay.utils.PayUtils;
+import jar.org.apache.commons.codec.binary.Base64;
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
 import javax.annotation.Resource;
+import java.security.MessageDigest;
+import java.security.NoSuchAlgorithmException;
 import java.util.Date;
+import java.util.List;
+
+import static com.ruoyi.common.utils.Threads.sleep;
 
 @Service
 @Slf4j
@@ -33,6 +42,38 @@
             e.printStackTrace();
         }
 
+        String reqdatastr1 = "{\"orderNo\": \"" + orderNo + "\"}";
+        String mac1 = getMD5("A1749891493E4CDDBFE4506357B1F0AB||" + getBase64(reqdatastr1));
+        JSONObject jsonObject1 = new JSONObject();
+        jsonObject1.put("appid", "A1749891493E4CDDBFE4506357B1F0AB");
+        jsonObject1.put("mac", mac1);
+        jsonObject1.put("reqdata", getBase64(reqdatastr1));
+        String resultStr1 = HttpUtil.post("http://finpt.xjcz.gov.cn/fs-service/fs-pay/notifyConfirm.do", jsonObject1);
+        System.out.println("通知确定入参===" + jsonObject1);
+        JSONObject result1 = JSONObject.parseObject(resultStr1);
+        System.out.println("通知确定回参===" + result1);
+
+
+    }
+
+
+    public String getMD5(String input) {
+        try {
+            MessageDigest md = MessageDigest.getInstance("MD5");
+            byte[] messageDigest = md.digest(input.getBytes());
+            StringBuilder hexString = new StringBuilder();
+            for (byte b : messageDigest) {
+                hexString.append(String.format("%02x", new Object[]{Byte.valueOf(b)}));
+            }
+            return hexString.toString();
+        } catch (NoSuchAlgorithmException e) {
+            throw new RuntimeException(e);
+        }
+    }
+
+    public String getBase64(String str) {
+        String encodedStr = Base64.encodeBase64String(str.getBytes());
+        return encodedStr;
     }
 
     @Override
@@ -56,5 +97,43 @@
 
     }
 
+    @Override
+    public void schedulePayment() {
+        List<NonCoalPayStudent> nonCoalPayStudents = nonCoalPayStudentMapper.getsch();
+
+        if (nonCoalPayStudents != null) {
+            for (NonCoalPayStudent nonCoalPayStudent : nonCoalPayStudents) {
+                sleep(5000);
+                if (nonCoalPayStudent.getGovPayStatus() == 2 && nonCoalPayStudent.getPayStatus() == 0) {
+                    try {
+                        JSONObject result = payUtils.query(nonCoalPayStudent.getOrderNo());
+                        log.info("查询财政订单返回结果:" + result);
+                        String respcode = result.getString("respcode");
+                        if (CaiZhengConstans.CAI_ZHENG_SUCCESS.equals(respcode)) {
+                            JSONObject respdata = result.getJSONObject("respdata");
+                            if (respdata != null && "1".equals(respdata.getString("status"))) {
+                                nonCoalPayStudentMapper.update(null, Wrappers.<NonCoalPayStudent>lambdaUpdate()
+                                        .set(NonCoalPayStudent::getPayStatus, 1)
+                                        .set(NonCoalPayStudent::getPayTime, respdata.getDate("payTime"))
+                                        .eq(NonCoalPayStudent::getOrderNo, nonCoalPayStudent.getOrderNo()).eq(NonCoalPayStudent::getDelFlag, 0)
+                                        .eq(NonCoalPayStudent::getPayStatus, 0));
+                                // 回调确认支付
+                                nonCoalPayStudent.setPayStatus(1L);
+                                payUtils.affirmPost(nonCoalPayStudent.getOrderNo());
+                            } else {
+                                log.error("查询财政订单失败:" + result.getString("respmsg") + ",错误编码:" + result.getString("respcode"));
+                            }
+
+                        }
+                    } catch (Exception e) {
+                        log.error("查询财政订单失败:" + e.getMessage());
+
+                    }
+                }
+            }
+        }
+
+    }
+
 
 }

--
Gitblit v1.9.2