Browse Source

fix:支付

fix
liujunchi 2 years ago
parent
commit
b12511900f
35 changed files with 123 additions and 2043 deletions
  1. 3 2
      cooleshow-mall/mall-admin/pom.xml
  2. 0 62
      cooleshow-mall/mall-admin/src/main/java/com/yonge/cooleshow/admin/controller/PaymentController.java
  3. 0 6
      cooleshow-mall/mall-admin/src/main/java/com/yonge/cooleshow/admin/service/OmsOrderReturnApplyService.java
  4. 22 80
      cooleshow-mall/mall-admin/src/main/java/com/yonge/cooleshow/admin/service/impl/OmsOrderReturnApplyServiceImpl.java
  5. 0 43
      cooleshow-mall/mall-pay/pom.xml
  6. 0 36
      cooleshow-mall/mall-pay/src/main/java/com/yonge/cooleshow/config/HuifuConfiguration.java
  7. 0 40
      cooleshow-mall/mall-pay/src/main/java/com/yonge/cooleshow/enums/OrderStatusEnum.java
  8. 0 37
      cooleshow-mall/mall-pay/src/main/java/com/yonge/cooleshow/enums/PayChannelEnum.java
  9. 0 37
      cooleshow-mall/mall-pay/src/main/java/com/yonge/cooleshow/enums/PayStatusEnum.java
  10. 0 110
      cooleshow-mall/mall-pay/src/main/java/com/yonge/cooleshow/props/HuifuProperties.java
  11. 0 260
      cooleshow-mall/mall-pay/src/main/java/com/yonge/cooleshow/sdk/adapay/PaymentSdk.java
  12. 0 170
      cooleshow-mall/mall-pay/src/main/java/com/yonge/cooleshow/sdk/adapay/dto/PaymentReq.java
  13. 0 139
      cooleshow-mall/mall-pay/src/main/java/com/yonge/cooleshow/sdk/adapay/dto/RefundReq.java
  14. 0 27
      cooleshow-mall/mall-pay/src/main/java/com/yonge/cooleshow/sdk/req/DeviceInfo.java
  15. 0 55
      cooleshow-mall/mall-pay/src/main/java/com/yonge/cooleshow/sdk/req/DivMember.java
  16. 0 52
      cooleshow-mall/mall-pay/src/main/java/com/yonge/cooleshow/sdk/req/OrderCloseReq.java
  17. 0 138
      cooleshow-mall/mall-pay/src/main/java/com/yonge/cooleshow/sdk/req/OrderPayReq.java
  18. 0 68
      cooleshow-mall/mall-pay/src/main/java/com/yonge/cooleshow/sdk/req/OrderRefundReq.java
  19. 0 73
      cooleshow-mall/mall-pay/src/main/java/com/yonge/cooleshow/sdk/req/PaymentConfirmParam.java
  20. 0 39
      cooleshow-mall/mall-pay/src/main/java/com/yonge/cooleshow/sdk/res/OrderCloseRes.java
  21. 0 106
      cooleshow-mall/mall-pay/src/main/java/com/yonge/cooleshow/sdk/res/OrderPayRes.java
  22. 0 92
      cooleshow-mall/mall-pay/src/main/java/com/yonge/cooleshow/sdk/res/OrderRefundRes.java
  23. 0 50
      cooleshow-mall/mall-pay/src/main/java/com/yonge/cooleshow/service/PaymentService.java
  24. 0 145
      cooleshow-mall/mall-pay/src/main/java/com/yonge/cooleshow/service/impl/AdapayPaymentServiceImpl.java
  25. 0 116
      cooleshow-mall/mall-pay/src/main/java/com/yonge/cooleshow/util/DistributedLock.java
  26. 25 24
      cooleshow-mall/mall-portal/src/main/java/com/yonge/cooleshow/portal/controller/PaymentController.java
  27. 0 11
      cooleshow-mall/mall-portal/src/main/java/com/yonge/cooleshow/portal/dto/OrderPayRes.java
  28. 3 0
      cooleshow-mall/mall-portal/src/main/java/com/yonge/cooleshow/portal/service/OmsPortalOrderReturnApplyService.java
  29. 0 6
      cooleshow-mall/mall-portal/src/main/java/com/yonge/cooleshow/portal/service/OmsPortalOrderService.java
  30. 59 2
      cooleshow-mall/mall-portal/src/main/java/com/yonge/cooleshow/portal/service/impl/OmsPortalOrderReturnApplyServiceImpl.java
  31. 0 4
      cooleshow-mall/mall-portal/src/main/java/com/yonge/cooleshow/portal/service/impl/OmsPortalOrderServiceImpl.java
  32. 11 6
      cooleshow-mall/mall-portal/src/main/java/com/yonge/cooleshow/portal/service/impl/UserOrderPaymentServiceImpl.java
  33. 0 1
      cooleshow-mall/pom.xml
  34. 0 5
      pom.xml
  35. 0 1
      toolset/toolset-payment/pom.xml

+ 3 - 2
cooleshow-mall/mall-admin/pom.xml

@@ -62,8 +62,9 @@
         </dependency>
 
         <dependency>
-            <groupId>com.yonge.cooleshow</groupId>
-            <artifactId>mall-pay</artifactId>
+            <groupId>com.yonge.toolset</groupId>
+            <artifactId>toolset-payment</artifactId>
+            <version>${project.toolset.version}</version>
         </dependency>
 
         <dependency>

+ 0 - 62
cooleshow-mall/mall-admin/src/main/java/com/yonge/cooleshow/admin/controller/PaymentController.java

@@ -1,62 +0,0 @@
-package com.yonge.cooleshow.admin.controller;
-
-import com.huifu.adapay.core.AdapayCore;
-import com.huifu.adapay.core.util.AdapaySign;
-import com.yonge.cooleshow.admin.service.OmsOrderReturnApplyService;
-import com.yonge.cooleshow.common.controller.BaseController;
-import io.swagger.annotations.Api;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.web.bind.annotation.PostMapping;
-import org.springframework.web.bind.annotation.RequestMapping;
-import org.springframework.web.bind.annotation.RestController;
-
-import javax.servlet.http.HttpServletRequest;
-
-/**
- * @Author: liweifan
- * @Data: 2022/3/11 18:16
- */
-@RestController
-@RequestMapping("/payment")
-@Api(value = "付款接口", tags = "付款接口")
-public class PaymentController extends BaseController {
-    private final static Logger log = LoggerFactory.getLogger(PaymentController.class);
-
-    @Autowired
-    private OmsOrderReturnApplyService orderReturnApplyService;
-
-    /**
-     * 汇付回调
-     * 问题:1、成功失败需要回执什么信息 2、回调url地址是否需要加入白名单
-     * @author liweifan
-     * @param: request
-     * @updateTime 2022/3/11 18:35
-     */
-    @PostMapping("/callback")
-    public void callback(HttpServletRequest request) {
-        try {
-            //验签传参data
-            String data = request.getParameter("data");
-            //验签传参sign
-            String sign = request.getParameter("sign");
-            //验签传参publicKey
-            String publicKey = AdapayCore.PUBLIC_KEY;
-            //验签
-            boolean checkSign = AdapaySign.verifySign(data, sign, publicKey);
-            log.info("汇付回调,res is {}", data);
-            if (checkSign) {
-                //验签成功逻辑
-                log.info("验签成功");
-                String type = request.getParameter("type");
-                if (type.contains("refund")) {
-                    orderReturnApplyService.orderCallback(data);
-                }
-            }
-        } catch (Exception e) {
-            e.printStackTrace();
-        }
-    }
-
-}

+ 0 - 6
cooleshow-mall/mall-admin/src/main/java/com/yonge/cooleshow/admin/service/OmsOrderReturnApplyService.java

@@ -32,10 +32,4 @@ public interface OmsOrderReturnApplyService {
      */
     OmsOrderReturnApplyResult getItem(Long id);
 
-    /**
-     * 退款订单回调
-     *
-     * @param data
-     */
-    void orderCallback(String data);
 }

+ 22 - 80
cooleshow-mall/mall-admin/src/main/java/com/yonge/cooleshow/admin/service/impl/OmsOrderReturnApplyServiceImpl.java

@@ -7,7 +7,6 @@ import com.yonge.cooleshow.admin.dto.OmsOrderReturnApplyResult;
 import com.yonge.cooleshow.admin.dto.OmsReturnApplyQueryParam;
 import com.yonge.cooleshow.admin.dto.OmsUpdateStatusParam;
 import com.yonge.toolset.base.exception.BizException;
-import com.yonge.cooleshow.enums.PayStatusEnum;
 import com.yonge.cooleshow.mbg.mapper.OmsOrderReturnApplyMapper;
 import com.yonge.cooleshow.mbg.mapper.UserOrderPaymentMapper;
 import com.yonge.cooleshow.mbg.mapper.UserOrderRefundMapper;
@@ -16,9 +15,12 @@ import com.yonge.cooleshow.mbg.model.OmsOrderReturnApplyExample;
 import com.yonge.cooleshow.admin.service.OmsOrderReturnApplyService;
 import com.yonge.cooleshow.mbg.model.UserOrderPayment;
 import com.yonge.cooleshow.mbg.model.UserOrderRefund;
-import com.yonge.cooleshow.sdk.req.OrderRefundReq;
-import com.yonge.cooleshow.sdk.res.OrderRefundRes;
-import com.yonge.cooleshow.service.PaymentService;
+import com.yonge.toolset.base.result.BaseResult;
+import com.yonge.toolset.payment.base.enums.OpenEnum;
+import com.yonge.toolset.payment.base.enums.PayChannelEnum;
+import com.yonge.toolset.payment.base.enums.TradeStatusEnum;
+import com.yonge.toolset.payment.base.model.RefundBill;
+import com.yonge.toolset.payment.core.service.PaymentClient;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -44,7 +46,7 @@ public class OmsOrderReturnApplyServiceImpl implements OmsOrderReturnApplyServic
     private OmsOrderReturnApplyMapper returnApplyMapper;
 
     @Autowired
-    private PaymentService adapayPaymentService;
+    private PaymentClient paymentClient;
 
     @Autowired
     private UserOrderPaymentMapper userOrderPaymentMapper;
