From 1798c91f6b0782d1970a8a4fdcaf4a174e68cb61 Mon Sep 17 00:00:00 2001
From: xuhy <3313886187@qq.com>
Date: 星期二, 16 五月 2023 10:45:58 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/master'

---
 user/guns-admin/src/main/java/com/supersavedriving/user/modular/api/AppUserController.java |   47 +++++++++++++++++++++++++++++++++++++++--------
 1 files changed, 39 insertions(+), 8 deletions(-)

diff --git a/user/guns-admin/src/main/java/com/supersavedriving/user/modular/api/AppUserController.java b/user/guns-admin/src/main/java/com/supersavedriving/user/modular/api/AppUserController.java
index facf287..3fcf80f 100644
--- a/user/guns-admin/src/main/java/com/supersavedriving/user/modular/api/AppUserController.java
+++ b/user/guns-admin/src/main/java/com/supersavedriving/user/modular/api/AppUserController.java
@@ -8,6 +8,8 @@
 import com.supersavedriving.user.modular.system.model.AppUser;
 import com.supersavedriving.user.modular.system.model.SystemConfig;
 import com.supersavedriving.user.modular.system.service.*;
+import com.supersavedriving.user.modular.system.util.MallBook.model.InterfaceResponse;
+import com.supersavedriving.user.modular.system.util.MallBook.util.RSASignature;
 import com.supersavedriving.user.modular.system.util.PayMoneyUtil;
 import com.supersavedriving.user.modular.system.util.RedisUtil;
 import com.supersavedriving.user.modular.system.util.ResultUtil;
@@ -314,18 +316,47 @@
 //    @ServiceLog(name = "余额充值回调", url = "/base/appUser/rechargeBalanceCallback")
     public void rechargeBalanceCallback(HttpServletRequest request, HttpServletResponse response){
         try {
-            Map<String, String> map = payMoneyUtil.weixinpayCallback(request);
-            if(null != map){
-                String out_trade_no = map.get("out_trade_no");
-                String transaction_id = map.get("transaction_id");
-                String result = map.get("result");
-                String orderId = out_trade_no.substring(17);
-                appUserService.rechargeBalanceCallback(out_trade_no, transaction_id);
+            String code = request.getParameter("code");
+            String version = request.getParameter("version");
+            String msg = request.getParameter("msg");
+            String date = request.getParameter("date");
+            String result = request.getParameter("result");
+            String sign = request.getParameter("sign");
+            InterfaceResponse interfaceResponse = new InterfaceResponse();
+            interfaceResponse.setCode(code);
+            interfaceResponse.setVersion(version);
+            interfaceResponse.setMsg(msg);
+            interfaceResponse.setDate(date);
+            interfaceResponse.setResult(result);
+            interfaceResponse.setSign(sign);
+            // 验签
+            boolean verify = RSASignature.validate(interfaceResponse.content(), interfaceResponse.getSign());
+            if (verify) {//验签成功业务处理逻辑
+                JSONObject jsonObject = JSON.parseObject(result);
+                String merOrderId = jsonObject.getString("merOrderId");
+                String orderId = jsonObject.getString("parameter1");
+                appUserService.rechargeBalanceCallback(orderId, merOrderId);
+                response.setStatus(200);
                 PrintWriter out = response.getWriter();
-                out.print(result);
+                out.print("OK");
                 out.flush();
                 out.close();
+            } else {//验签失败业务处理逻辑
+                System.err.println("支付回调验签失败");
             }
+
+//            Map<String, String> map = payMoneyUtil.weixinpayCallback(request);
+//            if(null != map){
+//                String out_trade_no = map.get("out_trade_no");
+//                String transaction_id = map.get("transaction_id");
+//                String result = map.get("result");
+//                String orderId = out_trade_no.substring(17);
+//                appUserService.rechargeBalanceCallback(out_trade_no, transaction_id);
+//                PrintWriter out = response.getWriter();
+//                out.print(result);
+//                out.flush();
+//                out.close();
+//            }
         }catch (Exception e){
             e.printStackTrace();
         }

--
Gitblit v1.7.1