From d739eef7afbad5c35c80539ca3933a39a1e3f8e1 Mon Sep 17 00:00:00 2001
From: 无关风月 <443237572@qq.com>
Date: 星期日, 10 八月 2025 20:16:52 +0800
Subject: [PATCH] 小程序积分支付

---
 ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/controller/WXCallBackController.java |   51 +++++++++++++++++++++++++--------------------------
 1 files changed, 25 insertions(+), 26 deletions(-)

diff --git a/ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/controller/WXCallBackController.java b/ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/controller/WXCallBackController.java
index 8a5e3e9..34c3034 100644
--- a/ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/controller/WXCallBackController.java
+++ b/ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/controller/WXCallBackController.java
@@ -1,5 +1,6 @@
 package com.ruoyi.other.controller;
 
+import com.alibaba.fastjson.JSONObject;
 import com.ruoyi.common.core.domain.R;
 import com.ruoyi.common.core.web.page.PageInfo;
 import com.ruoyi.common.security.service.TokenService;
@@ -26,11 +27,13 @@
 import javax.annotation.Resource;
 import javax.servlet.http.HttpServletRequest;
 import javax.servlet.http.HttpServletResponse;
+import java.io.BufferedReader;
 import java.io.IOException;
 import java.io.PrintWriter;
 import java.text.SimpleDateFormat;
 import java.time.LocalDateTime;
 import java.util.Date;
+import java.util.HashMap;
 import java.util.Map;
 
 /**
@@ -63,38 +66,34 @@
 
     @ResponseBody
     @PostMapping("/integralCallback")
-    public R integralCallback(HttpServletRequest request, String r2_OrderNo) {
-//        System.err.println("积分充值回调");
-//        PayResult payResult= null;
-//        try {
-//            payResult = wechatPayService.processNotify(request);
-//        } catch (Exception e) {
-//            throw new RuntimeException(e);
-//        }
-        System.err.println("======积分充值回调");
-        System.err.println("======积分充值回调单号" + r2_OrderNo);
-        System.err.println("请求" + request.getParameterMap());
-        Map<String, String[]> parameterMap = request.getParameterMap();
-        String r6Status = request.getParameter("r6_Status");
-        if (org.springframework.util.StringUtils.hasLength(r6Status)) {
-            if (r6Status.equals("101")) {
-                return R.fail("支付失败");
-            }
+    public R integralCallback(HttpServletRequest request) throws IOException {
+        System.err.println("积分充值回调");
+        Map<String, String> params = new HashMap<String, String>();
+        System.err.println("请求"+request);
+        BufferedReader reader = request.getReader();
+        String string1 = reader.toString();
+        System.err.println("请求reader"+string1);
+        StringBuilder requestBody = new StringBuilder();
+        String line;
+        while ((line = reader.readLine()) != null) {
+            requestBody.append(line);
         }
-        // 循环打印
-        for (Map.Entry<String, String[]> entry : parameterMap.entrySet()) {
-            String key = entry.getKey();
-            String[] values = entry.getValue();
-            for (String value : values) {
-                System.err.println("======回调开始" + key + ":" + value);
-            }
+        System.err.println("全部请求体"+requestBody);
+        JSONObject jsonObject = JSONObject.parseObject(requestBody.toString());
+        JSONObject resp_data = jsonObject.getJSONObject("resp_data");
+        String string = resp_data.getString("trans_stat");
+        if (!string.equals("S")){
+            return R.ok();
         }
-        IntegralPay integralPay = integralPayService.lambdaQuery().eq(IntegralPay::getCode, r2_OrderNo).one();
+        String req_seq_id = resp_data.getString("req_seq_id");
+        String hf_seq_id = resp_data.getString("hf_seq_id");
+        IntegralPay integralPay = integralPayService.lambdaQuery().eq(IntegralPay::getCode, req_seq_id).one();
         if (integralPay != null && integralPay.getPayStatus() == 1) {
+
             SysUser data = sysUserClient.getSysUser(integralPay.getUserId()).getData();
             integralPay.setPayStatus(2);
             integralPay.setPayTime(LocalDateTime.now());
-//            integralPay.setOrderNumber(payResult.getTransactionId());
+            integralPay.setOrderNumber(hf_seq_id);
             integralPayService.updateById(integralPay);
             IntegralRecord integralRecord = new IntegralRecord();
             integralRecord.setPayId(integralPay.getId());

--
Gitblit v1.7.1