Переглянути джерело

1.接口加解密新增rht支付异步通知放行配置;
2.修复获取支付参数时订单数据未保存bug;
3.修复从application容器获取组件失败bug;

codingliang 1 рік тому
батько
коміт
e9b0ed06a7

+ 4 - 0
src/main/java/com/sqx/common/utils/SpringContextUtils.java

@@ -27,6 +27,10 @@ public class SpringContextUtils implements ApplicationContextAware {
 		return applicationContext.getBean(name, requiredType);
 	}
 
+	public static <T> T getBean(Class<T> requiredType) {
+		return applicationContext.getBean(requiredType);
+	}
+
 	public static boolean containsBean(String name) {
 		return applicationContext.containsBean(name);
 	}

+ 2 - 0
src/main/java/com/sqx/modules/order/service/impl/AppAppOrderServiceImpl.java

@@ -2582,6 +2582,8 @@ public class AppAppOrderServiceImpl extends ServiceImpl<AppOrderDao, TbOrder> im
     @Override
     public PayTransactionsVO getTransactionsParam(Long userId, PayOrderDTO payOrderDTO) {
         TbOrder order = prepareOrder(userId, payOrderDTO);
+        // 更新订单
+        updateById(order);
 
         // 在同一时刻用户只能在同一家店铺执行一次下单操作 ??
         RLock lock = redissonClient.getLock(String.format(RedisKey.INSERT_ORDER_LOCK, order.getUserId(), order.getShopId()));

+ 7 - 6
src/main/java/com/sqx/modules/pay/service/impl/NewPayServiceImpl.java

@@ -4,7 +4,6 @@ import cn.hutool.core.util.ObjectUtil;
 import cn.hutool.core.util.StrUtil;
 import cn.hutool.json.JSONObject;
 import cn.hutool.json.JSONUtil;
-import com.baomidou.mybatisplus.core.toolkit.IdWorker;
 import com.ekyong.www.pay.common.Constant;
 import com.ekyong.www.pay.pay.qrcode.api.RhtQrcodePayApi;
 import com.ekyong.www.pay.pay.qrcode.bean.QrcodeOpenPayRequestBean;
@@ -179,9 +178,10 @@ public class NewPayServiceImpl implements NewPayService {
         try {
             String decode = URLDecoder.decode(reqJsonData, "GBK");
             Map<String, String> map = JSONUtil.toBean(decode, Map.class);
+            log.info("收到rth支付通知,{}", JSONUtil.toJsonStr(map));
 
             // 微信商户key
-            String mchKey = commonInfoService.findOne(75).getValue();
+            String mchKey = commonInfoService.findOne(435).getValue();
             boolean valid = SignUtil.validSignature(map, mchKey);
             if (!valid) {
                 throw new SqxException("验签失败");
@@ -198,7 +198,7 @@ public class NewPayServiceImpl implements NewPayService {
                     return "success";
                 }
 
-                if (!StrUtil.equals(status, String.valueOf(PayStateEnums.WAIT_PAY.getStateCode()))) {
+                if (payDetails.getState() != PayStateEnums.WAIT_PAY.getStateCode()) {
                     // 支付订单不是未支付状态,直接返回
                     return "success";
                 }
@@ -222,7 +222,7 @@ public class NewPayServiceImpl implements NewPayService {
         } catch (Exception e) {
             e.printStackTrace();
             log.error("异步通知处理异常:{}", e.getMessage());
-            return "fail";
+            throw new SqxException("异步通知处理异常," + e.getMessage());
         }
     }
 
@@ -271,7 +271,7 @@ public class NewPayServiceImpl implements NewPayService {
      * @param orderNo 订单编号
      */
     private void handleTakeoutOrderPaySuccess(String orderNo) {
-        AppOrderService appOrderService = SpringContextUtils.getBean("appOrderService", AppOrderService.class);
+        AppOrderService appOrderService = SpringContextUtils.getBean(AppOrderService.class);
 
         // 根据订单编号查询订单
         TbOrder order = appOrderService.selectOrderByNum(orderNo);
@@ -290,7 +290,8 @@ public class NewPayServiceImpl implements NewPayService {
                 .appId(commonInfoService.findOne(45).getValue())
                 .mchId(commonInfoService.findOne(434).getValue())
                 .mchKey(commonInfoService.findOne(435).getValue())
-                .h5Url(commonInfoService.findOne(19).getValue())
+                // .h5Url(commonInfoService.findOne(19).getValue())
+                .h5Url("http://b4n6pw.natappfree.cc")
                 .build();
     }
 }

+ 2 - 0
src/main/resources/application-dev.yml

@@ -73,6 +73,7 @@ secure-api:
             - /app/wxPay/notifyJsApiShop
             - /app/wxPay/notifyMpShop
             - /pay/open/notify
+            - /app/new-pay/wechat-pay/notify
             - /chatSocket/**
             - /websocket/**
             - /alioss/**
@@ -94,6 +95,7 @@ secure-api:
             - /app/wxPay/notifyJsApiShop
             - /app/wxPay/notifyMpShop
             - /pay/open/notify
+            - /app/new-pay/wechat-pay/notify
             - /chatSocket/**
             - /websocket/**
             - /alioss/**

+ 2 - 0
src/main/resources/application-prod.yml

@@ -74,6 +74,7 @@ secure-api:
             - /app/wxPay/notifyJsApiShop
             - /app/wxPay/notifyMpShop
             - /pay/open/notify
+            - /app/new-pay/wechat-pay/notify
             - /chatSocket/**
             - /websocket/**
             - /alioss/**
@@ -95,6 +96,7 @@ secure-api:
             - /app/wxPay/notifyJsApiShop
             - /app/wxPay/notifyMpShop
             - /pay/open/notify
+            - /app/new-pay/wechat-pay/notify
             - /chatSocket/**
             - /websocket/**
             - /alioss/**