@@ -111,22 +113,25 @@ public class OmsOrderReturnApplyServiceImpl implements OmsOrderReturnApplyServic
     private void refundAmount(OmsOrderReturnApply returnApply) {
         // 退款
         UserOrderPayment userOrderPayment = userOrderPaymentMapper.selectByOrderNoAndStatusSucceeded(returnApply.getOrderSn());
-        OrderRefundReq refundReq = new OrderRefundReq();
-        refundReq.setOrderNo(returnApply.getOrderSn());
-        refundReq.setRefundAmount(returnApply.getReturnAmount().setScale(2, RoundingMode.HALF_UP).toString());
+        RefundBill refundReq = new RefundBill(OpenEnum.valueOf(userOrderPayment.getOpenType()), PayChannelEnum.valueOf(userOrderPayment.getPayChannel()));
+        refundReq.setRefundNo(returnApply.getOrderSn());
+        refundReq.setRefundAmt(returnApply.getReturnAmount().setScale(2, RoundingMode.HALF_UP));
         refundReq.setReason(returnApply.getProductName());
-        refundReq.setTransNo(userOrderPayment.getTransNo());
-        OrderRefundRes orderRefundRes = adapayPaymentService.orderRefund(refundReq);
-        if (orderRefundRes.isStatus()) {
+        refundReq.setPaymentNo(userOrderPayment.getAdapayNo());
+        refundReq.setTradeNo(userOrderPayment.getTransNo());
+        refundReq.setOrderAmt(userOrderPayment.getPayAmt());
+        BaseResult<RefundBill> refundBillBaseResult = paymentClient.refundPayment(refundReq);
+        if (refundBillBaseResult.getStatus()) {
+            RefundBill refundBill = refundBillBaseResult.getData();
             UserOrderRefund userOrderRefund = new UserOrderRefund();
-            userOrderRefund.setOrderNo(orderRefundRes.getRefundOrderNo());
-            userOrderRefund.setTransNo(orderRefundRes.getTransNo());
-            userOrderRefund.setPayTransNo(orderRefundRes.getPayTransNo());
-            userOrderRefund.setRefundAmt(new BigDecimal(orderRefundRes.getRefundAmount()));
-            userOrderRefund.setStatus(orderRefundRes.getRefundStatus().getCode());
+            userOrderRefund.setOrderNo(refundBill.getRefundNo());
+            userOrderRefund.setTransNo(refundBill.getId());
+            userOrderRefund.setPayTransNo(refundBill.getTradeNo());
+            userOrderRefund.setRefundAmt(refundBill.getRefundAmt());
+            userOrderRefund.setStatus(TradeStatusEnum.pending.getCode());
             userOrderRefundMapper.insert(userOrderRefund);
         } else {
-            throw new BizException(orderRefundRes.getMessage());
+            throw new BizException(refundBillBaseResult.getMsg());
         }
     }
 
@@ -134,67 +139,4 @@ public class OmsOrderReturnApplyServiceImpl implements OmsOrderReturnApplyServic
     public OmsOrderReturnApplyResult getItem(Long id) {
         return returnApplyDao.getDetail(id);
     }
-
-    @Override
-    public void orderCallback(String data) {
-        JSONObject hfRes = JSONObject.parseObject(data);
-        UserOrderRefund userOrderRefund = userOrderRefundMapper.selectByTransNo(hfRes.getString("id"));
-        if (null == userOrderRefund) {
-            log.error("汇付退款回调,订单未找到。 req is {}", data);
-            return;
-        }
-
-        if (!userOrderRefund.getStatus().equals(PayStatusEnum.pending.getCode())) {
-            log.error("汇付退款回调,订单状态异常。 req is {}", data);
-        }
-        if (PayStatusEnum.succeeded.getCode().equals(hfRes.getString("status"))) {
-            //退款成功
-            refundSuccess(userOrderRefund, hfRes);
-        } else {
-            // 退款失败
-            refundCancel(userOrderRefund,hfRes);
-        }
-    }
-
-    /**
-     * 退款失败
-     *
-     * @param userOrderRefund
-     * @param hfRes
-     */
-    private void refundCancel(UserOrderRefund userOrderRefund, JSONObject hfRes) {
-        userOrderRefund.setArrivalTime(new Date());
-        userOrderRefund.setStatus(PayStatusEnum.failed.getCode());
-        if (hfRes != null) {
-            try {
-                userOrderRefund.setPayFailMsg(hfRes.getString("error_msg"));
-            }catch (Exception e) {
-                log.error("退款订单,退款失败参数错误,参数{}", hfRes.toJSONString());
-            }
-        }
-        userOrderRefundMapper.updateByPrimaryKeySelective(userOrderRefund);
-    }
-
-    /**
-     * 退款成功
-     *
-     * @param userOrderRefund
-     * @param hfRes
-     */
-    private void refundSuccess(UserOrderRefund userOrderRefund, JSONObject hfRes) {
-
-        userOrderRefund.setArrivalTime(new Date());
-        userOrderRefund.setStatus(PayStatusEnum.succeeded.getCode());
-        if (hfRes != null) {
-            try {
-                userOrderRefund.setFeeAmt(hfRes.getBigDecimal("fee_amt"));
-                userOrderRefund.setRefundAmt(hfRes.getBigDecimal("pay_amt"));
-            }catch (Exception e) {
-                log.error("退款订单,金额格式化失败,参数{}", hfRes.toJSONString());
-            }
-        }
-        userOrderRefundMapper.updateByPrimaryKeySelective(userOrderRefund);
-
-
-    }
 }

+ 0 - 43
cooleshow-mall/mall-pay/pom.xml

@@ -1,43 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
-    <modelVersion>4.0.0</modelVersion>
-    <parent>
-        <groupId>com.yonge.cooleshow</groupId>
-        <artifactId>cooleshow-mall</artifactId>
-        <version>1.0</version>
-    </parent>
-
-    <artifactId>mall-pay</artifactId>
-    <version>1.0</version>
-    <name>mall-pay</name>
-    <description>mall-pay</description>
-    <properties>
-        <java.version>1.8</java.version>
-    </properties>
-    <dependencies>
-        <dependency>
-            <groupId>com.huifu.adapay</groupId>
-            <artifactId>adapay-java-sdk</artifactId>
-            <version>1.2.10</version>
-        </dependency>
-        <dependency>
-            <groupId>com.yonge.cooleshow</groupId>
-            <artifactId>mall-common</artifactId>
-        </dependency>
-        <dependency>
-            <groupId>org.redisson</groupId>
-            <artifactId>redisson</artifactId>
-            <version>3.16.4</version>
-            <scope>compile</scope>
-        </dependency>
-
-        <!-- redisson -->
-        <dependency>
-            <groupId>org.redisson</groupId>
-            <artifactId>redisson-spring-boot-starter</artifactId>
-            <version>3.16.4</version>
-        </dependency>
-    </dependencies>
-
-</project>

+ 0 - 36
cooleshow-mall/mall-pay/src/main/java/com/yonge/cooleshow/config/HuifuConfiguration.java

@@ -1,36 +0,0 @@
-package com.yonge.cooleshow.config;
-
-import com.huifu.adapay.Adapay;
-import com.huifu.adapay.model.MerConfig;
-import com.yonge.cooleshow.props.HuifuProperties;
-import org.springframework.boot.context.properties.EnableConfigurationProperties;
-import org.springframework.context.annotation.Bean;
-import org.springframework.context.annotation.Configuration;
-
-/**
- * 路由配置信息
- */
-@Configuration
-@EnableConfigurationProperties({HuifuProperties.class})
-public class HuifuConfiguration {
-	private static HuifuProperties huifuProperties;
-	@Bean
-	public MerConfig merConfig(HuifuProperties authProperties) {
-		this.huifuProperties = authProperties;
-
-		MerConfig merConfig = new MerConfig();
-		merConfig.setApiKey(authProperties.getApiKey());
-		merConfig.setApiMockKey(authProperties.getMockApiKey());
-		merConfig.setRSAPrivateKey(authProperties.getRsaPrivateKey());
-		try {
-			Adapay.initWithMerConfig(merConfig);
-		} catch (Exception e) {
-			e.printStackTrace();
-		}
-		return merConfig;
-	}
-
-	public static HuifuProperties getHuifuProperties(){
-		return huifuProperties;
-	}
-}

+ 0 - 40
cooleshow-mall/mall-pay/src/main/java/com/yonge/cooleshow/enums/OrderStatusEnum.java

@@ -1,40 +0,0 @@
-package com.yonge.cooleshow.enums;
-
-import com.yonge.toolset.base.enums.BaseEnum;
-
-/**
- * 订单状态 WAIT_PAY 待支付 PAYING 支付中  PAID 已付款 CLOSE 已关闭
- * @Author: liweifan
- * @Data: 2022/3/31 14:59
- */
-public enum OrderStatusEnum implements BaseEnum<String, OrderStatusEnum> {
-    WAIT_PAY("WAIT_PAY","待支付"),
-    PAYING("PAYING","支付中"),
-    PAID("PAID","已付款"),
-    CLOSE("CLOSE","已关闭"),
-    FAIL("FAIL","支付失败"),
-    ;
-    private String code;
-    private String msg;
-
-    OrderStatusEnum(String code, String msg) {
-        this.code = code;
-        this.msg = msg;
-    }
-
-    public void setCode(String code) {
-        this.code = code;
-    }
-
-    public String getMsg() {
-        return msg;
-    }
-
-    public void setMsg(String msg) {
-        this.msg = msg;
-    }
-
-    public String getCode() {
-        return this.code;
-    }
-}

+ 0 - 37
cooleshow-mall/mall-pay/src/main/java/com/yonge/cooleshow/enums/PayChannelEnum.java

@@ -1,37 +0,0 @@
-package com.yonge.cooleshow.enums;
-
-
-/**
- * 支付渠道
- * @author liweifan
- * @updateTime 2022/3/31 11:30
- */
-public enum PayChannelEnum {
-    alipay("alipay","支付宝APP支付"),
-    wx_lite("wx_lite","微信小程序支付"),
-    alipay_lite("alipay_lite","支付宝小程序支付")
-    ;
-    private String code;
-    private String msg;
-
-    PayChannelEnum(String code, String msg) {
-        this.code = code;
-        this.msg = msg;
-    }
-
-    public void setCode(String code) {
-        this.code = code;
-    }
-
-    public String getMsg() {
-        return msg;
-    }
-
-    public void setMsg(String msg) {
-        this.msg = msg;
-    }
-
-    public String getCode() {
-        return this.code;
-    }
-}

+ 0 - 37
cooleshow-mall/mall-pay/src/main/java/com/yonge/cooleshow/enums/PayStatusEnum.java

@@ -1,37 +0,0 @@
-package com.yonge.cooleshow.enums;
-
-
-/**
- * 交易状态 pending 交易处理中 succeeded 交易成功 failed 交易失败
- * @Author: liweifan
- * @Data: 2022/3/31 14:59
- */
-public enum PayStatusEnum{
-    pending("pending","交易处理中"),
-    succeeded("succeeded","交易成功"),
-    failed("failed","交易失败")
-    ;
-    private String code;
-    private String msg;
-
-    PayStatusEnum(String code, String msg) {
-        this.code = code;
-        this.msg = msg;
-    }
-
-    public void setCode(String code) {
-        this.code = code;
-    }
-
-    public String getMsg() {
-        return msg;
-    }
-
-    public void setMsg(String msg) {
-        this.msg = msg;
-    }
-
-    public String getCode() {
-        return this.code;
-    }
-}

+ 0 - 110
cooleshow-mall/mall-pay/src/main/java/com/yonge/cooleshow/props/HuifuProperties.java

