Sfoglia il codice sorgente

引入支付宝的支付功能

YunaiV 3 anni fa
parent
commit
7ca756a234
14 ha cambiato i file con 146 aggiunte e 59 eliminazioni
  1. 1 1
      yudao-admin-server/src/main/java/cn/iocoder/yudao/adminserver/modules/system/service/sms/impl/SysSmsTemplateServiceImpl.java
  2. 14 0
      yudao-framework/yudao-spring-boot-starter-biz-pay/src/main/java/cn/iocoder/yudao/framework/pay/core/PayClient.java
  3. 10 0
      yudao-framework/yudao-spring-boot-starter-biz-pay/src/main/java/cn/iocoder/yudao/framework/pay/core/PayClientConfig.java
  4. 0 8
      yudao-framework/yudao-spring-boot-starter-biz-pay/src/main/java/cn/iocoder/yudao/framework/pay/core/aop/package-info.java
  5. 15 0
      yudao-framework/yudao-spring-boot-starter-biz-pay/src/main/java/cn/iocoder/yudao/framework/pay/core/client/AbstractPayClient.java
  6. 15 0
      yudao-framework/yudao-spring-boot-starter-biz-pay/src/main/java/cn/iocoder/yudao/framework/pay/core/client/alipay/AlipayPayClient.java
  7. 88 0
      yudao-framework/yudao-spring-boot-starter-biz-pay/src/main/java/cn/iocoder/yudao/framework/pay/core/client/alipay/AlipayPayConfig.java
  8. 1 0
      yudao-framework/yudao-spring-boot-starter-biz-pay/src/main/java/cn/iocoder/yudao/framework/pay/core/client/package-info.java
  9. 0 14
      yudao-framework/yudao-spring-boot-starter-biz-pay/src/main/java/cn/iocoder/yudao/framework/pay/core/gateway/ChannelNoticeService.java
  10. 0 13
      yudao-framework/yudao-spring-boot-starter-biz-pay/src/main/java/cn/iocoder/yudao/framework/pay/core/gateway/RefundService.java
  11. 0 13
      yudao-framework/yudao-spring-boot-starter-biz-pay/src/main/java/cn/iocoder/yudao/framework/pay/core/gateway/UnifiedOrderService.java
  12. 0 8
      yudao-framework/yudao-spring-boot-starter-biz-pay/src/main/java/cn/iocoder/yudao/framework/pay/core/package-info.java
  13. 1 1
      yudao-framework/yudao-spring-boot-starter-biz-sms/src/main/java/cn/iocoder/yudao/framework/sms/core/client/SmsClient.java
  14. 1 1
      yudao-framework/yudao-spring-boot-starter-biz-sms/src/main/java/cn/iocoder/yudao/framework/sms/core/client/impl/AbstractSmsClient.java

+ 1 - 1
yudao-admin-server/src/main/java/cn/iocoder/yudao/adminserver/modules/system/service/sms/impl/SysSmsTemplateServiceImpl.java

@@ -33,7 +33,7 @@ import static cn.iocoder.yudao.adminserver.modules.system.enums.SysErrorCodeCons
 import static cn.iocoder.yudao.framework.common.exception.util.ServiceExceptionUtil.exception;
 
 /**
- * 短信模板Service实现类
+ * 短信模板 Service 实现类
  *
  * @author zzf
  * @date 2021/1/25 9:25

+ 14 - 0
yudao-framework/yudao-spring-boot-starter-biz-pay/src/main/java/cn/iocoder/yudao/framework/pay/core/PayClient.java

@@ -0,0 +1,14 @@
+package cn.iocoder.yudao.framework.pay.core;
+
+import cn.iocoder.yudao.framework.common.pojo.CommonResult;
+
+/**
+ * 支付客户端,用于对接各支付渠道的 SDK,实现发起支付、退款等功能
+ *
+ * @author 芋道源码
+ */
+public interface PayClient {
+
+    CommonResult<String> unifiedOrder();
+
+}

+ 10 - 0
yudao-framework/yudao-spring-boot-starter-biz-pay/src/main/java/cn/iocoder/yudao/framework/pay/core/PayClientConfig.java

