From 5ee4dfad6e7b48885e205f8f945276b5d4ca5670 Mon Sep 17 00:00:00 2001
From: puzhibing <393733352@qq.com>
Date: 星期四, 18 五月 2023 16:34:27 +0800
Subject: [PATCH] 修改支付

---
 user/guns-admin/src/main/java/com/supersavedriving/user/modular/system/service/impl/AppUserServiceImpl.java |   56 +++++++++++++++++++++++++++++++++++++++++++++++++++++---
 1 files changed, 53 insertions(+), 3 deletions(-)

diff --git a/user/guns-admin/src/main/java/com/supersavedriving/user/modular/system/service/impl/AppUserServiceImpl.java b/user/guns-admin/src/main/java/com/supersavedriving/user/modular/system/service/impl/AppUserServiceImpl.java
index 02bbbe2..9db79f1 100644
--- a/user/guns-admin/src/main/java/com/supersavedriving/user/modular/system/service/impl/AppUserServiceImpl.java
+++ b/user/guns-admin/src/main/java/com/supersavedriving/user/modular/system/service/impl/AppUserServiceImpl.java
@@ -13,6 +13,10 @@
 import com.supersavedriving.user.modular.system.dao.AppUserMapper;
 import com.supersavedriving.user.modular.system.model.*;
 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.model.PaymentOrder;
+import com.supersavedriving.user.modular.system.util.MallBook.model.PaymentOrderGood;
+import com.supersavedriving.user.modular.system.util.MallBook.util.TrhRequest;
 import com.supersavedriving.user.modular.system.util.PayMoneyUtil;
 import com.supersavedriving.user.modular.system.util.RedisUtil;
 import com.supersavedriving.user.modular.system.util.ResultUtil;
@@ -27,11 +31,13 @@
 import org.apache.shiro.crypto.hash.Md5Hash;
 import org.apache.shiro.util.ByteSource;
 import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.beans.factory.annotation.Value;
 import org.springframework.stereotype.Service;
 import org.springframework.web.context.request.RequestContextHolder;
 import org.springframework.web.context.request.ServletRequestAttributes;
 
 import javax.servlet.http.HttpServletRequest;
+import java.net.InetAddress;
 import java.text.SimpleDateFormat;
 import java.util.ArrayList;
 import java.util.Date;
@@ -66,6 +72,12 @@
 
     @Autowired
     private IAccountChangeDetailService accountChangeDetailService;
+
+    @Value("${callbackPath}")
+    private String callbackPath;//支付回调网关地址
+
+    @Value("${wx.appletsAppid}")
+    private String appletsAppid;
 
 
 
@@ -116,6 +128,7 @@
                 key = token.substring(token.length() - 16);
             }
             redisUtil.setStrValue(key, appUser.getId().toString(), 7 * 24 * 60 * 60);
+            redisUtil.setStrValue("USER_" + appUser.getPhone(), key, 7 * 24 * 60 * 60);
             return token;
         }
         return null;
@@ -156,6 +169,7 @@
         if(null == appUser){
             appUser = new AppUser();
             appUser.setNickname("亲爱的用户");
+            appUser.setAvatar("https://csxdj.obs.cn-south-1.myhuaweicloud.com:443/66cc269703a84e4da87fb21e2c21ab1f.png");
             appUser.setPhone(purePhoneNumber);
             appUser.setOpenid(openid);
             appUser.setUnionid(code2Session.getUnionid());
@@ -191,7 +205,8 @@
      * @param userId
      */
     public List<CouponWarpper> pushCoupon(Integer userId){
-        List<Coupon> coupons = couponService.selectList(new EntityWrapper<Coupon>().eq("coupon_type", 2).eq("coupon_state", 1).gt("remaining_quantity", 0));
+        List<Coupon> coupons = couponService.selectList(new EntityWrapper<Coupon>().eq("coupon_type", 2)
+                .eq("coupon_state", 1).eq("status", 1).gt("remaining_quantity", 0));
         List<CouponWarpper> list = new ArrayList<>();
         for (Coupon coupon : coupons) {
             UserToCoupon userToCoupon = new UserToCoupon();
@@ -301,8 +316,43 @@
         rechargeRecord.setPayStatus(1);
         rechargeRecord.setPayType(1);
         rechargeRecordService.insert(rechargeRecord);
-        ResultUtil weixinpay = payMoneyUtil.weixinpay("余额充值", "", out_trade_no, amount.toString(), "/base/appUser/rechargeBalanceCallback", "JSAPI", appUser.getOpenid());
-        return weixinpay;
+//        ResultUtil weixinpay = payMoneyUtil.weixinpay("余额充值", "", out_trade_no, amount.toString(), "/base/appUser/rechargeBalanceCallback", "JSAPI", appUser.getOpenid());
+//        return weixinpay;
+
+        PaymentOrder paymentOrder = new PaymentOrder();
+        paymentOrder.setBizOrderId(out_trade_no);
+        paymentOrder.setAmount(String.valueOf(amount * 100));
+        paymentOrder.setOrderName("余额充值");
+        paymentOrder.setPayType("WX_MINI");
+        paymentOrder.setTransferType("0");
+        paymentOrder.setAsynSplitFlag("1");
+        paymentOrder.setAppid(appletsAppid);
+        paymentOrder.setOpenid(appUser.getOpenid());
+        paymentOrder.setTerminalIp(InetAddress.getLocalHost().getHostAddress());
+        List<PaymentOrderGood> goodsDetail = new ArrayList<>();
+        PaymentOrderGood paymentOrderGood = new PaymentOrderGood();
+        paymentOrderGood.setGoodsName("余额充值");
+        goodsDetail.add(paymentOrderGood);
+        paymentOrder.setGoodsDetail(goodsDetail);
+        paymentOrder.setFrontUrl("");
+        paymentOrder.setNotifyUrl(callbackPath + "/base/appUser/rechargeBalanceCallback");
+        paymentOrder.setParameter1(out_trade_no);
+
+        TrhRequest<PaymentOrder> request = new TrhRequest();
+        InterfaceResponse execute = request.execute(paymentOrder, PaymentOrder.SERVICE_CODE);
+        if(!"0000".equals(execute.getResult())){
+            return ResultUtil.error(execute.getMsg());
+        }
+        JSONObject jsonObject = JSON.parseObject(execute.getResult());
+        String status = jsonObject.getString("status");
+        if("2".equals(status)){
+            return ResultUtil.error("失败");
+        }
+        if("0".equals(status)){
+            return ResultUtil.error("处理中");
+        }
+        String payCode = jsonObject.getString("payCode");
+        return ResultUtil.success(payCode);
     }
 
 

--
Gitblit v1.7.1