@@ -1,110 +0,0 @@
-package com.yonge.cooleshow.props;
-
-import org.springframework.boot.context.properties.ConfigurationProperties;
-import org.springframework.cloud.context.config.annotation.RefreshScope;
-
-/**
- * 权限过滤
- */
-@RefreshScope
-@ConfigurationProperties("huifu")
-public class HuifuProperties {
-    /***
-     * 汇付 控制台 主页面应用的app_id
-     * @author liweifan
-     * @updateTime 2022/3/31 11:19
-     */
-    private String appId;
-    /***
-     * 汇付 控制台->商户信息管理->证书管理中的API Key(prod模式的API KEY)
-     * @author liweifan
-     * @updateTime 2022/3/31 11:19
-     */
-    private String apiKey;
-    /***
-     * 汇付 控制台->商户信息管理->证书管理中的API Key(mock模式的API KEY)
-     * @author liweifan
-     * @updateTime 2022/3/31 11:19
-     */
-    private String mockApiKey;
-    /***
-     * 商户发起请求时,用于请求参数加签所需要的RSA私钥
-     * @author liweifan
-     * @updateTime 2022/3/31 11:24
-     */
-    private String rsaPrivateKey;
-    /***
-     * 付款成功回调地址
-     * @author liweifan
-     * @updateTime 2022/3/31 11:24
-     */
-    private String notifyUrl;
-    /***
-     * 微信appid
-     * @author liweifan
-     * @updateTime 2022/3/31 11:24
-     */
-    private String wxAppid;
-    /***
-     * 微信secret
-     * @author liweifan
-     * @updateTime 2022/3/31 11:24
-     */
-    private String wxSecret;
-
-    public String getApiKey() {
-        return apiKey;
-    }
-
-    public void setApiKey(String apiKey) {
-        this.apiKey = apiKey;
-    }
-
-    public String getMockApiKey() {
-        return mockApiKey;
-    }
-
-    public void setMockApiKey(String mockApiKey) {
-        this.mockApiKey = mockApiKey;
-    }
-
-    public String getRsaPrivateKey() {
-        return rsaPrivateKey;
-    }
-
-    public void setRsaPrivateKey(String rsaPrivateKey) {
-        this.rsaPrivateKey = rsaPrivateKey;
-    }
-
-    public String getAppId() {
-        return appId;
-    }
-
-    public void setAppId(String appId) {
-        this.appId = appId;
-    }
-
-    public String getWxAppid() {
-        return wxAppid;
-    }
-
-    public void setWxAppid(String wxAppid) {
-        this.wxAppid = wxAppid;
-    }
-
-    public String getWxSecret() {
-        return wxSecret;
-    }
-
-    public void setWxSecret(String wxSecret) {
-        this.wxSecret = wxSecret;
-    }
-
-    public String getNotifyUrl() {
-        return notifyUrl;
-    }
-
-    public void setNotifyUrl(String notifyUrl) {
-        this.notifyUrl = notifyUrl;
-    }
-}

+ 0 - 260
cooleshow-mall/mall-pay/src/main/java/com/yonge/cooleshow/sdk/adapay/PaymentSdk.java

@@ -1,260 +0,0 @@
-package com.yonge.cooleshow.sdk.adapay;
-
-import com.alibaba.fastjson.JSON;
-import com.alibaba.fastjson.JSONObject;
-import com.huifu.adapay.core.exception.BaseAdaPayException;
-import com.huifu.adapay.model.Payment;
-import com.huifu.adapay.model.PaymentConfirm;
-import com.huifu.adapay.model.Refund;
-import com.yonge.cooleshow.common.constant.CommonConstants;
-import com.yonge.cooleshow.common.entity.HttpResponseResult;
-import com.yonge.cooleshow.config.HuifuConfiguration;
-import com.yonge.cooleshow.sdk.adapay.dto.PaymentReq;
-import com.yonge.cooleshow.sdk.adapay.dto.RefundReq;
-import com.yonge.toolset.base.exception.ThirdpartyException;
-import com.yonge.toolset.utils.collection.MapUtil;
-import com.yonge.toolset.utils.http.HttpUtil;
-import com.yonge.toolset.utils.string.StringUtil;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-import org.springframework.stereotype.Component;
-import org.springframework.util.CollectionUtils;
-
-import java.util.Arrays;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
-
-// @Component
-public class PaymentSdk {
-    private final static Logger log = LoggerFactory.getLogger(PaymentSdk.class);
-
-    /**
-     * 执行一个支付交易
-     *
-     * @return 创建的支付对象
-     * @throws Exception 异常
-     */
-    public HttpResponseResult<Map<String, Object>> executePayment(PaymentReq paymentReq) {
-        paymentReq.setApp_id(HuifuConfiguration.getHuifuProperties().getAppId());
-        //创建分账对象
-        Map<String, String> div_member = new HashMap<>();
-        div_member.put("member_id", "0");
-        div_member.put("amount", paymentReq.getPay_amt());
-        div_member.put("fee_flag", "Y");
-        List<Map<String, String>> div_members = Arrays.asList(div_member);
-        paymentReq.setDiv_members(JSONObject.toJSONString(div_members));
-
-        log.info("汇付[创建支付对象] Req:{}", JSONObject.toJSONString(paymentReq));
-        //调用sdk方法,创建支付,得到支付对象
-        Map<String, Object> paymentParams = MapUtil.populateMap(new HashMap<>(), paymentReq);
-        Map<String, Object> res;
-        try {
-            res = Payment.create(paymentParams);
-        } catch (BaseAdaPayException e) {
-            return HttpResponseResult.failed(e.getMessage());
-        }
-        if (null == res) {
-            return HttpResponseResult.failed("请求失败");
-        }
-        log.info("汇付[创建支付对象] Resp:{}", res);
-        String errorCode = (String) res.get("error_code");
-        if (null != errorCode) {
-            String errorMsg = (String) res.get("error_msg");
-            return HttpResponseResult.failed(errorMsg);
-        }
-        return HttpResponseResult.succeed(res);
-    }
-
-    /**
-     * 创建确认对象
-     * 创建支付确认对象适用于延时分账的场景
-     *
-     * @return 查询的支付对象
-     * @throws Exception 异常
-     */
-    public Map<String, Object> createConfirm(Map<String, Object> confirm) throws Exception {
-        confirm = PaymentConfirm.create(confirm);
-
-        String error_code = (String) confirm.get("error_code");
-        if (null != error_code) {
-            String errorMsg = (String) confirm.get("error_msg");
-            throw new ThirdpartyException(errorMsg);
-        }
-        return confirm;
-    }
-
-    /**
-     * 关闭一个支付交易
-     *
-     * @param paymentId 要关闭的支付id
-     * @return 关闭的支付对象
-     * @throws Exception 异常
-     */
-    public HttpResponseResult<Map<String, Object>> closePayment(String paymentId, String reason, String expend) {
-        Map<String, Object> paymentParams = new HashMap<>(10);
-        paymentParams.put("payment_id", paymentId);
-        paymentParams.put("reason", reason);
-        paymentParams.put("expend", expend);
-        paymentParams.put("notify_url", HuifuConfiguration.getHuifuProperties().getNotifyUrl());
-
-        Map<String, Object> res;
-        try {
-            res = Payment.close(paymentParams);
-        } catch (BaseAdaPayException e) {
-            return HttpResponseResult.failed(e.getMessage());
-        }
-        if (CollectionUtils.isEmpty(res)) {
-            return HttpResponseResult.failed("请求失败");
-        }
-        log.info("汇付[关闭支付对象] Resp:{}", res);
-        String errorCode = (String) res.get("error_code");
-        if (null != errorCode) {
-            String errorMsg = (String) res.get("error_msg");
-            return HttpResponseResult.failed(errorMsg);
-        }
-        return HttpResponseResult.succeed(res);
-    }
-
-    /**
-     * 查询一个支付交易
-     *
-     * @param paymentId 要查询的支付id
-     * @return 查询的支付对象
-     * @throws Exception 异常
-     */
-    public Map<String, Object> queryPayment(String paymentId) throws Exception {
-        System.out.println("=======query payment begin=======");
-        //查询支付对象的参数,全部参数请参考 https://docs.adapay.tech/api/04-trade.html#id7
-        //调用sdk方法,查询支付交易,得到支付对象
-        Map<String, Object> payment = new HashMap<>();
-        try {
-            System.out.println("支付查询请求参数:" + JSON.toJSONString(paymentId));
-            payment = com.huifu.adapay.model.Payment.query(paymentId);
-        } catch (ThirdpartyException e) {
-            e.printStackTrace();
-        }
-
-        System.out.println("支付查询返回参数:" + JSON.toJSONString(payment));
-
-        String error_code = (String) payment.get("error_code");
-        if (null != error_code) {
-            String error_msg = (String) payment.get("error_msg");
-            System.out.println("error_code:" + error_code + "............." + error_msg);
-        }
-        System.out.println("=======query payment end=======");
-        return payment;
-    }
-    /***
-     * 获取openId
-     * @author liweifan
-     * @param: js_code
-     * @updateTime 2022/4/8 15:49
-     * @return: java.lang.Object
-     */
-    public HttpResponseResult<Map<String, String>> getOpenId(String js_code) {
-        log.info("微信[获取用户openId] Req:{}", js_code);
-        Map<String, Object> param = new HashMap<>();
-        param.put("appid", HuifuConfiguration.getHuifuProperties().getWxAppid());
-        param.put("secret", HuifuConfiguration.getHuifuProperties().getWxSecret());
-        param.put("js_code", js_code);
-        param.put("grant_type", CommonConstants.WECHAT_GRANT_TYPE);
-
-        try {
-            String res = HttpUtil.get("https://api.weixin.qq.com/sns/jscode2session", param);
-            JSONObject jsonObject = JSONObject.parseObject(res);
-            log.info("微信[获取用户openId] Res:{}", jsonObject.toJSONString());
-            String errcode = jsonObject.getString("errcode");
-            if(StringUtil.isEmpty(errcode) || "0".equals(errcode)){
-                Map<String, String> resMap = new HashMap<>();
-                resMap.put("openid", jsonObject.getString("openid"));
-                resMap.put("session_key", jsonObject.getString("session_key"));
-                return HttpResponseResult.succeed(resMap);
-            }else{
-                return HttpResponseResult.failed(jsonObject.getString("errmsg"));
-            }
-        } catch (Exception e) {
-            e.printStackTrace();
-            return HttpResponseResult.failed("请求失败");
-        }
-    }
-
-
-
-    /**
-     * 退款
-     *
-     * @return 关闭的支付对象
-     */
-    public HttpResponseResult<Map<String, Object>> refundPayment(RefundReq refundReq) {
-
-        refundReq.setFail_fast("Y");
-        //创建分账对象
-        Map<String, String> div_member = new HashMap<>();
-        div_member.put("member_id", "0");
-        div_member.put("amount", refundReq.getRefund_amt());
-        div_member.put("fee_flag", "Y");
-        List<Map<String, String>> div_members = Arrays.asList(div_member);
-        refundReq.setDiv_members(JSONObject.toJSONString(div_members));
-
-        log.info("汇付[退款对象] Req:{}", JSONObject.toJSONString(refundReq));
-        //调用sdk方法,创建退款,得到退款对象
-        Map<String, Object> paymentParams = MapUtil.populateMap(new HashMap<>(), refundReq);
-        Map<String, Object> res;
-        try {
-            res = Refund.create(refundReq.getId(),paymentParams);
-        } catch (BaseAdaPayException e) {
-            return HttpResponseResult.failed(e.getMessage());
-        }
-        if (null == res) {
-            return HttpResponseResult.failed("请求失败");
-        }
-        log.info("汇付[创建退款对象] Resp:{}", res);
-        String errorCode = (String) res.get("error_code");
-        if (null != errorCode) {
-            String errorMsg = (String) res.get("error_msg");
-            return HttpResponseResult.failed(errorMsg);
-        }
-        return HttpResponseResult.succeed(res);
-    }
-
-    /**
-     *  查看退款订单
-     *
-     * @param {
-     *     "status": "succeeded",
-     *     "prod_mode": "true",
-     *     "refunds": [
-     *         {
-     *             "payment_id": "002112019110811022810038712892084113408",
-     *             "refund_id": "0021120191108110337980038713178955902976",
-     *             "refund_order_no": "refundOrderNo00211201911081103379",
-     *             "trans_status": "P",
-     *             "refund_amt": "0.01",
-     *             "fee_amt": ""
-     *         }
-     *     ]
-     * }
-     */
-    public HttpResponseResult<Map<String, Object>> selectRefundPayment(String refundId) {
-
-        Map<String, Object> refundParams = new HashMap<>(2);
-        refundParams.put("refund_id", refundId);
-        Map<String, Object> res;
-        try {
-            res = Refund.query(refundParams);
-        } catch (BaseAdaPayException e) {
-            return HttpResponseResult.failed(e.getMessage());
-        }
-        if (null == res) {
-            return HttpResponseResult.failed("请求失败");
-        }
-        log.info("汇付[查看退款对象] Resp:{}", res);
-        String errorCode = (String) res.get("error_code");
-        if (null != errorCode) {
-            String errorMsg = (String) res.get("error_msg");
-            return HttpResponseResult.failed(errorMsg);
-        }
-        return HttpResponseResult.succeed(res);
-    }
-}

