mac пре 2 година
родитељ
комит
0770893c10

+ 12 - 1
kxs-common/kxs-common-pay/pom.xml

@@ -16,5 +16,16 @@
         <maven.compiler.target>17</maven.compiler.target>
         <maven.compiler.target>17</maven.compiler.target>
         <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
         <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
     </properties>
     </properties>
-
+    <dependencies>
+        <dependency>
+            <groupId>com.alipay.sdk</groupId>
+            <artifactId>alipay-sdk-java</artifactId>
+            <version>4.39.48.ALL</version>
+        </dependency>
+        <dependency>
+            <groupId>cn.springboot</groupId>
+            <artifactId>best-pay-sdk</artifactId>
+            <version>1.3.7</version>
+        </dependency>
+    </dependencies>
 </project>
 </project>

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

@@ -0,0 +1,43 @@
+package com.kxs.common.pay.config;
+
+import lombok.Data;
+import org.springframework.boot.context.properties.ConfigurationProperties;
+import org.springframework.stereotype.Component;
+
+/**
+ * 支付宝账户配置
+ *
+ * @author 没秃顶的码农
+ * @date 2024-04-24
+ */
+@Data
+@ConfigurationProperties(prefix = "alipay")
+@Component
+public class AliPayAccountConfig {
+    /**
+     * appId
+     */
+    private String appId;
+    /**
+     * 商户私钥
+     */
+    private String privateKey;
+    /**
+     * 支付宝公钥
+     */
+    private String aliPayPublicKey;
+    /**
+     * 异步通知url
+     */
+    private String notifyUrl;
+
+    /**
+     * 同步返回的url
+     */
+    private String returnUrl;
+
+    /**
+     * 是否使用沙箱
+     */
+    private Boolean sandbox;
+}

+ 61 - 0
kxs-common/kxs-common-pay/src/main/java/com/kxs/common/pay/config/PayConfig.java

@@ -0,0 +1,61 @@
+package com.kxs.common.pay.config;
+
+import com.alipay.api.AlipayApiException;
+import com.alipay.api.AlipayClient;
+import com.alipay.api.AlipayConfig;
+import com.alipay.api.DefaultAlipayClient;
+import com.kxs.common.pay.service.PayService;
+import com.kxs.common.pay.service.ali.AliPayService;
+import com.lly835.bestpay.config.AliPayConfig;
+import com.lly835.bestpay.config.WxPayConfig;
+import com.lly835.bestpay.service.impl.BestPayServiceImpl;
+import lombok.AllArgsConstructor;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.boot.context.properties.EnableConfigurationProperties;
+import org.springframework.context.annotation.Bean;
+import org.springframework.context.annotation.Configuration;
+
+/**
+ * 支付配置
+ *
+ * @author 没秃顶的码农
+ * @date 2024-04-24
+ */
+@Configuration(proxyBeanMethods = false)
+@EnableConfigurationProperties({AliPayAccountConfig.class, WechatAccountConfig.class})
+@AllArgsConstructor
+public class PayConfig {
+
+    private final WechatAccountConfig accountConfig;
+
+    private final AliPayAccountConfig aliPayAccountConfig;
+
+    @Bean
+    public WxPayConfig wxPayConfig() {
+        WxPayConfig wxPayConfig = new WxPayConfig();
+        wxPayConfig.setAppId(accountConfig.getMpAppId());
+        wxPayConfig.setMiniAppId(accountConfig.getMiniAppId());
+        wxPayConfig.setMchId(accountConfig.getMchId());
+        wxPayConfig.setMchKey(accountConfig.getMchKey());
+        wxPayConfig.setKeyPath(accountConfig.getKeyPath());
+        wxPayConfig.setNotifyUrl(accountConfig.getNotifyUrl());
+        wxPayConfig.setAppAppId(accountConfig.getAppAppId());
+        return wxPayConfig;
+    }
+
+    @Bean
+    public AlipayClient alipayClient() throws AlipayApiException {
+        AlipayConfig aliPayConfig = new AlipayConfig();
+        aliPayConfig.setAppId(aliPayAccountConfig.getAppId());
+        aliPayConfig.setPrivateKey(aliPayAccountConfig.getPrivateKey());
+        aliPayConfig.setAlipayPublicKey(aliPayAccountConfig.getAliPayPublicKey());
+        return new DefaultAlipayClient(aliPayConfig);
+    }
+
+
+    @Bean
+    public PayService payService(AlipayClient alipayClient) {
+
+        return new AliPayService(alipayClient);
+    }
+}