@@ -0,0 +1,10 @@
+package cn.iocoder.yudao.framework.pay.core;
+
+/**
+ * 支付客户端的配置,本质是支付渠道的配置
+ * 每个不同的渠道,需要不同的配置,通过子类来定义
+ *
+ * @author 芋道源码
+ */
+public interface PayClientConfig {
+}

+ 0 - 8
yudao-framework/yudao-spring-boot-starter-biz-pay/src/main/java/cn/iocoder/yudao/framework/pay/core/aop/package-info.java

@@ -1,8 +0,0 @@
-/**
- * @description
- * @author Qingchen
- * @version 1.0.0
- * @date 2021-09-29 14:59
- * @class cn.iocoder.yudao.framework.pay.core.aop.package-info.java
- */
-package cn.iocoder.yudao.framework.pay.core.aop;

+ 15 - 0
yudao-framework/yudao-spring-boot-starter-biz-pay/src/main/java/cn/iocoder/yudao/framework/pay/core/client/AbstractPayClient.java

@@ -0,0 +1,15 @@
+package cn.iocoder.yudao.framework.pay.core.client;
+
+import cn.iocoder.yudao.framework.pay.core.PayClient;
+import com.alipay.api.DefaultAlipayClient;
+
+/**
+ * 支付客户端的抽象类,提供模板方法,减少子类的冗余代码
+ *
+ * @author 芋道源码
+ */
+public abstract class AbstractPayClient implements PayClient {
+
+
+
+}

File diff suppressed because it is too large
+ 15 - 0
yudao-framework/yudao-spring-boot-starter-biz-pay/src/main/java/cn/iocoder/yudao/framework/pay/core/client/alipay/AlipayPayClient.java


+ 88 - 0
yudao-framework/yudao-spring-boot-starter-biz-pay/src/main/java/cn/iocoder/yudao/framework/pay/core/client/alipay/AlipayPayConfig.java

@@ -0,0 +1,88 @@
+package cn.iocoder.yudao.framework.pay.core.client.alipay;
+
+import lombok.Data;
+
+// TODO 芋艿:参数校验
+/**
+ * 支付宝的 PayClientConfig 实现类
+ * 属性主要来自 {@link com.alipay.api.AlipayConfig} 的必要属性
+ *
+ * @author 芋道源码
+ */
+@Data
+public class AlipayPayConfig {
+
+    /**
+     * 网关地址 - 线上
+     */
+    private static final String SERVER_URL_PROD = "https://openapi.alipay.com/gateway.do";
+    /**
+     * 网关地址 - 沙箱
+     */
+    private static final String SERVER_URL_SANDBOX = "https://openapi.alipay.com/gateway.do";
+
+    /**
+     * 公钥类型 - 公钥模式
+     */
+    private static final Integer MODE_PUBLIC_KEY = 1;
+    /**
+     * 公钥类型 - 证书模式
+     */
+    private static final Integer MODE_CERTIFICATE = 2;
+
+    /**
+     * 签名算法类型 - RSA
+     */
+    private static final String SIGN_TYPE_DEFAULT = "RSA2";
+
+    /**
+     * 网关地址
+     * 1. {@link #SERVER_URL_PROD}
+     * 2. {@link #SERVER_URL_SANDBOX}
+     */
+    private String serverUrl;
+
+    /**
+     * 开放平台上创建的应用的 ID
+     */
+    private String appId;
+
+    /**
+     * 签名算法类型,推荐:RSA2
+     *
+     * {@link #SIGN_TYPE_DEFAULT}
+     */
+    private String signType;
+
+    /**
+     * 公钥类型
+     * 1. {@link #MODE_PUBLIC_KEY} 情况,privateKey + alipayPublicKey
+     * 2. {@link #MODE_CERTIFICATE} 情况,appCertContent + alipayPublicCertContent + rootCertContent
+     */
+    private Integer mode;
+
+    // ========== 公钥模式 ==========
+    /**
+     * 商户私钥
+     */
+    private String privateKey;
+    /**
+     * 支付宝公钥字符串
+     */
+    private String alipayPublicKey;
+
+    // ========== 证书模式 ==========
+    /**
+     * 指定商户公钥应用证书内容字符串
+     */
+    private String appCertContent;
+    /**
+     * 指定支付宝公钥证书内容字符串
+     */
+    private String alipayPublicCertContent;
+    /**
+     * 指定根证书内容字符串
+     */
+    private String rootCertContent;
+
+}