+ 0 - 170
cooleshow-mall/mall-pay/src/main/java/com/yonge/cooleshow/sdk/adapay/dto/PaymentReq.java

@@ -1,170 +0,0 @@
-package com.yonge.cooleshow.sdk.adapay.dto;
-
-import com.yonge.cooleshow.sdk.req.DeviceInfo;
-
-import java.io.Serializable;
-import java.util.Map;
-
-/**
- * 创建支付对象请求参数
- * @Author: liweifan
- * @Data: 2022/3/31 10:58
- */
-public class PaymentReq implements Serializable {
-    private static final long serialVersionUID = 1L;
-
-    /***
-     * 请求订单号,只能为英文、数字或者下划线的一种或多种组合,保证在app_id下唯一
-     * @author liweifan
-     * @updateTime 2022/3/31 11:00
-     */
-    private String order_no;
-    /***
-     * 控制台 主页面应用的app_id
-     * @author liweifan
-     * @updateTime 2022/3/31 11:00
-     */
-    private String app_id;
-    /***
-     * 支付渠道,参见 支付渠道
-     * @author liweifan
-     * @updateTime 2022/3/31 11:01
-     */
-    private String pay_channel;
-    /***
-     * 交易金额,必须大于0,保留两位小数点,如0.10、100.05等
-     * @author liweifan
-     * @updateTime 2022/3/31 11:01
-     */
-    private String pay_amt;
-    /***
-     * 商品标题
-     * @author liweifan
-     * @updateTime 2022/3/31 11:01
-     */
-    private String goods_title;
-    /***
-     * 商品描述信息,微信小程序和微信公众号该字段最大长度42个字符
-     * @author liweifan
-     * @updateTime 2022/3/31 11:01
-     */
-    private String goods_desc;
-    /***
-     * 分账对象信息列表,最多仅支持7个分账方,json 数组形式,详见 分账对象信息列表
-     * @author liweifan
-     * @updateTime 2022/3/31 11:01
-     */
-    private String div_members;
-    /***
-     * 订单附加说明
-     * @author liweifan
-     * @updateTime 2022/3/31 11:01
-     */
-    private String description;
-    /***
-     * 前端设备信息,详见 设备信息
-     * @author liweifan
-     * @updateTime 2022/3/31 11:01
-     */
-    private DeviceInfo device_info;
-    /***
-     * 支付渠道额外参数,JSON格式,条件可输入,详见 支付渠道 expend参数
-     * @author liweifan
-     * @updateTime 2022/3/31 11:01
-     */
-    private Map<String,Object> expend;
-    /***
-     * 异步通知地址,url为http/https路径,服务器POST回调,URL 上请勿附带参数
-     * @author liweifan
-     * @updateTime 2022/3/31 11:01
-     */
-    private String notify_url;
-
-    public String getOrder_no() {
-        return order_no;
-    }
-
-    public void setOrder_no(String order_no) {
-        this.order_no = order_no;
-    }
-
-    public String getApp_id() {
-        return app_id;
-    }
-
-    public void setApp_id(String app_id) {
-        this.app_id = app_id;
-    }
-
-    public String getPay_amt() {
-        return pay_amt;
-    }
-
-    public void setPay_amt(String pay_amt) {
-        this.pay_amt = pay_amt;
-    }
-
-    public String getGoods_title() {
-        return goods_title;
-    }
-
-    public void setGoods_title(String goods_title) {
-        this.goods_title = goods_title;
-    }
-
-    public String getGoods_desc() {
-        return goods_desc;
-    }
-
-    public void setGoods_desc(String goods_desc) {
-        this.goods_desc = goods_desc;
-    }
-
-    public String getDiv_members() {
-        return div_members;
-    }
-
-    public void setDiv_members(String div_members) {
-        this.div_members = div_members;
-    }
-
-    public String getDescription() {
-        return description;
-    }
-
-    public void setDescription(String description) {
-        this.description = description;
-    }
-
-    public DeviceInfo getDevice_info() {
-        return device_info;
-    }
-
-    public void setDevice_info(DeviceInfo device_info) {
-        this.device_info = device_info;
-    }
-
-    public Map<String, Object> getExpend() {
-        return expend;
-    }
-
-    public void setExpend(Map<String, Object> expend) {
-        this.expend = expend;
-    }
-
-    public String getNotify_url() {
-        return notify_url;
-    }
-
-    public void setNotify_url(String notify_url) {
-        this.notify_url = notify_url;
-    }
-
-    public String getPay_channel() {
-        return pay_channel;
-    }
-
-    public void setPay_channel(String pay_channel) {
-        this.pay_channel = pay_channel;
-    }
-}

+ 0 - 139
cooleshow-mall/mall-pay/src/main/java/com/yonge/cooleshow/sdk/adapay/dto/RefundReq.java

@@ -1,139 +0,0 @@
-package com.yonge.cooleshow.sdk.adapay.dto;
-
-import com.yonge.cooleshow.sdk.req.DeviceInfo;
-
-import java.io.Serializable;
-
-/**
- * Description
- *
- * @author liujunchi
- * @date 2022-04-27
- */
-public class RefundReq implements Serializable {
-
-    /**
-     * 当支付确认成功后进行退款,请传入支付确认对象的id;当实时分账成功后进行退款,请传入支付对象的id。
-     *
-     * Y
-     */
-    private String id;
-
-    /**
-     * 请求订单号,只能为英文、数字或者下划线的一种或多种组合
-     *
-     * Y
-     */
-    private String refund_order_no;
-
-    /**
-     * 退款金额,若退款金额小于原交易金额,则认为是部分退款,必须大于0,保留两位小数点,如0.10、100.05等
-     *
-     * Y
-     */
-    private String refund_amt;
-
-    /**
-     * 退款描述
-     */
-    private String reason;
-
-    /**
-     * 扩展域
-     */
-    private String expend;
-
-    /**
-     * 前端设备信息
-     */
-    private DeviceInfo device_info;
-
-    /**
-     * 分账对象信息列表
-     */
-    private String div_members;
-
-    /**
-     * 异步通知地址,url为http/https路径,服务器POST回调,URL 上请勿附带参数
-     */
-    private String notify_url;
-
-    /**
-     * 快速失败标识:N 或者为空时-退款失败及时返回错误,仅支持实时分账场景;
-     * 为Y时,退款失败会走 Adapay 人工审核流程,核对后再次出款或回账,最晚 T+3 返回终态结果
-     */
-    private String fail_fast;
-
-
-    public String getId() {
-        return id;
-    }
-
-    public void setId(String id) {
-        this.id = id;
-    }
-
-    public String getRefund_order_no() {
-        return refund_order_no;
-    }
-
-    public void setRefund_order_no(String refund_order_no) {
-        this.refund_order_no = refund_order_no;
-    }
-
-    public String getRefund_amt() {
-        return refund_amt;
-    }
-
-    public void setRefund_amt(String refund_amt) {
-        this.refund_amt = refund_amt;
-    }
-
-    public String getReason() {
-        return reason;
-    }
-
-    public void setReason(String reason) {
-        this.reason = reason;
-    }
-
-    public String getExpend() {
-        return expend;
-    }
-
-    public void setExpend(String expend) {
-        this.expend = expend;
-    }
-
-    public DeviceInfo getDevice_info() {
-        return device_info;
-    }
-
-    public void setDevice_info(DeviceInfo device_info) {
-        this.device_info = device_info;
-    }
-
-    public String getDiv_members() {
-        return div_members;
-    }
-
-    public void setDiv_members(String div_members) {
-        this.div_members = div_members;
-    }
-
-    public String getNotify_url() {
-        return notify_url;
-    }
-
-    public void setNotify_url(String notify_url) {
-        this.notify_url = notify_url;
-    }
-
-    public String getFail_fast() {
-        return fail_fast;
-    }
-
-    public void setFail_fast(String fail_fast) {
-        this.fail_fast = fail_fast;
-    }
-}

+ 0 - 27
cooleshow-mall/mall-pay/src/main/java/com/yonge/cooleshow/sdk/req/DeviceInfo.java

@@ -1,27 +0,0 @@
-package com.yonge.cooleshow.sdk.req;
-
-import java.io.Serializable;
-
-/**
- * 交易设备信息
- * @Author: liweifan
- * @Data: 2022/3/31 11:36
- */
-public class DeviceInfo implements Serializable {
-    private static final long serialVersionUID = 1L;
-
-    /***
-     * 交易设备所在的公网 IP
-     * @author liweifan
-     * @updateTime 2022/3/31 11:07
-     */
-    private String device_ip;
-
-    public String getDevice_ip() {
-        return device_ip;
-    }
-
-    public void setDevice_ip(String device_ip) {
-        this.device_ip = device_ip;
-    }
-}

+ 0 - 55
cooleshow-mall/mall-pay/src/main/java/com/yonge/cooleshow/sdk/req/DivMember.java

