java110 лет назад: 5
Родитель
Сommit
794c2902f1

+ 1 - 0
service-front/src/main/java/com/java110/front/smo/AppAbstractComponentSMO.java

@@ -25,6 +25,7 @@ import java.util.TreeMap;
 public abstract class AppAbstractComponentSMO extends AbstractComponentSMO {
 
     private static final Logger logger = LoggerFactory.getLogger(AppAbstractComponentSMO.class);
+    protected static final String DEFAULT_PAY_ADAPT = "wechatPayAdapt";// 默认微信通用支付
     @Autowired
     private WechatAuthProperties wechatAuthProperties;
 

+ 2 - 10
service-front/src/main/java/com/java110/front/smo/payment/impl/GoodsToNotifySMOImpl.java

@@ -16,21 +16,13 @@ import com.java110.vo.ResultVo;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.http.HttpEntity;
-import org.springframework.http.HttpHeaders;
-import org.springframework.http.HttpMethod;
-import org.springframework.http.HttpStatus;
-import org.springframework.http.ResponseEntity;
+import org.springframework.http.*;
 import org.springframework.stereotype.Service;
 import org.springframework.web.client.HttpStatusCodeException;
 import org.springframework.web.client.RestTemplate;
 
 import javax.servlet.http.HttpServletRequest;
-import java.util.Date;
-import java.util.Map;
-import java.util.SortedMap;
-import java.util.TreeMap;
-import java.util.UUID;
+import java.util.*;
 
 @Service("goodsToNotifySMOImpl")
 public class GoodsToNotifySMOImpl implements IGoodsToNotifySMO {

+ 10 - 2
service-front/src/main/java/com/java110/front/smo/payment/impl/GoodsToPaySMOImpl.java

@@ -10,9 +10,14 @@ import com.java110.dto.smallWeChat.SmallWeChatDto;
 import com.java110.front.properties.WechatAuthProperties;
 import com.java110.front.smo.AppAbstractComponentSMO;
 import com.java110.front.smo.payment.IGoodsToPaySMO;
+import com.java110.front.smo.payment.adapt.IPayAdapt;
+import com.java110.utils.cache.MappingCache;
 import com.java110.utils.constant.ServiceConstant;
+import com.java110.utils.constant.WechatConstant;
+import com.java110.utils.factory.ApplicationContextFactory;
 import com.java110.utils.util.Assert;
 import com.java110.utils.util.BeanConvertUtil;
+import com.java110.utils.util.StringUtil;
 import com.java110.vo.ResultVo;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
@@ -110,8 +115,11 @@ public class GoodsToPaySMOImpl extends AppAbstractComponentSMO implements IGoods
 
         JSONObject realUserInfo = userResult.getJSONArray("data").getJSONObject(0);
         String openId = realUserInfo.getString("openId");
-
-        Map result = super.java110Payment(outRestTemplate, "商品购买",
+        String payAdapt = MappingCache.getValue(WechatConstant.WECHAT_DOMAIN, WechatConstant.PAY_ADAPT);
+        payAdapt = StringUtil.isEmpty(payAdapt) ? DEFAULT_PAY_ADAPT : payAdapt;
+        //支付适配器
+        IPayAdapt tPayAdapt = ApplicationContextFactory.getBean(payAdapt, IPayAdapt.class);
+        Map result = tPayAdapt.java110Payment(outRestTemplate, "商品购买",
                 paramIn.getString("tradeType"), orderId, money, openId,
                 smallWeChatDto, wechatAuthProperties.getGoodsNotifyUrl());
         responseEntity = new ResponseEntity(JSONObject.toJSONString(result), HttpStatus.OK);

+ 10 - 2
service-front/src/main/java/com/java110/front/smo/payment/impl/RentingToPaySMOImpl.java

@@ -12,10 +12,15 @@ import com.java110.dto.smallWeChat.SmallWeChatDto;
 import com.java110.front.properties.WechatAuthProperties;
 import com.java110.front.smo.AppAbstractComponentSMO;
 import com.java110.front.smo.payment.IRentingToPaySMO;
+import com.java110.front.smo.payment.adapt.IPayAdapt;
 import com.java110.utils.cache.CommonCache;
+import com.java110.utils.cache.MappingCache;
 import com.java110.utils.constant.ServiceConstant;
+import com.java110.utils.constant.WechatConstant;
+import com.java110.utils.factory.ApplicationContextFactory;
 import com.java110.utils.util.Assert;
 import com.java110.utils.util.BeanConvertUtil;
+import com.java110.utils.util.StringUtil;
 import com.java110.vo.ResultVo;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
@@ -121,8 +126,11 @@ public class RentingToPaySMOImpl extends AppAbstractComponentSMO implements IRen
         } else {
             money = serviceDec.multiply(rateDec).setScale(2, BigDecimal.ROUND_HALF_EVEN).doubleValue();
         }
-
-        Map result = super.java110Payment(outRestTemplate, feeName, WechatAuthProperties.TRADE_TYPE_NATIVE, orderId, money, "", smallWeChatDto, wechatAuthProperties.getRentingNotifyUrl());
+        String payAdapt = MappingCache.getValue(WechatConstant.WECHAT_DOMAIN, WechatConstant.PAY_ADAPT);
+        payAdapt = StringUtil.isEmpty(payAdapt) ? DEFAULT_PAY_ADAPT : payAdapt;
+        //支付适配器
+        IPayAdapt tPayAdapt = ApplicationContextFactory.getBean(payAdapt, IPayAdapt.class);
+        Map result = tPayAdapt.java110Payment(outRestTemplate, feeName, WechatAuthProperties.TRADE_TYPE_NATIVE, orderId, money, "", smallWeChatDto, wechatAuthProperties.getRentingNotifyUrl());
         result.put("money", money);
         responseEntity = new ResponseEntity(JSONObject.toJSONString(result), HttpStatus.OK);
         if (!"0".equals(result.get("code"))) {

+ 10 - 2
service-front/src/main/java/com/java110/front/smo/payment/impl/ToPayOweFeeSMOImpl.java

@@ -13,10 +13,15 @@ import com.java110.dto.smallWeChat.SmallWeChatDto;
 import com.java110.front.properties.WechatAuthProperties;
 import com.java110.front.smo.AppAbstractComponentSMO;
 import com.java110.front.smo.payment.IToPayOweFeeSMO;
+import com.java110.front.smo.payment.adapt.IPayAdapt;
 import com.java110.utils.cache.CommonCache;
+import com.java110.utils.cache.MappingCache;
 import com.java110.utils.constant.ServiceConstant;
+import com.java110.utils.constant.WechatConstant;
+import com.java110.utils.factory.ApplicationContextFactory;
 import com.java110.utils.util.Assert;
 import com.java110.utils.util.BeanConvertUtil;
+import com.java110.utils.util.StringUtil;
 import com.java110.vo.ResultVo;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
@@ -125,8 +130,11 @@ public class ToPayOweFeeSMOImpl extends AppAbstractComponentSMO implements IToPa
         JSONObject realUserInfo = userResult.getJSONArray("data").getJSONObject(0);
 
         String openId = realUserInfo.getString("openId");
-
-        Map result = super.java110Payment(outRestTemplate, paramIn.getString("feeName"), paramIn.getString("tradeType"),
+        String payAdapt = MappingCache.getValue(WechatConstant.WECHAT_DOMAIN, WechatConstant.PAY_ADAPT);
+        payAdapt = StringUtil.isEmpty(payAdapt) ? DEFAULT_PAY_ADAPT : payAdapt;
+        //支付适配器
+        IPayAdapt tPayAdapt = ApplicationContextFactory.getBean(payAdapt, IPayAdapt.class);
+        Map result = tPayAdapt.java110Payment(outRestTemplate, paramIn.getString("feeName"), paramIn.getString("tradeType"),
                 orderId, money, openId, smallWeChatDto,wechatAuthProperties.getOweFeeNotifyUrl());
         responseEntity = new ResponseEntity(JSONObject.toJSONString(result), HttpStatus.OK);
         if (!"0".equals(result.get("code"))) {

+ 1 - 1
service-front/src/main/java/com/java110/front/smo/payment/impl/ToPaySMOImpl.java

@@ -34,7 +34,7 @@ import java.util.Map;
 public class ToPaySMOImpl extends AppAbstractComponentSMO implements IToPaySMO {
     private static final Logger logger = LoggerFactory.getLogger(AppAbstractComponentSMO.class);
 
-    private static final String DEFAULT_PAY_ADAPT = "wechatPayAdapt";// 默认微信通用支付
+
 
 
     @Autowired

+ 12 - 8
service-front/src/main/java/com/java110/front/smo/payment/impl/ToPayTempCarInoutSMOImpl.java

@@ -2,15 +2,20 @@ package com.java110.front.smo.payment.impl;
 
 import com.alibaba.fastjson.JSONArray;
 import com.alibaba.fastjson.JSONObject;
+import com.java110.core.context.IPageData;
 import com.java110.core.context.PageData;
 import com.java110.dto.smallWeChat.SmallWeChatDto;
 import com.java110.front.properties.WechatAuthProperties;
 import com.java110.front.smo.AppAbstractComponentSMO;
 import com.java110.front.smo.payment.IToPayTempCarInoutSMO;
-import com.java110.core.context.IPageData;
+import com.java110.front.smo.payment.adapt.IPayAdapt;
+import com.java110.utils.cache.MappingCache;
 import com.java110.utils.constant.ServiceConstant;
+import com.java110.utils.constant.WechatConstant;
+import com.java110.utils.factory.ApplicationContextFactory;
 import com.java110.utils.util.Assert;
 import com.java110.utils.util.BeanConvertUtil;
+import com.java110.utils.util.StringUtil;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -92,12 +97,12 @@ public class ToPayTempCarInoutSMOImpl extends AppAbstractComponentSMO implements
         JSONObject realUserInfo = userResult.getJSONArray("users").getJSONObject(0);
 
         String openId = realUserInfo.getString("openId");
-//        String payAppId = orderInfo.getString("payAppId");
-//        String payMchId = orderInfo.getString("payMchId");
-
-        //微信下单PayUtil
-        Map result = super.java110Payment(restTemplate,paramIn.getString("feeName"),paramIn.getString("tradeType"),
-                orderId, money, openId,smallWeChatDto);
+        String payAdapt = MappingCache.getValue(WechatConstant.WECHAT_DOMAIN, WechatConstant.PAY_ADAPT);
+        payAdapt = StringUtil.isEmpty(payAdapt) ? DEFAULT_PAY_ADAPT : payAdapt;
+        //支付适配器
+        IPayAdapt tPayAdapt = ApplicationContextFactory.getBean(payAdapt, IPayAdapt.class);
+        Map result = tPayAdapt.java110Payment(restTemplate, paramIn.getString("feeName"), paramIn.getString("tradeType"),
+                orderId, money, openId, smallWeChatDto);
         responseEntity = new ResponseEntity(JSONObject.toJSONString(result), HttpStatus.OK);
 
         return responseEntity;
@@ -128,5 +133,4 @@ public class ToPayTempCarInoutSMOImpl extends AppAbstractComponentSMO implements
     }
 
 
-
 }

+ 10 - 2
service-front/src/main/java/com/java110/front/smo/payment/impl/ToQrPayOweFeeSMOImpl.java

@@ -10,10 +10,15 @@ import com.java110.dto.smallWeChat.SmallWeChatDto;
 import com.java110.front.properties.WechatAuthProperties;
 import com.java110.front.smo.AppAbstractComponentSMO;
 import com.java110.front.smo.payment.IToQrPayOweFeeSMO;
+import com.java110.front.smo.payment.adapt.IPayAdapt;
 import com.java110.utils.cache.CommonCache;
+import com.java110.utils.cache.MappingCache;
 import com.java110.utils.constant.ServiceConstant;
+import com.java110.utils.constant.WechatConstant;
+import com.java110.utils.factory.ApplicationContextFactory;
 import com.java110.utils.util.Assert;
 import com.java110.utils.util.BeanConvertUtil;
+import com.java110.utils.util.StringUtil;
 import com.java110.vo.ResultVo;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
@@ -94,8 +99,11 @@ public class ToQrPayOweFeeSMOImpl extends AppAbstractComponentSMO implements ITo
         }
         money = tmpMoney.setScale(2, BigDecimal.ROUND_HALF_EVEN).doubleValue();
 
-        String openId = "";
-        Map result = super.java110Payment(outRestTemplate, "物业二维码收款", WechatAuthProperties.TRADE_TYPE_NATIVE,
+        String payAdapt = MappingCache.getValue(WechatConstant.WECHAT_DOMAIN, WechatConstant.PAY_ADAPT);
+        payAdapt = StringUtil.isEmpty(payAdapt) ? DEFAULT_PAY_ADAPT : payAdapt;
+        //支付适配器
+        IPayAdapt tPayAdapt = ApplicationContextFactory.getBean(payAdapt, IPayAdapt.class);
+        Map result = tPayAdapt.java110Payment(outRestTemplate, "物业二维码收款", WechatAuthProperties.TRADE_TYPE_NATIVE,
                 orderId, money, "", smallWeChatDto, wechatAuthProperties.getOweFeeNotifyUrl());
         responseEntity = new ResponseEntity(JSONObject.toJSONString(result), HttpStatus.OK);
         if (!"0".equals(result.get("code"))) {