Bläddra i källkod

优化退款逻辑

java110 4 år sedan
förälder
incheckning
4e5b8cad8a

+ 2 - 0
service-acct/src/main/java/com/java110/acct/smo/impl/OnlinePayV1InnerServiceSMOImpl.java

@@ -17,6 +17,7 @@ package com.java110.acct.smo.impl;
 
 
 import com.java110.acct.dao.IOnlinePayV1ServiceDao;
+import com.java110.core.annotation.Java110Transactional;
 import com.java110.intf.acct.IOnlinePayV1InnerServiceSMO;
 import com.java110.dto.onlinePay.OnlinePayDto;
 import com.java110.po.onlinePay.OnlinePayPo;
@@ -53,6 +54,7 @@ public class OnlinePayV1InnerServiceSMOImpl extends BaseServiceSMO implements IO
     }
 
      @Override
+     @Java110Transactional
     public int updateOnlinePay(@RequestBody  OnlinePayPo onlinePayPo) {
         int saveFlag = onlinePayV1ServiceDaoImpl.updateOnlinePayInfo(BeanConvertUtil.beanCovertMap(onlinePayPo));
         return saveFlag;

+ 8 - 12
service-api/src/main/java/com/java110/api/smo/payment/adapt/plutuspay/PlutusOweFeeToNotifyAdapt.java

@@ -24,6 +24,7 @@ import com.java110.api.smo.payment.adapt.IOweFeeToNotifyAdapt;
 import com.java110.core.factory.CommunitySettingFactory;
 import com.java110.core.factory.PlutusFactory;
 import com.java110.core.factory.WechatFactory;
+import com.java110.core.log.LoggerFactory;
 import com.java110.dto.fee.FeeDto;
 import com.java110.dto.smallWeChat.SmallWeChatDto;
 import com.java110.utils.cache.CommonCache;
@@ -34,7 +35,6 @@ import com.java110.utils.util.PayUtil;
 import com.java110.utils.util.StringUtil;
 import org.bouncycastle.util.encoders.Base64;
 import org.slf4j.Logger;
-import com.java110.core.log.LoggerFactory;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.http.HttpMethod;
 import org.springframework.http.HttpStatus;
@@ -43,7 +43,10 @@ import org.springframework.stereotype.Component;
 import org.springframework.web.client.RestTemplate;
 
 import java.io.UnsupportedEncodingException;
-import java.util.*;
+import java.util.Date;
+import java.util.HashMap;
+import java.util.Map;
+import java.util.UUID;
 
 /**
  * 富友 支付 通知实现
@@ -92,9 +95,9 @@ public class PlutusOweFeeToNotifyAdapt extends DefaultAbstractComponentSMO imple
         if (smallWeChatDto == null) {
             throw new IllegalArgumentException("未配置公众号或者小程序信息");
         }
-        String publicKey = CommunitySettingFactory.getRemark(smallWeChatDto.getObjId(),"PLUTUS_PUBLIC_KEY");
+        String publicKey = CommunitySettingFactory.getRemark(smallWeChatDto.getObjId(), "PLUTUS_PUBLIC_KEY");
         //验签
-        Boolean verify = PlutusFactory.verify256(param, org.bouncycastle.util.encoders.Base64.decode(signature),publicKey);
+        Boolean verify = PlutusFactory.verify256(content, org.bouncycastle.util.encoders.Base64.decode(signature), publicKey);
         //验签成功
         if (!verify) {
             throw new IllegalArgumentException("支付失败签名失败");
@@ -135,16 +138,9 @@ public class PlutusOweFeeToNotifyAdapt extends DefaultAbstractComponentSMO imple
             smallWeChatDto.setMchId(wechatAuthProperties.getMchId());
             smallWeChatDto.setPayPassword(wechatAuthProperties.getKey());
         }
-        TreeMap<String, String> paramMap = new TreeMap<String, String>();
-        for (String key : map.keySet()) {
-//            if ("wId".equals(key)) {
-//                continue;
-//            }
-            paramMap.put(key, map.get(key).toString());
-        }
         //String sign = PayUtil.createChinaUmsSign(paramMap, smallWeChatDto.getPayPassword());
         //JSONObject billPayment = JSONObject.parseObject(map.getString("billPayment"));
-        String outTradeNo = map.get("outTransId").toString();
+        String outTradeNo = map.getString("outTransId");
 
         String orderId = outTradeNo;
         String order = CommonCache.getAndRemoveValue(FeeDto.REDIS_PAY_OWE_FEE + orderId);

+ 2 - 2
service-api/src/main/java/com/java110/api/smo/payment/adapt/plutuspay/PlutusPayAdapt.java

@@ -22,6 +22,7 @@ import com.java110.api.smo.payment.adapt.IPayAdapt;
 import com.java110.core.factory.CommunitySettingFactory;
 import com.java110.core.factory.PlutusFactory;
 import com.java110.core.factory.WechatFactory;
+import com.java110.core.log.LoggerFactory;
 import com.java110.dto.owner.OwnerAppUserDto;
 import com.java110.dto.smallWeChat.SmallWeChatDto;
 import com.java110.utils.cache.MappingCache;
@@ -30,7 +31,6 @@ import com.java110.utils.util.PayUtil;
 import com.java110.utils.util.StringUtil;
 import org.bouncycastle.util.encoders.Base64;
 import org.slf4j.Logger;
-import com.java110.core.log.LoggerFactory;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Component;
 import org.springframework.web.client.RestTemplate;
@@ -193,7 +193,7 @@ public class PlutusPayAdapt implements IPayAdapt {
         JSONObject paramObj = JSONObject.parseObject(paramOut);
         logger.debug("统一下单返回" + paramOut);
 
-        if (paramObj.getString("paramObj") != "00") {
+        if (!"00".equals(paramObj.getString("status"))) {
             throw new IllegalArgumentException("支付失败" + paramObj.getString("error"));
         }
 

+ 3 - 9
service-api/src/main/java/com/java110/api/smo/payment/adapt/plutuspay/PlutusPayNotifyAdapt.java

@@ -93,7 +93,7 @@ public class PlutusPayNotifyAdapt extends DefaultAbstractComponentSMO implements
         }
         String publicKey = CommunitySettingFactory.getRemark(smallWeChatDto.getObjId(),"PLUTUS_PUBLIC_KEY");
         //验签
-        Boolean verify = PlutusFactory.verify256(param, org.bouncycastle.util.encoders.Base64.decode(signature),publicKey);
+        Boolean verify = PlutusFactory.verify256(content, org.bouncycastle.util.encoders.Base64.decode(signature),publicKey);
         //验签成功
         if (!verify) {
             throw new IllegalArgumentException("支付失败签名失败");
@@ -134,16 +134,10 @@ public class PlutusPayNotifyAdapt extends DefaultAbstractComponentSMO implements
             smallWeChatDto.setMchId(wechatAuthProperties.getMchId());
             smallWeChatDto.setPayPassword(wechatAuthProperties.getKey());
         }
-        TreeMap<String, String> paramMap = new TreeMap<String, String>();
-        for (String key : map.keySet()) {
-//            if ("wId".equals(key)) {
-//                continue;
-//            }
-            paramMap.put(key, map.get(key).toString());
-        }
+
         //String sign = PayUtil.createChinaUmsSign(paramMap, smallWeChatDto.getPayPassword());
         //JSONObject billPayment = JSONObject.parseObject(map.getString("billPayment"));
-        String outTradeNo = map.get("outTransId").toString();
+        String outTradeNo = map.getString("outTransId");
 
         //查询用户ID
         JSONObject paramIn = new JSONObject();