@@ -1,55 +0,0 @@
-package com.yonge.cooleshow.sdk.req;
-
-import java.io.Serializable;
-
-/**
- * 分账对象
- * @Author: liweifan
- * @Data: 2022/3/31 11:26
- */
-public class DivMember implements Serializable {
-    private static final long serialVersionUID = 1L;
-
-    /**
-     * 分账用户 Member对象 的 id;若是商户本身时,传入0
-     * @author liweifan
-     * @updateTime 2022/3/31 11:27
-     */
-    private String member_id;
-    /**
-     * 分账金额,精确到分,如0.50,1.00等,分账总金额必须等于主交易金额,金额不能为0.00
-     * @author liweifan
-     * @updateTime 2022/3/31 11:28
-     */
-    private String amount;
-    /**
-     * 是否手续费承担方,N-否,Y-是,手续费承担方有且只能有一个
-     * @author liweifan
-     * @updateTime 2022/3/31 11:28
-     */
-    private String fee_flag;
-
-    public String getMember_id() {
-        return member_id;
-    }
-
-    public void setMember_id(String member_id) {
-        this.member_id = member_id;
-    }
-
-    public String getAmount() {
-        return amount;
-    }
-
-    public void setAmount(String amount) {
-        this.amount = amount;
-    }
-
-    public String getFee_flag() {
-        return fee_flag;
-    }
-
-    public void setFee_flag(String fee_flag) {
-        this.fee_flag = fee_flag;
-    }
-}

+ 0 - 52
cooleshow-mall/mall-pay/src/main/java/com/yonge/cooleshow/sdk/req/OrderCloseReq.java

@@ -1,52 +0,0 @@
-package com.yonge.cooleshow.sdk.req;
-
-import io.swagger.annotations.ApiModel;
-
-/**
- * Description
- *
- * @author liujunchi
- * @date 2022-05-05
- */
-@ApiModel("关闭订单请求")
-public class OrderCloseReq {
-
-    /**
-     * 支付id
-     */
-    private String paymentId;
-
-    /**
-     * 关单描述
-     */
-    private String reason;
-
-    /**
-     * 扩展域
-     */
-    private String expend;
-
-    public String getPaymentId() {
-        return paymentId;
-    }
-
-    public void setPaymentId(String paymentId) {
-        this.paymentId = paymentId;
-    }
-
-    public String getReason() {
-        return reason;
-    }
-
-    public void setReason(String reason) {
-        this.reason = reason;
-    }
-
-    public String getExpend() {
-        return expend;
-    }
-
-    public void setExpend(String expend) {
-        this.expend = expend;
-    }
-}

+ 0 - 138
cooleshow-mall/mall-pay/src/main/java/com/yonge/cooleshow/sdk/req/OrderPayReq.java

@@ -1,138 +0,0 @@
-package com.yonge.cooleshow.sdk.req;
-
-import com.yonge.cooleshow.enums.OrderStatusEnum;
-import com.yonge.cooleshow.enums.PayChannelEnum;
-import io.swagger.annotations.ApiModel;
-import io.swagger.annotations.ApiModelProperty;
-
-import javax.validation.constraints.NotBlank;
-import javax.validation.constraints.NotNull;
-import java.math.BigDecimal;
-
-/**
- * 下单支付请求
- *
- * @Author: liweifan
- * @Data: 2022/3/31 14:55
- */
-@ApiModel(value = "OrderPayReq对象", description = "下单支付请求")
-public class OrderPayReq {
-    @NotBlank(message = "订单号不能为空")
-    @ApiModelProperty(value = "订单号 ", required = true)
-    private String orderNo;
-    @NotNull(message = "支付渠道不能为空")
-    @ApiModelProperty(value = "支付渠道:  alipay 支付宝APP支付 alipay_lite 支付宝小程序支付  wx_lite 微信小程序支付 ", required = true)
-    private PayChannelEnum payChannel;
-    @ApiModelProperty(value = "微信用户openId(微信支付必传)")
-    private String openId;
-    @ApiModelProperty(value = "买家的支付宝用户 id(支付宝小程序支付必传)")
-    private String buyerId;
-    @ApiModelProperty(value = "用户说明 ")
-    private String reason;
-
-
-    @ApiModelProperty(value = "用户id ")
-    private Long userId;
-    @ApiModelProperty(value = "用户端公网ip ")
-    private String ipAddress;
-
-    @ApiModelProperty(value = "订单金额",hidden = true)
-    private BigDecimal orderPrice;
-
-    @ApiModelProperty(value = "商品标题",hidden = true)
-    private String goodTitle;
-
-    @ApiModelProperty(value = "商品描述",hidden = true)
-    private String goodDesc;
-
-    @ApiModelProperty(value = "拉起支付信息",hidden = true)
-    private String payInfo;
-
-    public String getBuyerId() {
-        return buyerId;
-    }
-
-    public void setBuyerId(String buyerId) {
-        this.buyerId = buyerId;
-    }
-
-    public String getReason() {
-        return reason;
-    }
-
-    public void setReason(String reason) {
-        this.reason = reason;
-    }
-
-    public BigDecimal getOrderPrice() {
-        return orderPrice;
-    }
-
-    public void setOrderPrice(BigDecimal orderPrice) {
-        this.orderPrice = orderPrice;
-    }
-
-    public String getGoodTitle() {
-        return goodTitle;
-    }
-
-    public void setGoodTitle(String goodTitle) {
-        this.goodTitle = goodTitle;
-    }
-
-    public String getGoodDesc() {
-        return goodDesc;
-    }
-
-    public void setGoodDesc(String goodDesc) {
-        this.goodDesc = goodDesc;
-    }
-
-    public String getOrderNo() {
-        return orderNo;
-    }
-
-    public void setOrderNo(String orderNo) {
-        this.orderNo = orderNo;
-    }
-
-    public PayChannelEnum getPayChannel() {
-        return payChannel;
-    }
-
-    public void setPayChannel(PayChannelEnum payChannel) {
-        this.payChannel = payChannel;
-    }
-
-    public Long getUserId() {
-        return userId;
-    }
-
-    public void setUserId(Long userId) {
-        this.userId = userId;
-    }
-
-    public String getIpAddress() {
-        return ipAddress;
-    }
-
-    public void setIpAddress(String ipAddress) {
-        this.ipAddress = ipAddress;
-    }
-
-    public String getOpenId() {
-        return openId;
-    }
-
-    public void setOpenId(String openId) {
-        this.openId = openId;
-    }
-
-    public String getPayInfo() {
-        return payInfo;
-    }
-
-    public void setPayInfo(String payInfo) {
-        this.payInfo = payInfo;
-    }
-}

+ 0 - 68
cooleshow-mall/mall-pay/src/main/java/com/yonge/cooleshow/sdk/req/OrderRefundReq.java

@@ -1,68 +0,0 @@
-package com.yonge.cooleshow.sdk.req;
-
-import io.swagger.annotations.ApiModelProperty;
-
-/**
- * Description 退款请求参数
- *
- * @author liujunchi
- * @date 2022-04-27
- */
-public class OrderRefundReq {
-
-    @ApiModelProperty("支付流水号")
-    private String transNo;
-
-
-    @ApiModelProperty("订单号")
-    private String orderNo;
-
-    @ApiModelProperty("退款金额")
-    private String refundAmount;
-
-    @ApiModelProperty("退款描述")
-    private String reason;
-
-    @ApiModelProperty(value = "用户端公网ip ")
-    private String ipAddress;
-
-    public String getTransNo() {
-        return transNo;
-    }
-
-    public void setTransNo(String transNo) {
-        this.transNo = transNo;
-    }
-
-    public String getOrderNo() {
-        return orderNo;
-    }
-
-    public void setOrderNo(String orderNo) {
-        this.orderNo = orderNo;
-    }
-
-    public String getRefundAmount() {
-        return refundAmount;
-    }
-
-    public void setRefundAmount(String refundAmount) {
-        this.refundAmount = refundAmount;
-    }
-
-    public String getReason() {
-        return reason;
-    }
-
-    public void setReason(String reason) {
-        this.reason = reason;
-    }
-
-    public String getIpAddress() {
-        return ipAddress;
-    }
-
-    public void setIpAddress(String ipAddress) {
-        this.ipAddress = ipAddress;
-    }
-}

+ 0 - 73
cooleshow-mall/mall-pay/src/main/java/com/yonge/cooleshow/sdk/req/PaymentConfirmParam.java

@@ -1,73 +0,0 @@
-package com.yonge.cooleshow.sdk.req;
-
-import java.io.Serializable;
-import java.util.List;
-
-/**
- * @Author: liweifan
- * @Data: 2022/3/11 17:44
- */
-public class PaymentConfirmParam implements Serializable {
-    private static final long serialVersionUID = 1L;
-
-    //Adapay生成的支付对象id
-    private String payment_id;
-    //请求订单号,只能为英文、数字或者下划线的一种或多种组合,保证在app_id下唯一
-    private String order_no;
-    //确认金额,必须大于0,保留两位小数点,如0.10、100.05等。必须小于等于原支付金额-已确认金额-已撤销金额。
-    private String confirm_amt;
-    //附加说明
-    private String description;
-    //分账对象信息列表,一次请求最多仅支持7个分账方
-    private List<DivMember> div_members;
-    //手续费收取模式:O-商户手续费账户扣取手续费,I-交易金额中扣取手续费;值为空时,默认值为I;若为O时,分账对象列表中不支持传入手续费承担方
-    private String fee_mode;
-
-    public String getPayment_id() {
-        return payment_id;
-    }
-
-    public void setPayment_id(String payment_id) {
-        this.payment_id = payment_id;
-    }
-
-    public String getOrder_no() {
-        return order_no;
-    }
-
-    public void setOrder_no(String order_no) {
-        this.order_no = order_no;
-    }
-
-    public String getConfirm_amt() {
-        return confirm_amt;
-    }
-
-    public void setConfirm_amt(String confirm_amt) {
-        this.confirm_amt = confirm_amt;
-    }
-
-    public String getDescription() {
-        return description;
-    }
-
-    public void setDescription(String description) {
-        this.description = description;
-    }
-
-    public List<DivMember> getDiv_members() {
-        return div_members;
-    }
-
-    public void setDiv_members(List<DivMember> div_members) {
-        this.div_members = div_members;
-    }
-
-    public String getFee_mode() {
-        return fee_mode;
-    }
-
-    public void setFee_mode(String fee_mode) {
-        this.fee_mode = fee_mode;
-    }
-}

+ 0 - 39
cooleshow-mall/mall-pay/src/main/java/com/yonge/cooleshow/sdk/res/OrderCloseRes.java

@@ -1,39 +0,0 @@
-package com.yonge.cooleshow.sdk.res;
-
-import io.swagger.annotations.ApiModel;
-
-/**
- * Description
- *
- * @author liujunchi
- * @date 2022-05-05
- */
-@ApiModel("关闭订单信息")
-public class OrderCloseRes {
-
-    /**
-     * 执行状态
-     */
-    private boolean status = true;
-
-    /**
-     * 错误信息
-     */
-    private String failMsg;
-
-    public boolean isStatus() {
-        return status;
-    }
-
-    public void setStatus(boolean status) {
-        this.status = status;
-    }
-
-    public String getFailMsg() {
-        return failMsg;
-    }
-
-    public void setFailMsg(String failMsg) {
-        this.failMsg = failMsg;
-    }
-}

+ 0 - 106
cooleshow-mall/mall-pay/src/main/java/com/yonge/cooleshow/sdk/res/OrderPayRes.java