+ 1 - 0
yudao-framework/yudao-spring-boot-starter-biz-pay/src/main/java/cn/iocoder/yudao/framework/pay/core/client/package-info.java

@@ -0,0 +1 @@
+package cn.iocoder.yudao.framework.pay.core.client;

+ 0 - 14
yudao-framework/yudao-spring-boot-starter-biz-pay/src/main/java/cn/iocoder/yudao/framework/pay/core/gateway/ChannelNoticeService.java

@@ -1,14 +0,0 @@
-package cn.iocoder.yudao.framework.pay.core.gateway;
-/**
- * @description 渠道侧的通知网关服务,分为同步跳转(doReturn)和异步回调(doNotify)
- * @author Qingchen
- * @version 1.0.0
- * @date 2021-10-09 14:34
- * @class cn.iocoder.yudao.framework.pay.core.gateway.ChannelNoticeService.java
- */
-public interface ChannelNoticeService {
-
-
-
-
-}

+ 0 - 13
yudao-framework/yudao-spring-boot-starter-biz-pay/src/main/java/cn/iocoder/yudao/framework/pay/core/gateway/RefundService.java

@@ -1,13 +0,0 @@
-package cn.iocoder.yudao.framework.pay.core.gateway;
-/**
- * @description 退款网关服务
- * @author Qingchen
- * @version 1.0.0
- * @date 2021-10-09 16:07
- * @class cn.iocoder.yudao.framework.pay.core.gateway.RefundService.java
- */
-public interface RefundService {
-
-
-
-}

+ 0 - 13
yudao-framework/yudao-spring-boot-starter-biz-pay/src/main/java/cn/iocoder/yudao/framework/pay/core/gateway/UnifiedOrderService.java

@@ -1,13 +0,0 @@
-package cn.iocoder.yudao.framework.pay.core.gateway;
-/**
- * @description 统一下单网关服务
- * @author Qingchen
- * @version 1.0.0
- * @date 2021-09-29 16:14
- * @class cn.iocoder.yudao.framework.pay.core.gateway.UnifiedOrderService.java
- */
-public interface UnifiedOrderService {
-
-
-
-}

+ 0 - 8
yudao-framework/yudao-spring-boot-starter-biz-pay/src/main/java/cn/iocoder/yudao/framework/pay/core/package-info.java

@@ -1,8 +0,0 @@
-/**
- * @description
- * @author Qingchen
- * @version 1.0.0
- * @date 2021-09-29 14:34
- * @class cn.iocoder.yudao.framework.pay.core.package-info.java
- */
-package cn.iocoder.yudao.framework.pay.core;

+ 1 - 1
yudao-framework/yudao-spring-boot-starter-biz-sms/src/main/java/cn/iocoder/yudao/framework/sms/core/client/SmsClient.java

@@ -8,7 +8,7 @@ import cn.iocoder.yudao.framework.sms.core.client.dto.SmsTemplateRespDTO;
 import java.util.List;
 
 /**
- * 短信客户端接口
+ * 短信客户端,用于对接各短信平台的 SDK,实现短信发送等功能
  *
  * @author zzf
  * @date 2021/1/25 14:14

+ 1 - 1
yudao-framework/yudao-spring-boot-starter-biz-sms/src/main/java/cn/iocoder/yudao/framework/sms/core/client/impl/AbstractSmsClient.java

@@ -13,7 +13,7 @@ import lombok.extern.slf4j.Slf4j;
 import java.util.List;
 
 /**
- * 短信客户端抽象类
+ * 短信客户端抽象类,提供模板方法,减少子类的冗余代码
  *
  * @author zzf
  * @date 2021/2/1 9:28

Some files were not shown because too many files changed in this diff