From 3601e27c8b4e48323d4c5f80d7e23b78ed047198 Mon Sep 17 00:00:00 2001 From: 无关风月 <443237572@qq.com> Date: 星期三, 13 八月 2025 19:14:16 +0800 Subject: [PATCH] 积分支付 --- ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/controller/WXCallBackController.java | 54 ++++++++++++++++++++++++++---------------------------- 1 files changed, 26 insertions(+), 28 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 8b3dbc9..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()); @@ -105,12 +104,11 @@ integralRecord.setDelFlag(0); integralRecord.setCreateTime(LocalDateTime.now()); integralRecordService.save(integralRecord); - data.setIntegral(data.getIntegral() + integralPay.getIntegralCount()); + data.setIntegral(data.getIntegral()!=null?data.getIntegral() + integralPay.getIntegralCount():integralPay.getIntegralCount()); sysUserClient.updateSysUser(data); return R.ok(null, "success"); } return R.ok(null, "error"); - } @ResponseBody -- Gitblit v1.7.1