@@ -1,106 +0,0 @@
-package com.yonge.cooleshow.sdk.res;
-
-import com.fasterxml.jackson.annotation.JsonIgnore;
-import com.yonge.cooleshow.enums.PayStatusEnum;
-import io.swagger.annotations.ApiModel;
-import io.swagger.annotations.ApiModelProperty;
-
-/**
- * @Author: liweifan
- * @Data: 2022/4/1 15:35
- */
-@ApiModel(value = "OrderPayRes", description = "订单支付请求返回对象")
-public class OrderPayRes {
-    @ApiModelProperty("支付金额")
-    private String pay_amt;
-    @ApiModelProperty("pay_info")
-    private String pay_info;
-
-    @ApiModelProperty(value = "执行状态",required = true)
-    @JsonIgnore
-    private boolean status = true;
-
-    @ApiModelProperty(value = "出错信息",required = true)
-    @JsonIgnore
-    private String message;
-
-    @ApiModelProperty(value = "支付状态",required = true)
-    @JsonIgnore
-    private PayStatusEnum payStatus;
-
-
-    @ApiModelProperty(value = "订单编号",required = true)
-    @JsonIgnore
-    private String orderNo;
-
-    @ApiModelProperty("支付渠道:  alipay 支付宝  wx_lite 微信")
-    private String payChannel;
-
-    @ApiModelProperty(value = "交易流水号",required = true)
-    @JsonIgnore
-    private String transNo;
-
-    public String getPay_amt() {
-        return pay_amt;
-    }
-
-    public void setPay_amt(String pay_amt) {
-        this.pay_amt = pay_amt;
-    }
-
-    public String getPay_info() {
-        return pay_info;
-    }
-
-    public void setPay_info(String pay_info) {
-        this.pay_info = pay_info;
-    }
-
-    public boolean isStatus() {
-        return status;
-    }
-
-    public void setStatus(boolean status) {
-        this.status = status;
-    }
-
-    public String getMessage() {
-        return message;
-    }
-
-    public void setMessage(String message) {
-        this.message = message;
-    }
-
-    public PayStatusEnum getPayStatus() {
-        return payStatus;
-    }
-
-    public void setPayStatus(PayStatusEnum payStatus) {
-        this.payStatus = payStatus;
-    }
-
-    public String getOrderNo() {
-        return orderNo;
-    }
-
-    public void setOrderNo(String orderNo) {
-        this.orderNo = orderNo;
-    }
-
-    public String getPayChannel() {
-        return payChannel;
-    }
-
-    public void setPayChannel(String payChannel) {
-        this.payChannel = payChannel;
-    }
-
-    public String getTransNo() {
-        return transNo;
-    }
-
-    public void setTransNo(String transNo) {
-        this.transNo = transNo;
-    }
-}

+ 0 - 92
cooleshow-mall/mall-pay/src/main/java/com/yonge/cooleshow/sdk/res/OrderRefundRes.java

@@ -1,92 +0,0 @@
-package com.yonge.cooleshow.sdk.res;
-
-import com.yonge.cooleshow.enums.PayStatusEnum;
-import io.swagger.annotations.ApiModel;
-import io.swagger.annotations.ApiModelProperty;
-
-/**
- * Description
- *
- * @author liujunchi
- * @date 2022-04-27
- */
-@ApiModel("退款返回数据")
-public class OrderRefundRes {
-
-    @ApiModelProperty("退款流水号")
-    private String transNo;
-
-    @ApiModelProperty("支付流水号")
-    private String payTransNo;
-
-    @ApiModelProperty("订单号")
-    private String refundOrderNo;
-
-    @ApiModelProperty("退款金额")
-    private String refundAmount;
-
-    @ApiModelProperty("退款状态")
-    private PayStatusEnum refundStatus;
-
-    @ApiModelProperty("执行状态")
-    private boolean status = true;
-
-    @ApiModelProperty("出错信息")
-    private String message;
-
-    public String getRefundOrderNo() {
-        return refundOrderNo;
-    }
-
-    public void setRefundOrderNo(String refundOrderNo) {
-        this.refundOrderNo = refundOrderNo;
-    }
-
-    public boolean isStatus() {
-        return status;
-    }
-
-    public void setStatus(boolean status) {
-        this.status = status;
-    }
-
-    public String getMessage() {
-        return message;
-    }
-
-    public void setMessage(String message) {
-        this.message = message;
-    }
-
-    public String getTransNo() {
-        return transNo;
-    }
-
-    public void setTransNo(String transNo) {
-        this.transNo = transNo;
-    }
-
-    public String getPayTransNo() {
-        return payTransNo;
-    }
-
-    public void setPayTransNo(String payTransNo) {
-        this.payTransNo = payTransNo;
-    }
-
-    public String getRefundAmount() {
-        return refundAmount;
-    }
-
-    public void setRefundAmount(String refundAmount) {
-        this.refundAmount = refundAmount;
-    }
-
-    public PayStatusEnum getRefundStatus() {
-        return refundStatus;
-    }
-
-    public void setRefundStatus(PayStatusEnum status) {
-        this.refundStatus = status;
-    }
-}

+ 0 - 50
cooleshow-mall/mall-pay/src/main/java/com/yonge/cooleshow/service/PaymentService.java

@@ -1,50 +0,0 @@
-package com.yonge.cooleshow.service;
-
-import com.yonge.cooleshow.sdk.req.OrderCloseReq;
-import com.yonge.cooleshow.sdk.req.OrderPayReq;
-import com.yonge.cooleshow.sdk.req.OrderRefundReq;
-import com.yonge.cooleshow.sdk.res.OrderCloseRes;
-import com.yonge.cooleshow.sdk.res.OrderPayRes;
-import com.yonge.cooleshow.sdk.res.OrderRefundRes;
-
-/**
- * Description 支付服务
- *
- * @author liujunchi
- * @date 2022-04-21
- */
-public interface PaymentService {
-
-    /**
-     * 调用支付
-     *
-     * @param payReq
-     * @return
-     */
-    OrderPayRes orderPay(OrderPayReq payReq);
-
-
-    /**
-     * 拉起原有支付信息,继续支付
-     *
-     * @param payReq
-     * @return
-     */
-    OrderPayRes orderContinue(OrderPayReq payReq);
-
-    /**
-     * 退款
-     *
-     * @param refundReq
-     * @return
-     */
-    OrderRefundRes orderRefund(OrderRefundReq refundReq);
-
-    /**
-     * 关闭订单
-     *
-     * @param closeReq 关闭订单
-     * @return
-     */
-    OrderCloseRes orderClose(OrderCloseReq closeReq);
-}

+ 0 - 145
cooleshow-mall/mall-pay/src/main/java/com/yonge/cooleshow/service/impl/AdapayPaymentServiceImpl.java

@@ -1,145 +0,0 @@
-package com.yonge.cooleshow.service.impl;
-
-import com.alibaba.fastjson.JSONObject;
-import com.yonge.cooleshow.common.entity.HttpResponseResult;
-import com.yonge.cooleshow.config.HuifuConfiguration;
-import com.yonge.cooleshow.enums.OrderStatusEnum;
-import com.yonge.cooleshow.enums.PayChannelEnum;
-import com.yonge.cooleshow.enums.PayStatusEnum;
-import com.yonge.cooleshow.sdk.adapay.PaymentSdk;
-import com.yonge.cooleshow.sdk.adapay.dto.RefundReq;
-import com.yonge.cooleshow.sdk.req.DeviceInfo;
-import com.yonge.cooleshow.sdk.req.OrderCloseReq;
-import com.yonge.cooleshow.sdk.req.OrderPayReq;
-import com.yonge.cooleshow.sdk.adapay.dto.PaymentReq;
-import com.yonge.cooleshow.sdk.req.OrderRefundReq;
-import com.yonge.cooleshow.sdk.res.OrderCloseRes;
-import com.yonge.cooleshow.sdk.res.OrderRefundRes;
-import com.yonge.cooleshow.sdk.res.OrderPayRes;
-import com.yonge.cooleshow.service.PaymentService;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.stereotype.Service;
-
-import java.math.BigDecimal;
-import java.math.RoundingMode;
-import java.util.HashMap;
-import java.util.Map;
-
-/**
- * Description
- *
- * @author liujunchi
- * @date 2022-04-21
- */
-@Service("adapayPaymentService")
-public class AdapayPaymentServiceImpl implements PaymentService {
-
-    @Autowired
-    private PaymentSdk paymentSdk;
-
-    @Override
-    public OrderPayRes orderPay(OrderPayReq payReq) {
-        PaymentReq paymentReq = new PaymentReq();
-        paymentReq.setOrder_no(payReq.getOrderNo());
-        paymentReq.setPay_channel(payReq.getPayChannel().getCode());
-        paymentReq.setPay_amt(payReq.getOrderPrice().setScale(2, RoundingMode.HALF_UP).toString());
-        paymentReq.setGoods_title(payReq.getGoodTitle());
-        paymentReq.setGoods_desc(payReq.getGoodDesc());
-
-        DeviceInfo deviceInfo = new DeviceInfo();
-        deviceInfo.setDevice_ip(payReq.getIpAddress());
-
-        paymentReq.setDevice_info(deviceInfo);
-        //异步通知地址
-        paymentReq.setNotify_url(HuifuConfiguration.getHuifuProperties().getNotifyUrl());
-
-        if (PayChannelEnum.alipay_lite.equals(payReq.getPayChannel())) {
-            Map<String, Object> expend = new HashMap<>();
-            expend.put("buyer_id", payReq.getBuyerId());
-            paymentReq.setExpend(expend);
-        } else if (PayChannelEnum.wx_lite.equals(payReq.getPayChannel())) {
-            Map<String, Object> expend = new HashMap<>();
-            expend.put("open_id", payReq.getOpenId());
-            paymentReq.setExpend(expend);
-        }
-        //付款请求
-        HttpResponseResult<Map<String, Object>> responseResult = paymentSdk.executePayment(paymentReq);
-        OrderPayRes orderPayRes = new OrderPayRes();
-        orderPayRes.setOrderNo(payReq.getOrderNo());
-        orderPayRes.setPayChannel(payReq.getPayChannel().getCode());
-
-        if (responseResult.getStatus()) {
-            Map<String, Object> res = responseResult.getData();
-            orderPayRes.setTransNo(res.get("id").toString());
-            orderPayRes.setPay_amt(
-                    new BigDecimal(res.get("pay_amt").toString()).setScale(2, RoundingMode.HALF_UP).toString()
-            );
-            String pay_info = ((JSONObject) res.get("expend")).getString("pay_info");
-            orderPayRes.setPay_info(pay_info);
-            orderPayRes.setPayStatus(PayStatusEnum.pending);
-            return orderPayRes;
-        } else {
-            //入订单付款表,同时修改订单状态
-            orderPayRes.setPayStatus(PayStatusEnum.failed);
-            orderPayRes.setStatus(false);
-            orderPayRes.setMessage(responseResult.getMsg());
-            return orderPayRes;
-        }
-    }
-
-    @Override
-    public OrderPayRes orderContinue(OrderPayReq payReq) {
-        OrderPayRes orderPayRes = new OrderPayRes();
-        orderPayRes.setPay_info(payReq.getPayInfo());
-        orderPayRes.setPayChannel(payReq.getPayChannel().getCode());
-        orderPayRes.setPay_amt(payReq.getOrderPrice().setScale(2, RoundingMode.HALF_UP).toString());
-        return orderPayRes;
-    }
-
-    @Override
-    public OrderRefundRes orderRefund(OrderRefundReq orderRefundReq) {
-        RefundReq refundReq = new RefundReq();
-        refundReq.setRefund_order_no(orderRefundReq.getTransNo());
-        refundReq.setRefund_amt(orderRefundReq.getRefundAmount());
-        refundReq.setId(orderRefundReq.getTransNo());
-        refundReq.setReason(orderRefundReq.getReason());
-        DeviceInfo deviceInfo = new DeviceInfo();
-        deviceInfo.setDevice_ip(orderRefundReq.getIpAddress());
-
-        refundReq.setDevice_info(deviceInfo);
-
-        //异步通知地址
-        refundReq.setNotify_url(HuifuConfiguration.getHuifuProperties().getNotifyUrl());
-        //付款请求
-        HttpResponseResult<Map<String, Object>> responseResult = paymentSdk.refundPayment(refundReq);
-
-        OrderRefundRes  orderRefundRes = new OrderRefundRes();
-        if (responseResult.getStatus()) {
-            Map<String, Object> data = responseResult.getData();
-            orderRefundRes.setTransNo(data.get("id").toString());
-            orderRefundRes.setPayTransNo(data.get("payment_id").toString());
-            orderRefundRes.setRefundOrderNo(data.get("refund_order_no").toString());
-            orderRefundRes.setRefundAmount(new BigDecimal(data.get("refund_amt").toString())
-                                                   .setScale(2,RoundingMode.HALF_UP).toString());
-            orderRefundRes.setRefundStatus(PayStatusEnum.pending);
-
-        } else {
-            orderRefundRes.setStatus(false);
-            orderRefundRes.setMessage(responseResult.getMsg());
-        }
-        return orderRefundRes;
-    }
-
-    @Override
-    public OrderCloseRes orderClose(OrderCloseReq closeReq) {
-        HttpResponseResult<Map<String, Object>> mapHttpResponseResult = paymentSdk.closePayment(closeReq.getPaymentId(),
-                                                                                                closeReq.getReason(),
-                                                                                                closeReq.getExpend());
-        OrderCloseRes closeRes = new OrderCloseRes();
-        if (!mapHttpResponseResult.getStatus()) {
-            closeRes.setFailMsg(mapHttpResponseResult.getMsg());
-            closeRes.setStatus(false);
-        }
-        return closeRes;
-    }
-}

