Przeglądaj źródła

支付接口封装到一半

mac 2 lat temu
rodzic
commit
9d3a6cd1ff

+ 4 - 0
kxs-common/kxs-common-pay/pom.xml

@@ -17,6 +17,10 @@
         <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
     </properties>
     <dependencies>
+        <dependency>
+            <groupId>com.kxs</groupId>
+            <artifactId>kxs-common-core</artifactId>
+        </dependency>
         <dependency>
             <groupId>com.alipay.sdk</groupId>
             <artifactId>alipay-sdk-java</artifactId>

+ 1 - 1
kxs-common/kxs-common-pay/src/main/java/com/kxs/common/pay/config/AliPayAccountConfig.java

@@ -11,7 +11,7 @@ import org.springframework.stereotype.Component;
  * @date 2024-04-24
  */
 @Data
-@ConfigurationProperties(prefix = "alipay")
+@ConfigurationProperties(prefix = "pay.alipay")
 @Component
 public class AliPayAccountConfig {
     /**

+ 33 - 0
kxs-common/kxs-common-pay/src/main/java/com/kxs/common/pay/enums/PayStatusCommEnum.java

@@ -0,0 +1,33 @@
+package com.kxs.common.pay.enums;
+
+import lombok.AllArgsConstructor;
+import lombok.Getter;
+
+/**
+ * 支付状态
+ *
+ * @author 没秃顶的码农
+ * @date 2024-04-24
+ */
+@Getter
+@AllArgsConstructor
+public enum PayStatusCommEnum {
+
+    /**
+     * 等待买家付款
+     */
+    WAIT_BUYER_PAY,
+    /**
+     * 未付款交易超时关闭,或支付完成后全额退款
+     */
+    TRADE_CLOSED,
+    /**
+     * 交易成功
+     */
+    TRADE_SUCCESS,
+    /**
+     * 交易完成
+     */
+    TRADE_FINISHED
+
+}

+ 34 - 0
kxs-common/kxs-common-pay/src/main/java/com/kxs/common/pay/handlers/PaymentFactory.java

@@ -0,0 +1,34 @@
+package com.kxs.common.pay.handlers;
+
+import com.kxs.common.core.exception.GlobalCustomerException;
+import com.kxs.common.pay.enums.PayPlatformEnum;
+import com.kxs.common.pay.service.PayService;
+import com.kxs.common.pay.service.ali.AliPayService;
+import com.kxs.common.pay.service.wechat.WxPayService;
+import lombok.RequiredArgsConstructor;
+import org.springframework.stereotype.Component;
+
+/**
+ * 支付工厂类
+ *
+ * @author 没秃顶的码农
+ * @date 2024-04-26
+ */
+@Component
+@RequiredArgsConstructor
+public class PaymentFactory {
+
+    private final AliPayService aliPayService;
+
+    private final WxPayService wxPayService;
+
+    public PayService getPayService(String payMethod) {
+        if (payMethod.equalsIgnoreCase(PayPlatformEnum.ALIPAY.getType())) {
+            return aliPayService;
+        } else if (payMethod.equalsIgnoreCase(PayPlatformEnum.WX.getType())) {
+            return wxPayService;
+        } else {
+            throw new GlobalCustomerException("Invalid payment method");
+        }
+    }
+}

+ 19 - 0
kxs-common/kxs-common-pay/src/main/java/com/kxs/common/pay/model/PayResponse.java

@@ -0,0 +1,19 @@
+package com.kxs.common.pay.model;
+
+import com.kxs.common.pay.enums.PayPlatformEnum;
+import lombok.Data;
+
+/**
+ * 支付响应公共类
+ *
+ * @author 没秃顶的码农
+ * @date 2024-04-24
+ */
+@Data
+public class PayResponse {
+
+    /**
+     * 支付平台枚举
+     */
+    private PayPlatformEnum payPlatformEnum;
+}

+ 26 - 0
kxs-common/kxs-common-pay/src/main/java/com/kxs/common/pay/model/QueryRequest.java

@@ -0,0 +1,26 @@
+package com.kxs.common.pay.model;
+
+import com.kxs.common.pay.enums.PayPlatformEnum;
+import lombok.Data;
+
+/**
+ * 查询请求
+ *
+ * @author 没秃顶的码农
+ * @date 2024-04-24
+ */
+@Data
+public class QueryRequest {
+
+    /**
+     * 支付类型枚举
+     */
+    private PayPlatformEnum payTypeEnum;
+
+    /**
+     * 商户网站唯一订单号
+     */
+    private String outTradeNo;
+
+
+}

+ 47 - 0
kxs-common/kxs-common-pay/src/main/java/com/kxs/common/pay/model/QueryResponse.java

@@ -0,0 +1,47 @@
+package com.kxs.common.pay.model;
+
+import com.kxs.common.pay.enums.PayPlatformEnum;
+import com.kxs.common.pay.enums.PayStatusCommEnum;
+import lombok.Data;
+
+import java.math.BigDecimal;
+
+/**
+ * 查询响应公共类
+ *
+ * @author 没秃顶的码农
+ * @date 2024-04-24
+ */
+@Data
+public class QueryResponse {
+
+    /**
+     * 支付平台枚举
+     */
+    private PayPlatformEnum payPlatformEnum;
+
+    /**
+     * 商户网站唯一订单号
+     */
+    private String outTradeNo;
+
+    /**
+     * 支付宝交易号
+     */
+    private String tradeNo;
+
+    /**
+     * 买家支付宝账号
+     */
+    private String buyerLogonId;
+
+    /**
+     * 支付状态
+     */
+    private PayStatusCommEnum tradeStatus;
+
+    /**
+     * 交易的订单金额 元
+     */
+    private BigDecimal totalAmount;
+}

+ 10 - 0
kxs-common/kxs-common-pay/src/main/java/com/kxs/common/pay/service/PayService.java

@@ -2,6 +2,8 @@ package com.kxs.common.pay.service;
 
 import com.kxs.common.pay.model.PayRequest;
 import com.kxs.common.pay.model.PayResponse;
+import com.kxs.common.pay.model.QueryRequest;
+import com.kxs.common.pay.model.QueryResponse;
 
 /**
  * 支付公共接口服务
@@ -11,5 +13,13 @@ import com.kxs.common.pay.model.PayResponse;
  */
 public interface PayService {
 
+    /**
+     * 支付
+     */
     PayResponse pay(PayRequest payReq);
+
+    /**
+     * 查询
+     */
+    QueryResponse query(QueryRequest queryReq);
 }

+ 7 - 0
kxs-common/kxs-common-pay/src/main/java/com/kxs/common/pay/service/ali/AliPayService.java

@@ -3,6 +3,8 @@ package com.kxs.common.pay.service.ali;
 import com.alipay.api.AlipayClient;
 import com.kxs.common.pay.model.PayRequest;
 import com.kxs.common.pay.model.PayResponse;
+import com.kxs.common.pay.model.QueryRequest;
+import com.kxs.common.pay.model.QueryResponse;
 import com.kxs.common.pay.service.PayService;
 import lombok.RequiredArgsConstructor;
 import org.springframework.stereotype.Service;
@@ -22,4 +24,9 @@ public class AliPayService implements PayService {
     public PayResponse pay(PayRequest payReq) {
         return null;
     }
+
+    @Override
+    public QueryResponse query(QueryRequest queryReq) {
+        return null;
+    }
 }

+ 25 - 12
kxs-common/kxs-common-pay/src/main/java/com/kxs/common/pay/service/wechat/WxPayService.java

@@ -1,12 +1,25 @@
-//package com.kxs.common.pay.service.wechat;
-//
-//import com.kxs.common.pay.service.PayService;
-//
-///**
-// * 微信支付 服务
-// *
-// * @author 没秃顶的码农
-// * @date 2024-04-24
-// */
-//public class WxPayService implements PayService {
-//}
+package com.kxs.common.pay.service.wechat;
+
+import com.kxs.common.pay.model.PayRequest;
+import com.kxs.common.pay.model.PayResponse;
+import com.kxs.common.pay.model.QueryRequest;
+import com.kxs.common.pay.model.QueryResponse;
+import com.kxs.common.pay.service.PayService;
+
+/**
+ * 微信支付 服务
+ *
+ * @author 没秃顶的码农
+ * @date 2024-04-24
+ */
+public class WxPayService implements PayService {
+    @Override
+    public PayResponse pay(PayRequest payReq) {
+        return null;
+    }
+
+    @Override
+    public QueryResponse query(QueryRequest queryReq) {
+        return null;
+    }
+}

+ 1 - 0
kxs-common/kxs-common-pay/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports

@@ -0,0 +1 @@
+com.kxs.common.pay.config.PayConfig

+ 5 - 0
pom.xml

@@ -255,6 +255,11 @@
                 <artifactId>kxs-common-mq</artifactId>
                 <version>${project.version}</version>
             </dependency>
+            <dependency>
+                <groupId>com.kxs</groupId>
+                <artifactId>kxs-common-pay</artifactId>
+                <version>${project.version}</version>
+            </dependency>