+ 60 - 0
kxs-common/kxs-common-pay/src/main/java/com/kxs/common/pay/config/WechatAccountConfig.java

@@ -0,0 +1,60 @@
+package com.kxs.common.pay.config;
+
+import lombok.Data;
+import org.springframework.boot.context.properties.ConfigurationProperties;
+import org.springframework.stereotype.Component;
+
+/**
+ * 微信支付配置
+ *
+ * @author 没秃顶的码农
+ * @date 2024-04-24
+ */
+@Data
+@ConfigurationProperties(prefix = "wechat")
+@Component
+public class WechatAccountConfig {
+    /**
+     * 公众账号appid
+     * 获取地址 https://mp.weixin.qq.com
+     */
+    private String mpAppId;
+
+    /**
+     * 小程序appId
+     * 获取地址 https://mp.weixin.qq.com
+     */
+    private String miniAppId;
+
+    /**
+     * 小程序appSecret
+     */
+    private String miniAppSecret;
+
+    /**
+     * 商户号
+     * 获取地址 https://pay.weixin.qq.com
+     */
+    private String mchId;
+
+    /**
+     * 商户密钥
+     */
+    private String mchKey;
+
+    /**
+     * 商户证书路径
+     */
+    private String keyPath;
+
+    /**
+     * 微信支付异步通知地址
+     */
+    private String notifyUrl;
+
+    /**
+     * app应用appid
+     * 获取地址 https://open.weixin.qq.com
+     */
+    private String appAppId;
+}

+ 24 - 0
kxs-common/kxs-common-pay/src/main/java/com/kxs/common/pay/enums/PayPlatformEnum.java

@@ -0,0 +1,24 @@
+package com.kxs.common.pay.enums;
+
+import lombok.AllArgsConstructor;
+import lombok.Getter;
+
+/**
+ * 支付平台枚举
+ *
+ * @author 没秃顶的码农
+ * @date 2024-04-24
+ */
+@Getter
+@AllArgsConstructor
+public enum PayPlatformEnum {
+
+    ALIPAY("alipay", "支付宝"),
+    WX("wx", "微信");
+
+    //状态码
+    private final String type;
+    //状态码码描述
+    private final String description;
+
+}

+ 39 - 0
kxs-common/kxs-common-pay/src/main/java/com/kxs/common/pay/model/PayRequest.java

@@ -0,0 +1,39 @@
+package com.kxs.common.pay.model;
+
+import com.kxs.common.pay.enums.PayPlatformEnum;
+import lombok.Data;
+
+/**
+ * 付款请求
+ *
+ * @author 没秃顶的码农
+ * @date 2024-04-24
+ */
+@Data
+public class PayRequest {
+
+    /**
+     * 支付类型枚举
+     */
+    private PayPlatformEnum payTypeEnum;
+
+    /**
+     * 商户网站唯一订单号
+     */
+    private String outTradeNo;
+
+    /**
+     * 订单总金额,单位为元,精确到小数点后两位
+     */
+    private Double totalAmount;
+
+    /**
+     * 订单标题
+     */
+    private String subject;
+
+    /**
+     * 订单包含的商品列表信息,json格式
+     */
+    private String goodsDetail;
+}

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

@@ -0,0 +1,15 @@
+package com.kxs.common.pay.service;
+
+import com.kxs.common.pay.model.PayRequest;
+import com.kxs.common.pay.model.PayResponse;
+
+/**
+ * 支付公共接口服务
+ *
+ * @author 没秃顶的码农
+ * @date 2024-04-24
+ */
+public interface PayService {
+
+    PayResponse pay(PayRequest payReq);
+}

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

@@ -0,0 +1,25 @@
+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.service.PayService;
+import lombok.RequiredArgsConstructor;
+import org.springframework.stereotype.Service;
+
+/**
+ * 支付宝支付服务
+ *
+ * @author 没秃顶的码农
+ * @date 2024-04-24
+ */
+@RequiredArgsConstructor
+public class AliPayService implements PayService {
+
+    private final AlipayClient alipayClient;
+
+    @Override
+    public PayResponse pay(PayRequest payReq) {
+        return null;
+    }
+}

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

@@ -0,0 +1,12 @@
+//package com.kxs.common.pay.service.wechat;
+//
+//import com.kxs.common.pay.service.PayService;
+//
+///**
+// * 微信支付 服务
+// *
+// * @author 没秃顶的码农
+// * @date 2024-04-24
+// */
+//public class WxPayService implements PayService {
+//}