+ 0 - 116
cooleshow-mall/mall-pay/src/main/java/com/yonge/cooleshow/util/DistributedLock.java

@@ -1,116 +0,0 @@
-package com.yonge.cooleshow.util;
-
-import org.redisson.api.RLock;
-import org.redisson.api.RedissonClient;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-import java.util.Objects;
-import java.util.concurrent.*;
-
-/**
- * 分布式竞争锁
- *
- * @author hgw
- */
-public class DistributedLock {
-    private final static Logger log = LoggerFactory.getLogger(DistributedLock.class);
-
-    private final RedissonClient redissonClient;
-
-    private static final long DEFAULT_TIMEOUT = 60L;// key过期时间默认1分钟后
-
-    private static final TimeUnit DEFAULT_TIME_UNIT = TimeUnit.SECONDS;//默认过期时间单位-秒钟
-
-    private DistributedLock(RedissonClient redissonClient) {
-        this.redissonClient = redissonClient;
-    }
-
-    public static DistributedLock of(RedissonClient redissonClient) {
-        return new DistributedLock(redissonClient);
-    }
-
-    /**
-     * 分布式锁-默认锁60秒
-     *
-     * @param lockName lockKey
-     * @param runnable 任务
-     * @return true 锁成功  false 锁失败
-     */
-    public boolean runIfLockCanGet(final String lockName, Runnable runnable) {
-        return runIfLockCanGet(lockName, runnable, DEFAULT_TIMEOUT, DEFAULT_TIME_UNIT);
-    }
-
-    /**
-     * 分布式锁
-     *
-     * @param lockName lockKey
-     * @param runnable 任务
-     * @param timeout  超时时间
-     * @param unit     超时时间单位
-     * @return true 锁成功  false 锁失败
-     */
-    public boolean runIfLockCanGet(final String lockName, Runnable runnable, final long timeout, TimeUnit unit) {
-        RLock lock = redissonClient.getLock(lockName);
-        if (Objects.isNull(lock)) {
-            log.info("runIfLockCanGet lock is null lockName : {}", lockName);
-            return false;
-        }
-        try {
-            if (lock.tryLock(0, timeout, unit)) {
-                if (Objects.nonNull(runnable)) {
-                    runnable.run();
-                }
-                return true;
-            } else {
-                return false;
-            }
-        } catch (Exception e) {
-            log.error("runIfLockCanGet error lockName : {}", lockName, e);
-            throw new RuntimeException("runIfLockCanGet error lockName :" + lockName, e);
-        } finally {
-            unlock(lock);
-        }
-    }
-
-    /**
-     * 分布式锁-异步
-     *
-     * @param lockName lockKey
-     * @param callable 任务
-     * @param timeout  超时时间
-     * @param unit     超时时间单位
-     * @return Future 异步任务
-     */
-    public <T> Future<T> callIfLockCanGet(final String lockName, Callable<T> callable, final long timeout, TimeUnit unit) {
-        RLock lock = redissonClient.getLock(lockName);
-        if (Objects.isNull(lock)) {
-            log.info("callIfLockCanGet lock is null lockName : {}", lockName);
-            return null;
-        }
-        ExecutorService executor = Executors.newCachedThreadPool();
-        try {
-            if (lock.tryLock(0, timeout, unit)) {
-                return executor.submit(callable);
-            } else {
-                return null;
-            }
-        } catch (Exception e) {
-            log.error("callIfLockCanGet error lockKey {}", lockName);
-            throw new RuntimeException("任务执行异常");
-        } finally {
-            executor.shutdown();
-            unlock(lock);
-        }
-    }
-
-    /**
-     * 解锁
-     */
-    public void unlock(RLock lock) {
-        if (lock.getHoldCount() != 0) {
-            lock.unlock();
-        }
-    }
-
-}

+ 25 - 24
cooleshow-mall/mall-portal/src/main/java/com/yonge/cooleshow/portal/controller/PaymentController.java

@@ -7,15 +7,13 @@ import com.yonge.cooleshow.auth.api.client.SysUserFeignService;
 import com.yonge.cooleshow.auth.api.entity.SysUser;
 import com.yonge.cooleshow.common.controller.BaseController;
 import com.yonge.cooleshow.common.entity.HttpResponseResult;
-import com.yonge.cooleshow.enums.OrderCacheEnum;
 import com.yonge.cooleshow.mall.common.enums.OrderCacheEnum;
 import com.yonge.cooleshow.mbg.model.UserOrderPayment;
 import com.yonge.cooleshow.portal.dto.OrderPayReq;
 import com.yonge.cooleshow.portal.dto.OrderPayRes;
+import com.yonge.cooleshow.portal.service.OmsPortalOrderReturnApplyService;
 import com.yonge.cooleshow.portal.service.OmsPortalOrderService;
 import com.yonge.cooleshow.portal.service.UserOrderPaymentService;
-import com.yonge.cooleshow.sdk.req.OrderPayReq;
-import com.yonge.cooleshow.sdk.res.OrderPayRes;
 import com.yonge.toolset.base.exception.BizException;
 import com.yonge.toolset.base.result.BaseResult;
 import com.yonge.toolset.payment.base.enums.MethodNameEnum;
