From bf876c24f9ecfa480c3e014202a03adb250354af Mon Sep 17 00:00:00 2001
From: zj <1772600164@qq.com>
Date: Fri, 14 Mar 2025 20:07:28 +0800
Subject: [PATCH] 1

---
 src/main/java/com/nq/service/impl/PayServiceImpl.java |   57 +++++++++++++++++++++++++++++++++------------------------
 1 files changed, 33 insertions(+), 24 deletions(-)

diff --git a/src/main/java/com/nq/service/impl/PayServiceImpl.java b/src/main/java/com/nq/service/impl/PayServiceImpl.java
index 701758b..4e2ee11 100644
--- a/src/main/java/com/nq/service/impl/PayServiceImpl.java
+++ b/src/main/java/com/nq/service/impl/PayServiceImpl.java
@@ -90,12 +90,12 @@
 
         String reqUrl = "https://api.watchglbpay.com/pay/web";
 
-//        User user = userService.getCurrentRefreshUser(request);
-//        if(ObjectUtils.isNotEmpty(user)){
-//            GoogleTranslateUtil googleTranslateUtil = new GoogleTranslateUtil();
-//            String lang = request.getHeader("lang");
-//            return ServerResponse.createByErrorMsg(new Gson().toJson(ServerResponse.createByErrorCodeMsg(401,googleTranslateUtil.translate("请登录",lang ))));
-//        }
+        User user = userService.getCurrentRefreshUser(request);
+        if(ObjectUtils.isEmpty(user)){
+            GoogleTranslateUtil googleTranslateUtil = new GoogleTranslateUtil();
+            String lang = request.getHeader("lang");
+            return ServerResponse.createByErrorMsg(new Gson().toJson(ServerResponse.createByErrorCodeMsg(401,googleTranslateUtil.translate("请登录",lang ))));
+        }
         Map<String, String> params = new TreeMap<String, String>();
         //版本号 需同步返回JSON 必填,固定值 1.0
         params.put("version", "1.0");
@@ -107,7 +107,7 @@
         //商家订单号 保证每笔订单唯一
         params.put("mch_order_no", generatePayOrderId());
         //异步通知地址 不超过 200 字节,支付成功后发起,不能携带参数
-        params.put("notify_url", "http://api.durocaspitall.com/user/rechargeCallback.do");
+        params.put("notify_url", "https://api.durocaspitall.com/user/rechargeCallback.do");
         // 订单时间  时间格式yyyy-MM-dd HH:mm:ss
         params.put("order_date", getOrderTime());
         //支付类型 请查阅商户后台通道编码
@@ -133,9 +133,6 @@
 
         System.out.println("result值:" + result);
 
-        if(StringUtils.isEmpty(result)){
-            return ServerResponse.createByErrorMsg("获取充值链接失败",request);
-        }
         // 创建 ObjectMapper 实例
         ObjectMapper objectMapper = new ObjectMapper();
 
@@ -146,7 +143,7 @@
             return ServerResponse.createByErrorMsg("获取充值链接失败",request);
         }
         PaymentRecharge paymentRecharge = new PaymentRecharge();
-        paymentRecharge.setUserId(1);
+        paymentRecharge.setUserId(user.getId());
         paymentRecharge.setOrderNo(payResponse.getOrderNo());
         paymentRecharge.setMchOrderNo(payResponse.getMchOrderNo());
         paymentRecharge.setAmount(new BigDecimal(payResponse.getOriAmount()));
@@ -156,7 +153,7 @@
         paymentRecharge.setNotifyUrl(payResponse.getPayInfo());
         paymentRecharge.setPayInfo(payResponse.toString());
         paymentRechargeService.save(paymentRecharge);
-        return ServerResponse.createBySuccessMsg(result);
+        return ServerResponse.createBySuccess(payResponse.getPayInfo());
     }
 
     public String generatePayOrderId() {
@@ -642,35 +639,47 @@
     }
 
     @Override
-    public void rechargeCallback(HttpServletResponse response,RechargeCallbackVo rechargeCallbackVo) throws IOException {
-        synchronized (rechargeCallbackVo.getOrderNo()){
+    public void rechargeCallback(PaymentResponse vo,HttpServletResponse response) throws IOException {
+        log.info("充值回调进来了:"+vo.toString());
+        synchronized (vo.getOrderNo()){
             PrintWriter pw = response.getWriter();
-            if(!rechargeCallbackVo.getTradeResult().equals("1")){
-                log.error("充值回调失败:"+rechargeCallbackVo.toString());
-                return;
-            }
+
             PaymentRecharge paymentRecharge = paymentRechargeService.getOne(new LambdaQueryWrapper<>(PaymentRecharge.class)
-                    .eq(PaymentRecharge::getOrderNo, rechargeCallbackVo.getOrderNo())
-                    .eq(PaymentRecharge::getMchOrderNo, rechargeCallbackVo.getMchOrderNo())
+                    .eq(PaymentRecharge::getOrderNo, vo.getOrderNo())
+                    .eq(PaymentRecharge::getMchOrderNo, vo.getMchOrderNo())
                     .eq(PaymentRecharge::getStatus,1)
                     .last("limit 1")
             );
+
+            if(!vo.getTradeResult().equals("1")){
+                paymentRecharge.setStatus(2);
+                paymentRecharge.setAmount(new BigDecimal(vo.getOriAmount()));
+                paymentRecharge.setPayInfo(vo.toString());
+                paymentRechargeService.updateById(paymentRecharge);
+                log.error("充值回调失败:"+vo.toString());
+                return;
+            }
+
             if(ObjectUtils.isEmpty(paymentRecharge)){
-                pw.print("未找到充值订单");
+                log.info("未找到充值订单");
+                pw.print("error 未找到充值订单");
                 return;
             }
             UserAssets userAssets = userAssetsMapper.selectOne(new LambdaQueryWrapper<>(UserAssets.class)
                     .eq(UserAssets::getUserId, paymentRecharge.getUserId())
                     .eq(UserAssets::getAccectType, "IN")
             );
-            ServerResponse serverResponse = iUserAssetsServices.updateUserAssets(userAssets.getId(), rechargeCallbackVo.getAmount().toString(), "2");
+            ServerResponse serverResponse = iUserAssetsServices.updateUserAssets(userAssets.getId(), vo.getOriAmount().toString(), "2");
             if(serverResponse.getStatus() == 0){
                 paymentRecharge.setStatus(2);
-                paymentRecharge.setAmount(new BigDecimal(rechargeCallbackVo.getAmount()));
-                paymentRecharge.setPayInfo(rechargeCallbackVo.toString());
+                paymentRecharge.setAmount(new BigDecimal(vo.getOriAmount()));
+                paymentRecharge.setPayInfo(vo.toString());
                 paymentRechargeService.updateById(paymentRecharge);
             }
+            log.info("充值回调----完成");
             pw.print("success");
+            pw.flush();
+            pw.close();
         }
     }
 

--
Gitblit v1.9.3