@@ -72,6 +70,9 @@ public class PaymentController extends BaseController {
     private UserOrderPaymentService userOrderPaymentService;
 
     @Autowired
+    private OmsPortalOrderReturnApplyService portalOrderReturnApplyService;
+
+    @Autowired
     private RedissonClient redissonClient;
 
     @ApiOperation(value = "订单付款")
@@ -145,7 +146,7 @@ public class PaymentController extends BaseController {
             @PathVariable("payChannel") String payChannel,
             @PathVariable("payMethod") String payMethod,
             HttpServletRequest request
-    ) throws Exception {
+    ) {
         BaseResult<PaymentCallBack> res = paymentClient.analysisNotice(
                 OpenEnum.valueOf(openType), PayChannelEnum.valueOf(payChannel), MethodNameEnum.valueOf(payMethod), request);
         if(res.getStatus()){
@@ -159,7 +160,7 @@ public class PaymentController extends BaseController {
                 orderService.closePaymentCallBack(data);
             }else if(MethodNameEnum.refundPayment.equals(data.getMethodName())){
                 //退款
-                orderService.refundPaymentCallBack(data);
+                portalOrderReturnApplyService.refundPaymentCallBack(data);
             }
         }
         return res.getData().getResMsg();
@@ -167,24 +168,24 @@ public class PaymentController extends BaseController {
 
 
 
-    private Object wxAppCallbackHandle(String payMethod, HttpServletRequest request) throws Exception {
-        String merchantId = configPaymentService.getPaymentConfig(OpenEnum.ORIGINAL, WxpayConstant.WX_MERCHANT_ID).getParamValue();
-        String apiV3Key = configPaymentService.getPaymentConfig(OpenEnum.ORIGINAL, WxpayConstant.WX_API_V3_KEY).getParamValue();
-
-        //支付回调
-        if ("executePayment".equals(payMethod)) {
-            SignatureHeader header = new SignatureHeader();
-            header.setTimeStamp(request.getHeader("Wechatpay-Timestamp"));
-            header.setNonce(request.getHeader("Wechatpay-Nonce"));
-            header.setSerial(request.getHeader("Wechatpay-Serial"));
-            header.setSignature(request.getHeader("Wechatpay-Signature"));
-
-            String params = WebUtil.getBodyData(request);
-
-            WxPayOrderNotifyV3Result wxPayOrderNotifyV3Result = wxPayService.parseOrderNotifyV3Result(params, header);
-
-        }
-        return null;
-    }
+    // private Object wxAppCallbackHandle(String payMethod, HttpServletRequest request) throws Exception {
+    //     String merchantId = configPaymentService.getPaymentConfig(OpenEnum.ORIGINAL, WxpayConstant.WX_MERCHANT_ID).getParamValue();
+    //     String apiV3Key = configPaymentService.getPaymentConfig(OpenEnum.ORIGINAL, WxpayConstant.WX_API_V3_KEY).getParamValue();
+    //
+    //     //支付回调
+    //     if ("executePayment".equals(payMethod)) {
+    //         SignatureHeader header = new SignatureHeader();
+    //         header.setTimeStamp(request.getHeader("Wechatpay-Timestamp"));
+    //         header.setNonce(request.getHeader("Wechatpay-Nonce"));
+    //         header.setSerial(request.getHeader("Wechatpay-Serial"));
+    //         header.setSignature(request.getHeader("Wechatpay-Signature"));
+    //
+    //         String params = WebUtil.getBodyData(request);
+    //
+    //         WxPayOrderNotifyV3Result wxPayOrderNotifyV3Result = wxPayService.parseOrderNotifyV3Result(params, header);
+    //
+    //     }
+    //     return null;
+    // }
 
 }

+ 0 - 11
cooleshow-mall/mall-portal/src/main/java/com/yonge/cooleshow/portal/dto/OrderPayRes.java

@@ -23,9 +23,6 @@ public class OrderPayRes {
     @JsonIgnore
     private String message;
 
-    @ApiModelProperty(value = "支付状态",required = true)
-    @JsonIgnore
-    private PayStatusEnum payStatus;
 
 
     @ApiModelProperty(value = "订单编号",required = true)
@@ -71,14 +68,6 @@ public class OrderPayRes {
         this.message = message;
     }
 
-    public PayStatusEnum getPayStatus() {
-        return payStatus;
-    }
-
-    public void setPayStatus(PayStatusEnum payStatus) {
-        this.payStatus = payStatus;
-    }
-
     public String getOrderNo() {
         return orderNo;
     }

+ 3 - 0
cooleshow-mall/mall-portal/src/main/java/com/yonge/cooleshow/portal/service/OmsPortalOrderReturnApplyService.java

@@ -5,6 +5,7 @@ import com.yonge.cooleshow.portal.domain.OmsOrderReturnApplyParam;
 import com.yonge.cooleshow.portal.dto.OmsOrderReturnApplyResult;
 import com.yonge.cooleshow.portal.dto.OmsReturnApplyDto;
 import com.yonge.cooleshow.portal.dto.OmsReturnApplyQueryParam;
+import com.yonge.toolset.payment.base.model.callback.PaymentCallBack;
 
 import java.util.List;
 
@@ -30,4 +31,6 @@ public interface OmsPortalOrderReturnApplyService {
 
     /** 设置退货单号 */
     void setDeliverySn(OmsReturnApplyDto applyDto);
+
+    void refundPaymentCallBack(PaymentCallBack data);
 }

+ 0 - 6
cooleshow-mall/mall-portal/src/main/java/com/yonge/cooleshow/portal/service/OmsPortalOrderService.java

@@ -99,10 +99,4 @@ public interface OmsPortalOrderService {
      */
     void closePaymentCallBack(PaymentCallBack data);
 
-    /**
-     * 退款订单
-     *
-     * @param data
-     */
-    void refundPaymentCallBack(PaymentCallBack data);
 }

+ 59 - 2
cooleshow-mall/mall-portal/src/main/java/com/yonge/cooleshow/portal/service/impl/OmsPortalOrderReturnApplyServiceImpl.java

@@ -2,18 +2,25 @@ package com.yonge.cooleshow.portal.service.impl;
 
 import com.github.pagehelper.PageHelper;
 import com.yonge.cooleshow.mbg.mapper.OmsOrderReturnApplyMapper;
+import com.yonge.cooleshow.mbg.mapper.UserOrderRefundMapper;
 import com.yonge.cooleshow.mbg.model.OmsOrderReturnApply;
 import com.yonge.cooleshow.mbg.model.OmsOrderReturnApplyExample;
+import com.yonge.cooleshow.mbg.model.UserOrderRefund;
 import com.yonge.cooleshow.portal.dao.OmsOrderReturnApplyDao;
 import com.yonge.cooleshow.portal.domain.OmsOrderReturnApplyParam;
 import com.yonge.cooleshow.portal.dto.OmsOrderReturnApplyResult;
 import com.yonge.cooleshow.portal.dto.OmsReturnApplyDto;
 import com.yonge.cooleshow.portal.dto.OmsReturnApplyQueryParam;
 import com.yonge.cooleshow.portal.service.OmsPortalOrderReturnApplyService;
+import com.yonge.toolset.payment.base.enums.TradeStatusEnum;
+import com.yonge.toolset.payment.base.model.callback.PaymentCallBack;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 import org.springframework.beans.BeanUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
+import java.math.BigDecimal;
 import java.util.ArrayList;
 import java.util.Date;
 import java.util.List;
@@ -24,16 +31,22 @@ import java.util.List;
  */
 @Service
 public class OmsPortalOrderReturnApplyServiceImpl implements OmsPortalOrderReturnApplyService {
+
+    private static final Logger log = LoggerFactory.getLogger(OmsPortalOrderReturnApplyService.class);
+
     @Autowired
     private OmsOrderReturnApplyMapper returnApplyMapper;
 
     @Autowired
     private OmsOrderReturnApplyDao returnApplyDao;
 
+    @Autowired
+    private UserOrderRefundMapper userOrderRefundMapper;
+
     @Override
     public int create(OmsOrderReturnApplyParam returnApply) {
         OmsOrderReturnApply realApply = new OmsOrderReturnApply();
-        BeanUtils.copyProperties(returnApply,realApply);
+        BeanUtils.copyProperties(returnApply, realApply);
         realApply.setCreateTime(new Date());
         realApply.setStatus(0);
         return returnApplyMapper.insert(realApply);
@@ -41,7 +54,7 @@ public class OmsPortalOrderReturnApplyServiceImpl implements OmsPortalOrderRetur
 
     @Override
     public int delete(Long id) {
-        List<Integer> status  = new ArrayList<>();
+        List<Integer> status = new ArrayList<>();
         status.add(0);
         status.add(1);
         OmsOrderReturnApplyExample example = new OmsOrderReturnApplyExample();
@@ -68,4 +81,48 @@ public class OmsPortalOrderReturnApplyServiceImpl implements OmsPortalOrderRetur
         omsOrderReturnApply.setDeliverySn(applyDto.getDeliverySn());
         returnApplyMapper.updateByPrimaryKey(omsOrderReturnApply);
     }
+
+    @Override
+    public void refundPaymentCallBack(PaymentCallBack data) {
+        if (TradeStatusEnum.succeeded.equals(data.getStatus())) {//退款成功
+            paymentRefundSucceededHandle(data);
+        } else if (TradeStatusEnum.failed.equals(data.getStatus())) {//退款失败
+            paymentRefundFailedHandle(data, data.getErrMsg());
+        }
+    }
+
+    /**
+     * 退款失败
+     */
+    private void paymentRefundFailedHandle(PaymentCallBack data, String errMsg) {
+        if (data == null) {
+            return;
+        }
+        UserOrderRefund userOrderRefund = userOrderRefundMapper.selectByTransNo(
+                data.getRefundPaymentCallBack().getTransNo());
+        userOrderRefund.setArrivalTime(new Date());
+        userOrderRefund.setStatus(TradeStatusEnum.failed.getCode());
+        userOrderRefund.setPayFailMsg(errMsg);
+
+        userOrderRefundMapper.updateByPrimaryKeySelective(userOrderRefund);
+    }
+
+    /**
+     * 退款成功
+     */
+    private void paymentRefundSucceededHandle(PaymentCallBack data) {
+        if (data == null) {
+            return;
+        }
+        UserOrderRefund userOrderRefund = userOrderRefundMapper.selectByTransNo(
+                data.getRefundPaymentCallBack().getTransNo());
+        userOrderRefund.setArrivalTime(new Date());
+        userOrderRefund.setStatus(TradeStatusEnum.succeeded.getCode());
+
+        userOrderRefund.setFeeAmt(new BigDecimal(data.getRefundPaymentCallBack().getFeeAmt()));
+        userOrderRefund.setRefundAmt(new BigDecimal(data.getRefundPaymentCallBack().getRefundAmt()));
+
+        userOrderRefundMapper.updateByPrimaryKeySelective(userOrderRefund);
+    }
 }
+

+ 0 - 4
cooleshow-mall/mall-portal/src/main/java/com/yonge/cooleshow/portal/service/impl/OmsPortalOrderServiceImpl.java

@@ -577,10 +577,6 @@ public class OmsPortalOrderServiceImpl implements OmsPortalOrderService {
         }
     }
 
-    @Override
-    public void refundPaymentCallBack(PaymentCallBack data) {
-
-    }
 
 
 

+ 11 - 6
cooleshow-mall/mall-portal/src/main/java/com/yonge/cooleshow/portal/service/impl/UserOrderPaymentServiceImpl.java

@@ -3,8 +3,11 @@ package com.yonge.cooleshow.portal.service.impl;
 import com.yonge.cooleshow.mbg.mapper.UserOrderPaymentMapper;
 import com.yonge.cooleshow.mbg.model.UserOrderPayment;
 import com.yonge.cooleshow.portal.service.UserOrderPaymentService;
+import com.yonge.toolset.base.result.BaseResult;
+import com.yonge.toolset.payment.base.enums.OpenEnum;
 import com.yonge.toolset.payment.base.enums.PayChannelEnum;
 import com.yonge.toolset.payment.base.enums.TradeStatusEnum;
+import com.yonge.toolset.payment.base.model.ClosePayment;
 import com.yonge.toolset.payment.core.service.PaymentClient;
 import com.yonge.toolset.utils.string.StringUtil;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -70,13 +73,15 @@ public class UserOrderPaymentServiceImpl implements UserOrderPaymentService {
 
             //发送支付关单请求
             if (!StringUtil.isEmpty(orderPayment.getTransNo())) {
-                ClosePayment orderCloseReq = new ClosePayment();
-                orderCloseReq.setPaymentId(orderPayment.getTransNo());
-                orderCloseReq.setReason(message);
-                OrderCloseRes closeRes = paymentClient.closePayment(orderCloseReq);
-                if (!closeRes.isStatus()) {
+                ClosePayment closePayment = new ClosePayment(OpenEnum.valueOf(orderPayment.getOpenType()),
+                                                              PayChannelEnum.valueOf(orderPayment.getPayChannel()));
+                closePayment.setId(orderPayment.getTransNo());
+                closePayment.setReason(message);
+                closePayment.setPaymentNo(orderPayment.getAdapayNo());
+                BaseResult<ClosePayment> closePaymentBaseResult = paymentClient.closePayment(closePayment);
+                if (!closePaymentBaseResult.getStatus()) {
                     orderPayment.setCloseStatus(TradeStatusEnum.failed.getCode());
-                    orderPayment.setCloseFailMsg(closeRes.getFailMsg());
+                    orderPayment.setCloseFailMsg(closePaymentBaseResult.getMsg());
                 } else {
                     orderPayment.setCloseStatus(TradeStatusEnum.pending.getCode());
                 }

+ 0 - 1
cooleshow-mall/pom.xml

@@ -90,6 +90,5 @@
         <module>mall-admin</module>
         <module>mall-common</module>
         <module>mall-portal</module>
-        <module>mall-pay</module>
     </modules>
 </project>

+ 0 - 5
pom.xml

@@ -108,11 +108,6 @@
 				<artifactId>mall-common</artifactId>
 				<version>${project.cooleshow.version}</version>
 			</dependency>
-			<dependency>
-				<groupId>com.yonge.cooleshow</groupId>
-				<artifactId>mall-pay</artifactId>
-				<version>${project.cooleshow.version}</version>
-			</dependency>
 			<!--mall中MBG生成模块-->
 			<dependency>
 				<groupId>com.yonge.cooleshow</groupId>

+ 0 - 1
toolset/toolset-payment/pom.xml

@@ -35,7 +35,6 @@
             <groupId>com.baomidou</groupId>
             <artifactId>mybatis-plus-boot-starter</artifactId>
             <version>3.0.7.1</version>
-            <scope>provided</scope>
         </dependency>
         <!-- redisson -->
         <dependency>