Commit 81126b2b4b9923b5f56ebdfa1783e63a6e736054
1 parent
711a0740
1. 引入 IJPay 组件
2. 增加创建支付单的 Service 实现
Showing
36 changed files
with
586 additions
and
84 deletions
yudao-admin-server/pom.xml
| @@ -122,11 +122,11 @@ | @@ -122,11 +122,11 @@ | ||
| 122 | <artifactId>screw-core</artifactId> <!-- 实现数据库文档 --> | 122 | <artifactId>screw-core</artifactId> <!-- 实现数据库文档 --> |
| 123 | </dependency> | 123 | </dependency> |
| 124 | 124 | ||
| 125 | - <!-- TODO 后续看情况,进行调整 --> | 125 | + <!-- 三方云服务相关 --> |
| 126 | + | ||
| 126 | <dependency> | 127 | <dependency> |
| 127 | <groupId>com.xkcoding.justauth</groupId> | 128 | <groupId>com.xkcoding.justauth</groupId> |
| 128 | <artifactId>justauth-spring-boot-starter</artifactId> | 129 | <artifactId>justauth-spring-boot-starter</artifactId> |
| 129 | - <version>1.4.0</version> | ||
| 130 | </dependency> | 130 | </dependency> |
| 131 | </dependencies> | 131 | </dependencies> |
| 132 | 132 |
yudao-admin-server/src/main/java/cn/iocoder/yudao/adminserver/modules/pay/dal/dataobject/package-info.java deleted
| 1 | -package cn.iocoder.yudao.adminserver.modules.pay.dal.dataobject; |
yudao-core-service/pom.xml
| @@ -32,6 +32,10 @@ | @@ -32,6 +32,10 @@ | ||
| 32 | <groupId>cn.iocoder.boot</groupId> | 32 | <groupId>cn.iocoder.boot</groupId> |
| 33 | <artifactId>yudao-spring-boot-starter-biz-sms</artifactId> | 33 | <artifactId>yudao-spring-boot-starter-biz-sms</artifactId> |
| 34 | </dependency> | 34 | </dependency> |
| 35 | + <dependency> | ||
| 36 | + <groupId>cn.iocoder.boot</groupId> | ||
| 37 | + <artifactId>yudao-spring-boot-starter-biz-pay</artifactId> | ||
| 38 | + </dependency> | ||
| 35 | 39 | ||
| 36 | <!-- Web 相关 --> | 40 | <!-- Web 相关 --> |
| 37 | <dependency> | 41 | <dependency> |
yudao-core-service/src/main/java/cn/iocoder/yudao/coreservice/modules/infra/dal/dataobject/config/InfConfigDO.java
yudao-core-service/src/main/java/cn/iocoder/yudao/coreservice/modules/pay/convert/order/PayOrderCoreServiceConvert.java
0 → 100644
| 1 | +package cn.iocoder.yudao.coreservice.modules.pay.convert.order; | ||
| 2 | + | ||
| 3 | +import cn.iocoder.yudao.coreservice.modules.pay.dal.dataobject.order.PayOrderDO; | ||
| 4 | +import cn.iocoder.yudao.coreservice.modules.pay.service.order.dto.PayOrderCreateReqDTO; | ||
| 5 | +import org.mapstruct.Mapper; | ||
| 6 | +import org.mapstruct.factory.Mappers; | ||
| 7 | + | ||
| 8 | +@Mapper | ||
| 9 | +public interface PayOrderCoreServiceConvert { | ||
| 10 | + | ||
| 11 | + PayOrderCoreServiceConvert INSTANCE = Mappers.getMapper(PayOrderCoreServiceConvert.class); | ||
| 12 | + | ||
| 13 | + PayOrderDO convert(PayOrderCreateReqDTO bean); | ||
| 14 | + | ||
| 15 | +} |
yudao-core-service/src/main/java/cn/iocoder/yudao/coreservice/modules/pay/convert/package-info.java
0 → 100644
yudao-core-service/src/main/java/cn/iocoder/yudao/coreservice/modules/pay/convert/《芋道 Spring Boot 对象转换 MapStruct 入门》.md
0 → 100644
| 1 | +<http://www.iocoder.cn/Spring-Boot/MapStruct/?yudao> |
yudao-admin-server/src/main/java/cn/iocoder/yudao/adminserver/modules/pay/dal/dataobject/merchant/PayAppDO.java renamed to yudao-core-service/src/main/java/cn/iocoder/yudao/coreservice/modules/pay/dal/dataobject/merchant/PayAppDO.java
| 1 | -package cn.iocoder.yudao.adminserver.modules.pay.dal.dataobject.merchant; | 1 | +package cn.iocoder.yudao.coreservice.modules.pay.dal.dataobject.merchant; |
| 2 | 2 | ||
| 3 | import cn.iocoder.yudao.framework.common.enums.CommonStatusEnum; | 3 | import cn.iocoder.yudao.framework.common.enums.CommonStatusEnum; |
| 4 | import cn.iocoder.yudao.framework.mybatis.core.dataobject.BaseDO; | 4 | import cn.iocoder.yudao.framework.mybatis.core.dataobject.BaseDO; |
| @@ -23,11 +23,6 @@ public class PayAppDO extends BaseDO { | @@ -23,11 +23,6 @@ public class PayAppDO extends BaseDO { | ||
| 23 | @TableId | 23 | @TableId |
| 24 | private Long id; | 24 | private Long id; |
| 25 | /** | 25 | /** |
| 26 | - * 应用号 | ||
| 27 | - * 例如说,60cc81e0e4b06afc4d3f0cfq | ||
| 28 | - */ | ||
| 29 | - private String no; | ||
| 30 | - /** | ||
| 31 | * 应用名 | 26 | * 应用名 |
| 32 | */ | 27 | */ |
| 33 | private String name; | 28 | private String name; |
| @@ -46,6 +41,14 @@ public class PayAppDO extends BaseDO { | @@ -46,6 +41,14 @@ public class PayAppDO extends BaseDO { | ||
| 46 | * TODO 芋艿:用途 | 41 | * TODO 芋艿:用途 |
| 47 | */ | 42 | */ |
| 48 | private String secret; | 43 | private String secret; |
| 44 | + /** | ||
| 45 | + * 支付结果的回调地址 | ||
| 46 | + */ | ||
| 47 | + private String payNotifyUrl; | ||
| 48 | + /** | ||
| 49 | + * 退款结果的回调地址 | ||
| 50 | + */ | ||
| 51 | + private String refundNotifyUrl; | ||
| 49 | 52 | ||
| 50 | /** | 53 | /** |
| 51 | * 商户编号 | 54 | * 商户编号 |
yudao-admin-server/src/main/java/cn/iocoder/yudao/adminserver/modules/pay/dal/dataobject/merchant/PayChannelDO.java renamed to yudao-core-service/src/main/java/cn/iocoder/yudao/coreservice/modules/pay/dal/dataobject/merchant/PayChannelDO.java
| 1 | -package cn.iocoder.yudao.adminserver.modules.pay.dal.dataobject.merchant; | 1 | +package cn.iocoder.yudao.coreservice.modules.pay.dal.dataobject.merchant; |
| 2 | 2 | ||
| 3 | -import cn.iocoder.yudao.adminserver.modules.pay.enums.PayChannelCodeEnum; | 3 | +import cn.iocoder.yudao.coreservice.modules.pay.enums.merchant.PayChannelCodeEnum; |
| 4 | import cn.iocoder.yudao.framework.common.enums.CommonStatusEnum; | 4 | import cn.iocoder.yudao.framework.common.enums.CommonStatusEnum; |
| 5 | import cn.iocoder.yudao.framework.mybatis.core.dataobject.BaseDO; | 5 | import cn.iocoder.yudao.framework.mybatis.core.dataobject.BaseDO; |
| 6 | import lombok.Data; | 6 | import lombok.Data; |
yudao-admin-server/src/main/java/cn/iocoder/yudao/adminserver/modules/pay/dal/dataobject/merchant/PayMerchantDO.java renamed to yudao-core-service/src/main/java/cn/iocoder/yudao/coreservice/modules/pay/dal/dataobject/merchant/PayMerchantDO.java
| 1 | -package cn.iocoder.yudao.adminserver.modules.pay.dal.dataobject.merchant; | 1 | +package cn.iocoder.yudao.coreservice.modules.pay.dal.dataobject.merchant; |
| 2 | 2 | ||
| 3 | import cn.iocoder.yudao.framework.common.enums.CommonStatusEnum; | 3 | import cn.iocoder.yudao.framework.common.enums.CommonStatusEnum; |
| 4 | import cn.iocoder.yudao.framework.mybatis.core.dataobject.BaseDO; | 4 | import cn.iocoder.yudao.framework.mybatis.core.dataobject.BaseDO; |
yudao-admin-server/src/main/java/cn/iocoder/yudao/adminserver/modules/pay/dal/dataobject/order/PayNotifyDO.java renamed to yudao-core-service/src/main/java/cn/iocoder/yudao/coreservice/modules/pay/dal/dataobject/order/PayNotifyDO.java
| 1 | -package cn.iocoder.yudao.adminserver.modules.pay.dal.dataobject.order; | 1 | +package cn.iocoder.yudao.coreservice.modules.pay.dal.dataobject.order; |
| 2 | 2 | ||
| 3 | import cn.iocoder.yudao.framework.mybatis.core.dataobject.BaseDO; | 3 | import cn.iocoder.yudao.framework.mybatis.core.dataobject.BaseDO; |
| 4 | import lombok.Data; | 4 | import lombok.Data; |
yudao-admin-server/src/main/java/cn/iocoder/yudao/adminserver/modules/pay/dal/dataobject/order/PayOrderDO.java renamed to yudao-core-service/src/main/java/cn/iocoder/yudao/coreservice/modules/pay/dal/dataobject/order/PayOrderDO.java
| 1 | -package cn.iocoder.yudao.adminserver.modules.pay.dal.dataobject.order; | 1 | +package cn.iocoder.yudao.coreservice.modules.pay.dal.dataobject.order; |
| 2 | 2 | ||
| 3 | -import cn.iocoder.yudao.adminserver.modules.pay.dal.dataobject.merchant.PayAppDO; | ||
| 4 | -import cn.iocoder.yudao.adminserver.modules.pay.dal.dataobject.merchant.PayChannelDO; | ||
| 5 | -import cn.iocoder.yudao.adminserver.modules.pay.dal.dataobject.merchant.PayMerchantDO; | ||
| 6 | -import cn.iocoder.yudao.adminserver.modules.pay.enums.PayChannelCodeEnum; | 3 | +import cn.iocoder.yudao.coreservice.modules.pay.dal.dataobject.merchant.PayAppDO; |
| 4 | +import cn.iocoder.yudao.coreservice.modules.pay.dal.dataobject.merchant.PayChannelDO; | ||
| 5 | +import cn.iocoder.yudao.coreservice.modules.pay.dal.dataobject.merchant.PayMerchantDO; | ||
| 6 | +import cn.iocoder.yudao.coreservice.modules.pay.enums.merchant.PayChannelCodeEnum; | ||
| 7 | +import cn.iocoder.yudao.coreservice.modules.pay.enums.order.PayOrderStatusEnum; | ||
| 7 | import cn.iocoder.yudao.framework.mybatis.core.dataobject.BaseDO; | 8 | import cn.iocoder.yudao.framework.mybatis.core.dataobject.BaseDO; |
| 9 | +import com.baomidou.mybatisplus.annotation.TableName; | ||
| 8 | import lombok.Data; | 10 | import lombok.Data; |
| 11 | +import lombok.EqualsAndHashCode; | ||
| 12 | +import lombok.ToString; | ||
| 9 | 13 | ||
| 10 | import java.util.Date; | 14 | import java.util.Date; |
| 11 | 15 | ||
| @@ -14,19 +18,22 @@ import java.util.Date; | @@ -14,19 +18,22 @@ import java.util.Date; | ||
| 14 | * | 18 | * |
| 15 | * @author 芋道源码 | 19 | * @author 芋道源码 |
| 16 | */ | 20 | */ |
| 21 | +@TableName("pay_order") | ||
| 17 | @Data | 22 | @Data |
| 23 | +@EqualsAndHashCode(callSuper = true) | ||
| 24 | +@ToString(callSuper = true) | ||
| 18 | public class PayOrderDO extends BaseDO { | 25 | public class PayOrderDO extends BaseDO { |
| 19 | 26 | ||
| 20 | /** | 27 | /** |
| 21 | * 订单编号,数据库自增 | 28 | * 订单编号,数据库自增 |
| 22 | */ | 29 | */ |
| 23 | private Long id; | 30 | private Long id; |
| 24 | - /** | ||
| 25 | - * 订单号,根据规则生成 | ||
| 26 | - * | ||
| 27 | - * 例如说,P202110132239124200055 | ||
| 28 | - */ | ||
| 29 | - private String no; | 31 | +// /** |
| 32 | +// * 订单号,根据规则生成 | ||
| 33 | +// * | ||
| 34 | +// * 例如说,P202110132239124200055 | ||
| 35 | +// */ | ||
| 36 | +// private String no; | ||
| 30 | /** | 37 | /** |
| 31 | * 商户编号 | 38 | * 商户编号 |
| 32 | * | 39 | * |
| @@ -42,7 +49,7 @@ public class PayOrderDO extends BaseDO { | @@ -42,7 +49,7 @@ public class PayOrderDO extends BaseDO { | ||
| 42 | /** | 49 | /** |
| 43 | * 渠道编号 | 50 | * 渠道编号 |
| 44 | * | 51 | * |
| 45 | - * 关联 {@link PayChannelDO#getMerchantId()} | 52 | + * 关联 {@link PayChannelDO#getId()} |
| 46 | */ | 53 | */ |
| 47 | private Long channelId; | 54 | private Long channelId; |
| 48 | /** | 55 | /** |
| @@ -55,10 +62,10 @@ public class PayOrderDO extends BaseDO { | @@ -55,10 +62,10 @@ public class PayOrderDO extends BaseDO { | ||
| 55 | // ========== 商户相关字段 ========== | 62 | // ========== 商户相关字段 ========== |
| 56 | 63 | ||
| 57 | /** | 64 | /** |
| 58 | - * 商户订单号 | 65 | + * 商户订单编号 |
| 59 | * 例如说,内部系统 A 的订单号。需要保证每个 PayMerchantDO 唯一 TODO 芋艿:需要在测试下 | 66 | * 例如说,内部系统 A 的订单号。需要保证每个 PayMerchantDO 唯一 TODO 芋艿:需要在测试下 |
| 60 | */ | 67 | */ |
| 61 | - private String merchantOrderNo; | 68 | + private String merchantOrderId; |
| 62 | /** | 69 | /** |
| 63 | * 商品标题 | 70 | * 商品标题 |
| 64 | */ | 71 | */ |
| @@ -71,11 +78,6 @@ public class PayOrderDO extends BaseDO { | @@ -71,11 +78,6 @@ public class PayOrderDO extends BaseDO { | ||
| 71 | * 商户拓展参数 | 78 | * 商户拓展参数 |
| 72 | */ | 79 | */ |
| 73 | private String merchantExtra; | 80 | private String merchantExtra; |
| 74 | - /** | ||
| 75 | - * 通知商户支付结果的回调状态 | ||
| 76 | - * TODO 芋艿:0 未发送 1 已发送 | ||
| 77 | - */ | ||
| 78 | - private Integer notifyStatus; | ||
| 79 | 81 | ||
| 80 | // ========== 订单相关字段 ========== | 82 | // ========== 订单相关字段 ========== |
| 81 | 83 | ||
| @@ -96,10 +98,15 @@ public class PayOrderDO extends BaseDO { | @@ -96,10 +98,15 @@ public class PayOrderDO extends BaseDO { | ||
| 96 | /** | 98 | /** |
| 97 | * 支付状态 | 99 | * 支付状态 |
| 98 | * | 100 | * |
| 99 | - * TODO 芋艿:状态枚举 | 101 | + * 枚举 {@link PayOrderStatusEnum} |
| 100 | */ | 102 | */ |
| 101 | private Integer status; | 103 | private Integer status; |
| 102 | /** | 104 | /** |
| 105 | + * 通知商户支付结果的回调状态 | ||
| 106 | + * TODO 芋艿:0 未发送 1 已发送 | ||
| 107 | + */ | ||
| 108 | + private Integer notifyStatus; | ||
| 109 | + /** | ||
| 103 | * 客户端 IP | 110 | * 客户端 IP |
| 104 | */ | 111 | */ |
| 105 | private String clientIp; | 112 | private String clientIp; |
| @@ -110,7 +117,7 @@ public class PayOrderDO extends BaseDO { | @@ -110,7 +117,7 @@ public class PayOrderDO extends BaseDO { | ||
| 110 | /** | 117 | /** |
| 111 | * 订单失效时间 | 118 | * 订单失效时间 |
| 112 | */ | 119 | */ |
| 113 | - private Date expiredTime; | 120 | + private Date expireTime; |
| 114 | /** | 121 | /** |
| 115 | * 支付渠道的额外参数 | 122 | * 支付渠道的额外参数 |
| 116 | * | 123 | * |
yudao-core-service/src/main/java/cn/iocoder/yudao/coreservice/modules/pay/dal/dataobject/order/PayOrderExtensionDO.java
0 → 100644
| 1 | +package cn.iocoder.yudao.coreservice.modules.pay.dal.dataobject.order; | ||
| 2 | + | ||
| 3 | +import cn.iocoder.yudao.framework.mybatis.core.dataobject.BaseDO; | ||
| 4 | +import com.baomidou.mybatisplus.annotation.TableName; | ||
| 5 | +import lombok.Data; | ||
| 6 | +import lombok.EqualsAndHashCode; | ||
| 7 | +import lombok.experimental.Accessors; | ||
| 8 | + | ||
| 9 | +/** | ||
| 10 | + * 交易扩展表 | ||
| 11 | + */ | ||
| 12 | +@TableName("pay_transaction_extension") | ||
| 13 | +@Data | ||
| 14 | +@EqualsAndHashCode(callSuper = true) | ||
| 15 | +@Accessors(chain = true) | ||
| 16 | +public class PayOrderExtensionDO extends BaseDO { | ||
| 17 | + | ||
| 18 | + /** | ||
| 19 | + * 编号,自增 | ||
| 20 | + */ | ||
| 21 | + private Integer id; | ||
| 22 | + /** | ||
| 23 | + * 交易编号 {@link PayTransactionDO#getId()} | ||
| 24 | + */ | ||
| 25 | + private Integer transactionId; | ||
| 26 | + /** | ||
| 27 | + * 选择的支付渠道 | ||
| 28 | + */ | ||
| 29 | + private Integer payChannel; | ||
| 30 | + /** | ||
| 31 | + * 生成传输给第三方的订单号 | ||
| 32 | + * | ||
| 33 | + * 唯一索引 | ||
| 34 | + */ | ||
| 35 | + private String transactionCode; | ||
| 36 | + /** | ||
| 37 | + * 扩展内容 | ||
| 38 | + * | ||
| 39 | + * 异步通知的时候填充回调的数据 | ||
| 40 | + */ | ||
| 41 | + private String extensionData; | ||
| 42 | + /** | ||
| 43 | + * 发起交易的 IP | ||
| 44 | + */ | ||
| 45 | + private String createIp; | ||
| 46 | + /** | ||
| 47 | + * 状态 | ||
| 48 | + * | ||
| 49 | + * @see cn.iocoder.mall.payservice.enums.transaction.PayTransactionStatusEnum | ||
| 50 | + * 注意,只包含上述枚举的 WAITING 和 SUCCESS | ||
| 51 | + */ | ||
| 52 | + private Integer status; | ||
| 53 | + | ||
| 54 | +} |
yudao-admin-server/src/main/java/cn/iocoder/yudao/adminserver/modules/pay/dal/dataobject/order/PayRefundDO.java renamed to yudao-core-service/src/main/java/cn/iocoder/yudao/coreservice/modules/pay/dal/dataobject/order/PayRefundDO.java
| 1 | -package cn.iocoder.yudao.adminserver.modules.pay.dal.dataobject.order; | 1 | +package cn.iocoder.yudao.coreservice.modules.pay.dal.dataobject.order; |
| 2 | 2 | ||
| 3 | -import cn.iocoder.yudao.adminserver.modules.pay.dal.dataobject.merchant.PayAppDO; | ||
| 4 | -import cn.iocoder.yudao.adminserver.modules.pay.dal.dataobject.merchant.PayChannelDO; | ||
| 5 | -import cn.iocoder.yudao.adminserver.modules.pay.dal.dataobject.merchant.PayMerchantDO; | ||
| 6 | -import cn.iocoder.yudao.adminserver.modules.pay.enums.PayChannelCodeEnum; | 3 | +import cn.iocoder.yudao.coreservice.modules.pay.dal.dataobject.merchant.PayAppDO; |
| 4 | +import cn.iocoder.yudao.coreservice.modules.pay.dal.dataobject.merchant.PayChannelDO; | ||
| 5 | +import cn.iocoder.yudao.coreservice.modules.pay.dal.dataobject.merchant.PayMerchantDO; | ||
| 6 | +import cn.iocoder.yudao.coreservice.modules.pay.enums.merchant.PayChannelCodeEnum; | ||
| 7 | import cn.iocoder.yudao.framework.mybatis.core.dataobject.BaseDO; | 7 | import cn.iocoder.yudao.framework.mybatis.core.dataobject.BaseDO; |
| 8 | import lombok.Data; | 8 | import lombok.Data; |
| 9 | 9 | ||
| @@ -45,7 +45,7 @@ public class PayRefundDO extends BaseDO { | @@ -45,7 +45,7 @@ public class PayRefundDO extends BaseDO { | ||
| 45 | /** | 45 | /** |
| 46 | * 渠道编号 | 46 | * 渠道编号 |
| 47 | * | 47 | * |
| 48 | - * 关联 {@link PayChannelDO#getMerchantId()} | 48 | + * 关联 {@link PayChannelDO#getId()} |
| 49 | */ | 49 | */ |
| 50 | private Long channelId; | 50 | private Long channelId; |
| 51 | /** | 51 | /** |
| @@ -80,6 +80,11 @@ public class PayRefundDO extends BaseDO { | @@ -80,6 +80,11 @@ public class PayRefundDO extends BaseDO { | ||
| 80 | */ | 80 | */ |
| 81 | private Integer status; | 81 | private Integer status; |
| 82 | /** | 82 | /** |
| 83 | + * 通知商户退款结果的回调状态 | ||
| 84 | + * TODO 芋艿:0 未发送 1 已发送 | ||
| 85 | + */ | ||
| 86 | + private Integer notifyStatus; | ||
| 87 | + /** | ||
| 83 | * 客户端 IP | 88 | * 客户端 IP |
| 84 | */ | 89 | */ |
| 85 | private String clientIp; | 90 | private String clientIp; |
| @@ -98,7 +103,7 @@ public class PayRefundDO extends BaseDO { | @@ -98,7 +103,7 @@ public class PayRefundDO extends BaseDO { | ||
| 98 | /** | 103 | /** |
| 99 | * 退款失效时间 | 104 | * 退款失效时间 |
| 100 | */ | 105 | */ |
| 101 | - private Date expiredTime; | 106 | + private Date expireTime; |
| 102 | /** | 107 | /** |
| 103 | * 支付渠道的额外参数 | 108 | * 支付渠道的额外参数 |
| 104 | * | 109 | * |
yudao-core-service/src/main/java/cn/iocoder/yudao/coreservice/modules/pay/dal/dataobject/package-info.java
0 → 100644
| 1 | +package cn.iocoder.yudao.coreservice.modules.pay.dal.dataobject; |
yudao-core-service/src/main/java/cn/iocoder/yudao/coreservice/modules/pay/dal/mysql/merchant/PayAppCoreMapper.java
0 → 100644
| 1 | +package cn.iocoder.yudao.coreservice.modules.pay.dal.mysql.merchant; | ||
| 2 | + | ||
| 3 | +import cn.iocoder.yudao.coreservice.modules.pay.dal.dataobject.merchant.PayAppDO; | ||
| 4 | +import cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX; | ||
| 5 | +import org.apache.ibatis.annotations.Mapper; | ||
| 6 | + | ||
| 7 | +@Mapper | ||
| 8 | +public interface PayAppCoreMapper extends BaseMapperX<PayAppDO> { | ||
| 9 | +} |
yudao-core-service/src/main/java/cn/iocoder/yudao/coreservice/modules/pay/dal/mysql/order/PayOrderCoreMapper.java
0 → 100644
| 1 | +package cn.iocoder.yudao.coreservice.modules.pay.dal.mysql.order; | ||
| 2 | + | ||
| 3 | +import cn.iocoder.yudao.coreservice.modules.pay.dal.dataobject.order.PayOrderDO; | ||
| 4 | +import cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX; | ||
| 5 | +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; | ||
| 6 | +import org.apache.ibatis.annotations.Mapper; | ||
| 7 | + | ||
| 8 | +@Mapper | ||
| 9 | +public interface PayOrderCoreMapper extends BaseMapperX<PayOrderDO> { | ||
| 10 | + | ||
| 11 | + default PayOrderDO selectByAppIdAndMerchantOrderId(Long appId, String merchantOrderId) { | ||
| 12 | + return selectOne(new QueryWrapper<PayOrderDO>().eq("app_id", appId) | ||
| 13 | + .eq("merchant_order_id", merchantOrderId)); | ||
| 14 | + } | ||
| 15 | + | ||
| 16 | +} |
yudao-core-service/src/main/java/cn/iocoder/yudao/coreservice/modules/pay/enums/PayErrorCodeConstants.java
0 → 100644
| 1 | +package cn.iocoder.yudao.coreservice.modules.pay.enums; | ||
| 2 | + | ||
| 3 | +import cn.iocoder.yudao.framework.common.exception.ErrorCode; | ||
| 4 | + | ||
| 5 | +/** | ||
| 6 | + * Pay 错误码枚举类 | ||
| 7 | + * | ||
| 8 | + * pay 系统,使用 1-007-000-000 段 | ||
| 9 | + */ | ||
| 10 | +public interface PayErrorCodeConstants { | ||
| 11 | + | ||
| 12 | + // ========== APP 模块 1-007-000-000 ========== | ||
| 13 | + ErrorCode PAY_APP_NOT_FOUND = new ErrorCode(1007000000, "App 不存在"); | ||
| 14 | + ErrorCode PAY_APP_IS_DISABLE = new ErrorCode(1007000002, "App 已经被禁用"); | ||
| 15 | + | ||
| 16 | +} |
yudao-core-service/src/main/java/cn/iocoder/yudao/coreservice/modules/pay/enums/merchant/PayChannelCodeEnum.java
0 → 100644
| 1 | +package cn.iocoder.yudao.coreservice.modules.pay.enums.merchant; | ||
| 2 | + | ||
| 3 | +import lombok.AllArgsConstructor; | ||
| 4 | +import lombok.Getter; | ||
| 5 | + | ||
| 6 | +/** | ||
| 7 | + * 支付渠道的编码的枚举 | ||
| 8 | + * | ||
| 9 | + * @author 芋道源码 | ||
| 10 | + */ | ||
| 11 | +@Getter | ||
| 12 | +@AllArgsConstructor | ||
| 13 | +public enum PayChannelCodeEnum { | ||
| 14 | + | ||
| 15 | + wx_pub("wx_pub", "微信 JSAPI 支付"); | ||
| 16 | + | ||
| 17 | + /** | ||
| 18 | + * 编码 | ||
| 19 | + * | ||
| 20 | + * 参考 https://www.pingxx.com/api/支付渠道属性值.html | ||
| 21 | + */ | ||
| 22 | + private String code; | ||
| 23 | + /** | ||
| 24 | + * 名字 | ||
| 25 | + */ | ||
| 26 | + private String name; | ||
| 27 | + | ||
| 28 | +} |
yudao-core-service/src/main/java/cn/iocoder/yudao/coreservice/modules/pay/enums/order/PayOrderStatusEnum.java
0 → 100644
| 1 | +package cn.iocoder.yudao.coreservice.modules.pay.enums.order; | ||
| 2 | + | ||
| 3 | +import cn.iocoder.yudao.framework.common.core.IntArrayValuable; | ||
| 4 | +import lombok.AllArgsConstructor; | ||
| 5 | +import lombok.Getter; | ||
| 6 | + | ||
| 7 | +/** | ||
| 8 | + * 支付订单的状态枚举 | ||
| 9 | + * | ||
| 10 | + * @author 芋道源码 | ||
| 11 | + */ | ||
| 12 | +@Getter | ||
| 13 | +@AllArgsConstructor | ||
| 14 | +public enum PayOrderStatusEnum implements IntArrayValuable { | ||
| 15 | + | ||
| 16 | + WAITING(0, "未支付"), | ||
| 17 | + SUCCESS(10, "支付成功"), | ||
| 18 | + CLOSED(20, "支付关闭"), // 未付款交易超时关闭,或支付完成后全额退款 TODO 芋艿:需要优化下 | ||
| 19 | + ; | ||
| 20 | + | ||
| 21 | + private final Integer status; | ||
| 22 | + private final String name; | ||
| 23 | + | ||
| 24 | + @Override | ||
| 25 | + public int[] array() { | ||
| 26 | + return new int[0]; | ||
| 27 | + } | ||
| 28 | + | ||
| 29 | +} |
yudao-core-service/src/main/java/cn/iocoder/yudao/coreservice/modules/pay/package-info.java
0 → 100644
yudao-core-service/src/main/java/cn/iocoder/yudao/coreservice/modules/pay/service/merchant/PayAppCoreService.java
0 → 100644
| 1 | +package cn.iocoder.yudao.coreservice.modules.pay.service.merchant; | ||
| 2 | + | ||
| 3 | +import cn.iocoder.yudao.coreservice.modules.pay.dal.dataobject.merchant.PayAppDO; | ||
| 4 | +import cn.iocoder.yudao.framework.common.exception.ServiceException; | ||
| 5 | + | ||
| 6 | +/** | ||
| 7 | + * 支付应用 Core Service 接口 | ||
| 8 | + * | ||
| 9 | + * @author 芋道源码 | ||
| 10 | + */ | ||
| 11 | +public interface PayAppCoreService { | ||
| 12 | + | ||
| 13 | + /** | ||
| 14 | + * 支付应用的合法性 | ||
| 15 | + * | ||
| 16 | + * 如果不合法,抛出 {@link ServiceException} 业务异常 | ||
| 17 | + * | ||
| 18 | + * @param id 应用编号 | ||
| 19 | + * @return 应用信息 | ||
| 20 | + */ | ||
| 21 | + PayAppDO validPayApp(Long id); | ||
| 22 | + | ||
| 23 | +} |
yudao-core-service/src/main/java/cn/iocoder/yudao/coreservice/modules/pay/service/merchant/impl/PayAppCoreServiceImpl.java
0 → 100644
| 1 | +package cn.iocoder.yudao.coreservice.modules.pay.service.merchant.impl; | ||
| 2 | + | ||
| 3 | +import cn.iocoder.yudao.coreservice.modules.pay.dal.dataobject.merchant.PayAppDO; | ||
| 4 | +import cn.iocoder.yudao.coreservice.modules.pay.dal.mysql.merchant.PayAppCoreMapper; | ||
| 5 | +import cn.iocoder.yudao.coreservice.modules.pay.service.merchant.PayAppCoreService; | ||
| 6 | +import cn.iocoder.yudao.framework.common.enums.CommonStatusEnum; | ||
| 7 | +import lombok.extern.slf4j.Slf4j; | ||
| 8 | +import org.springframework.stereotype.Service; | ||
| 9 | + | ||
| 10 | +import javax.annotation.Resource; | ||
| 11 | +import javax.validation.Valid; | ||
| 12 | + | ||
| 13 | +import static cn.iocoder.yudao.coreservice.modules.pay.enums.PayErrorCodeConstants.*; | ||
| 14 | +import static cn.iocoder.yudao.framework.common.exception.util.ServiceExceptionUtil.exception; | ||
| 15 | + | ||
| 16 | +/** | ||
| 17 | + * 支付应用 Core Service 实现类 | ||
| 18 | + * | ||
| 19 | + * @author 芋道源码 | ||
| 20 | + */ | ||
| 21 | +@Service | ||
| 22 | +@Valid | ||
| 23 | +@Slf4j | ||
| 24 | +public class PayAppCoreServiceImpl implements PayAppCoreService { | ||
| 25 | + | ||
| 26 | + @Resource | ||
| 27 | + private PayAppCoreMapper payAppCoreMapper; | ||
| 28 | + | ||
| 29 | + @Override | ||
| 30 | + public PayAppDO validPayApp(Long id) { | ||
| 31 | + PayAppDO app = payAppCoreMapper.selectById(id); | ||
| 32 | + // 校验是否存在 | ||
| 33 | + if (app == null) { | ||
| 34 | + throw exception(PAY_APP_NOT_FOUND); | ||
| 35 | + } | ||
| 36 | + // 校验是否禁用 | ||
| 37 | + if (CommonStatusEnum.DISABLE.getStatus().equals(app.getStatus())) { | ||
| 38 | + throw exception(PAY_APP_IS_DISABLE); | ||
| 39 | + } | ||
| 40 | + return app; | ||
| 41 | + } | ||
| 42 | + | ||
| 43 | +} |
yudao-core-service/src/main/java/cn/iocoder/yudao/coreservice/modules/pay/service/order/PayOrderCoreService.java
0 → 100644
| 1 | +package cn.iocoder.yudao.coreservice.modules.pay.service.order; | ||
| 2 | + | ||
| 3 | +import cn.iocoder.yudao.coreservice.modules.pay.service.order.dto.PayOrderCreateReqDTO; | ||
| 4 | +import cn.iocoder.yudao.coreservice.modules.pay.service.order.dto.PayOrderSubmitReqDTO; | ||
| 5 | +import cn.iocoder.yudao.coreservice.modules.pay.service.order.dto.PayOrderSubmitRespDTO; | ||
| 6 | + | ||
| 7 | +import javax.validation.Valid; | ||
| 8 | + | ||
| 9 | +/** | ||
| 10 | + * 支付订单 Core Service | ||
| 11 | + * | ||
| 12 | + * @author 芋道源码 | ||
| 13 | + */ | ||
| 14 | +public interface PayOrderCoreService { | ||
| 15 | + | ||
| 16 | + /** | ||
| 17 | + * 创建支付单 | ||
| 18 | + * | ||
| 19 | + * @param reqDTO 创建请求 | ||
| 20 | + * @return 支付单编号 | ||
| 21 | + */ | ||
| 22 | + Long createPayOrder(@Valid PayOrderCreateReqDTO reqDTO); | ||
| 23 | + | ||
| 24 | + /** | ||
| 25 | + * 提交支付 | ||
| 26 | + * 此时,会发起支付渠道的调用 | ||
| 27 | + * | ||
| 28 | + * @param reqDTO 提交请求 | ||
| 29 | + * @return 提交结果 | ||
| 30 | + */ | ||
| 31 | + PayOrderSubmitRespDTO submitPayOrder(PayOrderSubmitReqDTO reqDTO); | ||
| 32 | + | ||
| 33 | +} |
yudao-core-service/src/main/java/cn/iocoder/yudao/coreservice/modules/pay/service/order/dto/PayOrderCreateReqDTO.java
0 → 100644
| 1 | +package cn.iocoder.yudao.coreservice.modules.pay.service.order.dto; | ||
| 2 | + | ||
| 3 | +import lombok.Data; | ||
| 4 | +import org.hibernate.validator.constraints.Length; | ||
| 5 | + | ||
| 6 | +import javax.validation.constraints.DecimalMin; | ||
| 7 | +import javax.validation.constraints.NotEmpty; | ||
| 8 | +import javax.validation.constraints.NotNull; | ||
| 9 | +import java.io.Serializable; | ||
| 10 | +import java.util.Date; | ||
| 11 | + | ||
| 12 | +/** | ||
| 13 | + * 支付单创建 Request DTO | ||
| 14 | + */ | ||
| 15 | +@Data | ||
| 16 | +public class PayOrderCreateReqDTO implements Serializable { | ||
| 17 | + | ||
| 18 | + /** | ||
| 19 | + * 应用编号 | ||
| 20 | + */ | ||
| 21 | + @NotEmpty(message = "应用编号不能为空") | ||
| 22 | + private Long appId; | ||
| 23 | + /** | ||
| 24 | + * 客户端 IP | ||
| 25 | + */ | ||
| 26 | + @NotEmpty(message = "客户端 IP 不能为空") | ||
| 27 | + private String clientIp; | ||
| 28 | + | ||
| 29 | + // ========== 商户相关字段 ========== | ||
| 30 | + | ||
| 31 | + /** | ||
| 32 | + * 商户订单编号 | ||
| 33 | + */ | ||
| 34 | + @NotEmpty(message = "商户订单编号不能为空") | ||
| 35 | + private String merchantOrderId; | ||
| 36 | + /** | ||
| 37 | + * 商品标题 | ||
| 38 | + */ | ||
| 39 | + @NotEmpty(message = "商品标题不能为空") | ||
| 40 | + @Length(max = 32, message = "商品标题不能超过 32") | ||
| 41 | + private String subject; | ||
| 42 | + /** | ||
| 43 | + * 商品描述信息 | ||
| 44 | + */ | ||
| 45 | + @NotEmpty(message = "商品描述信息不能为空") | ||
| 46 | + @Length(max = 128, message = "商品描述信息长度不能超过128") | ||
| 47 | + private String body; | ||
| 48 | + | ||
| 49 | + // ========== 订单相关字段 ========== | ||
| 50 | + | ||
| 51 | + /** | ||
| 52 | + * 支付金额,单位:分 | ||
| 53 | + */ | ||
| 54 | + @NotNull(message = "支付金额不能为空") | ||
| 55 | + @DecimalMin(value = "0", inclusive = false, message = "支付金额必须大于零") | ||
| 56 | + private Integer amount; | ||
| 57 | + | ||
| 58 | + /** | ||
| 59 | + * 支付过期时间 | ||
| 60 | + */ | ||
| 61 | + @NotNull(message = "支付过期时间不能为空") | ||
| 62 | + private Date expireTime; | ||
| 63 | + | ||
| 64 | +} |
yudao-core-service/src/main/java/cn/iocoder/yudao/coreservice/modules/pay/service/order/dto/PayOrderSubmitReqDTO.java
0 → 100644
| 1 | +package cn.iocoder.yudao.coreservice.modules.pay.service.order.dto; | ||
| 2 | + | ||
| 3 | +import lombok.Data; | ||
| 4 | +import lombok.experimental.Accessors; | ||
| 5 | + | ||
| 6 | +import javax.validation.constraints.NotEmpty; | ||
| 7 | +import javax.validation.constraints.NotNull; | ||
| 8 | +import java.io.Serializable; | ||
| 9 | + | ||
| 10 | +/** | ||
| 11 | + * 支付单提交 Request DTO | ||
| 12 | + */ | ||
| 13 | +@Data | ||
| 14 | +@Accessors(chain = true) | ||
| 15 | +public class PayOrderSubmitReqDTO implements Serializable { | ||
| 16 | + | ||
| 17 | + /** | ||
| 18 | + * 应用编号 | ||
| 19 | + */ | ||
| 20 | + @NotEmpty(message = "应用编号不能为空") | ||
| 21 | + private String appId; | ||
| 22 | + | ||
| 23 | + /** | ||
| 24 | + * 支付单编号 | ||
| 25 | + */ | ||
| 26 | + @NotNull(message = "支付单编号不能为空") | ||
| 27 | + private Long id; | ||
| 28 | + | ||
| 29 | + /** | ||
| 30 | + * 支付渠道 | ||
| 31 | + */ | ||
| 32 | + @NotNull(message = "支付渠道") | ||
| 33 | + private String channelCode; | ||
| 34 | + | ||
| 35 | + /** | ||
| 36 | + * 客户端 IP | ||
| 37 | + */ | ||
| 38 | + @NotEmpty(message = "客户端 IP 不能为空") | ||
| 39 | + private String clientIp; | ||
| 40 | + | ||
| 41 | +} |
yudao-core-service/src/main/java/cn/iocoder/yudao/coreservice/modules/pay/service/order/dto/PayOrderSubmitRespDTO.java
0 → 100644
| 1 | +package cn.iocoder.yudao.coreservice.modules.pay.service.order.dto; | ||
| 2 | + | ||
| 3 | +import lombok.Data; | ||
| 4 | + | ||
| 5 | +import java.io.Serializable; | ||
| 6 | + | ||
| 7 | +/** | ||
| 8 | + * 支付单提交 Response DTO | ||
| 9 | + */ | ||
| 10 | +@Data | ||
| 11 | +public class PayOrderSubmitRespDTO implements Serializable { | ||
| 12 | + | ||
| 13 | + /** | ||
| 14 | + * 支付拓展单的编号 | ||
| 15 | + */ | ||
| 16 | + private Long extensionId; | ||
| 17 | + | ||
| 18 | + /** | ||
| 19 | + * 调用支付渠道的响应结果 | ||
| 20 | + */ | ||
| 21 | + private String invokeResponse; | ||
| 22 | + | ||
| 23 | +} |
yudao-core-service/src/main/java/cn/iocoder/yudao/coreservice/modules/pay/service/order/impl/PayOrderCoreServiceImpl.java
0 → 100644
| 1 | +package cn.iocoder.yudao.coreservice.modules.pay.service.order.impl; | ||
| 2 | + | ||
| 3 | +import cn.iocoder.yudao.coreservice.modules.pay.convert.order.PayOrderCoreServiceConvert; | ||
| 4 | +import cn.iocoder.yudao.coreservice.modules.pay.dal.dataobject.merchant.PayAppDO; | ||
| 5 | +import cn.iocoder.yudao.coreservice.modules.pay.dal.dataobject.order.PayOrderDO; | ||
| 6 | +import cn.iocoder.yudao.coreservice.modules.pay.dal.mysql.order.PayOrderCoreMapper; | ||
| 7 | +import cn.iocoder.yudao.coreservice.modules.pay.enums.order.PayOrderStatusEnum; | ||
| 8 | +import cn.iocoder.yudao.coreservice.modules.pay.service.merchant.PayAppCoreService; | ||
| 9 | +import cn.iocoder.yudao.coreservice.modules.pay.service.order.PayOrderCoreService; | ||
| 10 | +import cn.iocoder.yudao.coreservice.modules.pay.service.order.dto.PayOrderCreateReqDTO; | ||
| 11 | +import cn.iocoder.yudao.coreservice.modules.pay.service.order.dto.PayOrderSubmitReqDTO; | ||
| 12 | +import cn.iocoder.yudao.coreservice.modules.pay.service.order.dto.PayOrderSubmitRespDTO; | ||
| 13 | +import cn.iocoder.yudao.framework.common.pojo.CommonResult; | ||
| 14 | +import cn.iocoder.yudao.framework.common.util.json.JsonUtils; | ||
| 15 | +import lombok.extern.slf4j.Slf4j; | ||
| 16 | +import org.springframework.stereotype.Service; | ||
| 17 | + | ||
| 18 | +import javax.annotation.Resource; | ||
| 19 | +import javax.validation.Valid; | ||
| 20 | + | ||
| 21 | +/** | ||
| 22 | + * 支付订单 Core Service 实现类 | ||
| 23 | + */ | ||
| 24 | +@Service | ||
| 25 | +@Valid | ||
| 26 | +@Slf4j | ||
| 27 | +public class PayOrderCoreServiceImpl implements PayOrderCoreService { | ||
| 28 | + | ||
| 29 | + @Resource | ||
| 30 | + private PayAppCoreService payAppCoreService; | ||
| 31 | + | ||
| 32 | + @Resource | ||
| 33 | + private PayOrderCoreMapper payOrderCoreMapper; | ||
| 34 | + | ||
| 35 | + @Override | ||
| 36 | + public Long createPayOrder(PayOrderCreateReqDTO reqDTO) { | ||
| 37 | + // 校验 App | ||
| 38 | + PayAppDO app = payAppCoreService.validPayApp(reqDTO.getAppId()); | ||
| 39 | + | ||
| 40 | + // 查询对应的支付交易单是否已经存在。如果是,则直接返回 | ||
| 41 | + PayOrderDO order = payOrderCoreMapper.selectByAppIdAndMerchantOrderId( | ||
| 42 | + reqDTO.getAppId(), reqDTO.getMerchantOrderId()); | ||
| 43 | + if (order != null) { | ||
| 44 | + log.warn("[createPayOrder][appId({}) merchantOrderId({}) 已经存在对应的支付单({})]", order.getAppId(), | ||
| 45 | + order.getMerchantOrderId(), JsonUtils.toJsonString(order)); // 理论来说,不会出现这个情况 | ||
| 46 | + return app.getId(); | ||
| 47 | + } | ||
| 48 | + | ||
| 49 | + // 创建支付交易单 | ||
| 50 | + order = PayOrderCoreServiceConvert.INSTANCE.convert(reqDTO) | ||
| 51 | + .setStatus(PayOrderStatusEnum.WAITING.getStatus()) | ||
| 52 | + .setNotifyUrl(app.getPayNotifyUrl()); | ||
| 53 | + payOrderCoreMapper.insert(order); | ||
| 54 | + // 最终返回 | ||
| 55 | + return order.getId(); | ||
| 56 | + } | ||
| 57 | + | ||
| 58 | + @Override | ||
| 59 | + public PayOrderSubmitRespDTO submitPayOrder(PayOrderSubmitReqDTO reqDTO) { | ||
| 60 | + // 校验 App | ||
| 61 | + PayAppDO app = payAppCoreService.validPayApp(reqDTO.getId()); | ||
| 62 | + // TODO 校验支付渠道是否有效 | ||
| 63 | + | ||
| 64 | + // 获得 PayOrderDO ,并校验其是否存在 | ||
| 65 | + PayOrderDO order = payOrderCoreMapper.selectById(reqDTO.getId()); | ||
| 66 | + if (order == null) { // 是否存在 | ||
| 67 | + throw exception(PAY_TRANSACTION_NOT_FOUND); | ||
| 68 | + } | ||
| 69 | + if (!PayOrderStatusEnum.WAITING.getStatus().equals(order.getStatus())) { // 校验状态,必须是待支付 | ||
| 70 | + throw exception(PAY_TRANSACTION_STATUS_IS_NOT_WAITING); | ||
| 71 | + } | ||
| 72 | + | ||
| 73 | + // 插入 PayTransactionExtensionDO | ||
| 74 | + PayTransactionExtensionDO payTransactionExtensionDO = PayTransactionConvert.INSTANCE.convert(submitReqDTO) | ||
| 75 | + .setTransactionId(payTransaction.getId()).setTransactionCode(generateTransactionCode()) | ||
| 76 | + .setStatus(PayTransactionStatusEnum.WAITING.getStatus()); | ||
| 77 | + payTransactionExtensionMapper.insert(payTransactionExtensionDO); | ||
| 78 | + | ||
| 79 | + // 调用三方接口 | ||
| 80 | + AbstractThirdPayClient thirdPayClient = ThirdPayClientFactory.getThirdPayClient(submitReqDTO.getPayChannel()); | ||
| 81 | + CommonResult<String> invokeResult = thirdPayClient.submitTransaction(payTransaction, payTransactionExtensionDO, null); // TODO 暂时传入 extra = null | ||
| 82 | + invokeResult.checkError(); | ||
| 83 | + | ||
| 84 | + // TODO 轮询三方接口,是否已经支付的任务 | ||
| 85 | + // 返回成功 | ||
| 86 | + return new PayTransactionSubmitRespDTO().setId(payTransactionExtensionDO.getId()).setInvokeResponse(invokeResult.getData()); | ||
| 87 | + } | ||
| 88 | + | ||
| 89 | +} |
yudao-core-service/src/main/java/cn/iocoder/yudao/coreservice/modules/pay/service/package-info.java
0 → 100644
| 1 | +package cn.iocoder.yudao.coreservice.modules.pay.service; |
yudao-dependencies/pom.xml
| @@ -52,6 +52,7 @@ | @@ -52,6 +52,7 @@ | ||
| 52 | <aliyun-java-sdk-core.version>4.5.25</aliyun-java-sdk-core.version> | 52 | <aliyun-java-sdk-core.version>4.5.25</aliyun-java-sdk-core.version> |
| 53 | <aliyun-java-sdk-dysmsapi.version>2.1.0</aliyun-java-sdk-dysmsapi.version> | 53 | <aliyun-java-sdk-dysmsapi.version>2.1.0</aliyun-java-sdk-dysmsapi.version> |
| 54 | <yunpian-java-sdk.version>1.2.7</yunpian-java-sdk.version> | 54 | <yunpian-java-sdk.version>1.2.7</yunpian-java-sdk.version> |
| 55 | + <justauth.version>1.4.0</justauth.version> | ||
| 55 | </properties> | 56 | </properties> |
| 56 | 57 | ||
| 57 | <dependencyManagement> | 58 | <dependencyManagement> |
| @@ -92,6 +93,11 @@ | @@ -92,6 +93,11 @@ | ||
| 92 | <artifactId>yudao-spring-boot-starter-biz-sms</artifactId> | 93 | <artifactId>yudao-spring-boot-starter-biz-sms</artifactId> |
| 93 | <version>${revision}</version> | 94 | <version>${revision}</version> |
| 94 | </dependency> | 95 | </dependency> |
| 96 | + <dependency> | ||
| 97 | + <groupId>cn.iocoder.boot</groupId> | ||
| 98 | + <artifactId>yudao-spring-boot-starter-biz-pay</artifactId> | ||
| 99 | + <version>${revision}</version> | ||
| 100 | + </dependency> | ||
| 95 | 101 | ||
| 96 | <!-- Spring 核心 --> | 102 | <!-- Spring 核心 --> |
| 97 | <dependency> | 103 | <dependency> |
| @@ -421,6 +427,13 @@ | @@ -421,6 +427,13 @@ | ||
| 421 | <version>${aliyun-java-sdk-dysmsapi.version}</version> | 427 | <version>${aliyun-java-sdk-dysmsapi.version}</version> |
| 422 | </dependency> | 428 | </dependency> |
| 423 | <!-- SMS SDK end --> | 429 | <!-- SMS SDK end --> |
| 430 | + | ||
| 431 | + <dependency> | ||
| 432 | + <groupId>com.xkcoding.justauth</groupId> | ||
| 433 | + <artifactId>justauth-spring-boot-starter</artifactId> | ||
| 434 | + <version>${justauth.version}</version> | ||
| 435 | + </dependency> | ||
| 436 | + | ||
| 424 | </dependencies> | 437 | </dependencies> |
| 425 | </dependencyManagement> | 438 | </dependencyManagement> |
| 426 | 439 |
yudao-framework/yudao-spring-boot-starter-biz-pay/pom.xml
| @@ -11,23 +11,24 @@ | @@ -11,23 +11,24 @@ | ||
| 11 | 11 | ||
| 12 | <artifactId>yudao-spring-boot-starter-biz-pay</artifactId> | 12 | <artifactId>yudao-spring-boot-starter-biz-pay</artifactId> |
| 13 | <name>${artifactId}</name> | 13 | <name>${artifactId}</name> |
| 14 | - <description>支付核心业务</description> | 14 | + <description>支付拓展,基于 IJPay 简单封装,支持微信、支付宝等常见支付渠道</description> |
| 15 | 15 | ||
| 16 | <dependencies> | 16 | <dependencies> |
| 17 | <dependency> | 17 | <dependency> |
| 18 | <groupId>cn.iocoder.boot</groupId> | 18 | <groupId>cn.iocoder.boot</groupId> |
| 19 | - <artifactId>yudao-spring-boot-starter-extension</artifactId> | ||
| 20 | - <version>${revision}</version> | 19 | + <artifactId>yudao-common</artifactId> |
| 21 | </dependency> | 20 | </dependency> |
| 22 | 21 | ||
| 22 | + <!-- 三方云服务相关 --> | ||
| 23 | <dependency> | 23 | <dependency> |
| 24 | - <groupId>cn.iocoder.boot</groupId> | ||
| 25 | - <artifactId>yudao-common</artifactId> | 24 | + <groupId>com.github.javen205</groupId> |
| 25 | + <artifactId>IJPay-AliPay</artifactId> | ||
| 26 | + <version>2.7.8</version> | ||
| 26 | </dependency> | 27 | </dependency> |
| 27 | - | ||
| 28 | <dependency> | 28 | <dependency> |
| 29 | - <groupId>cn.iocoder.boot</groupId> | ||
| 30 | - <artifactId>yudao-spring-boot-starter-biz-operatelog</artifactId> | 29 | + <groupId>com.github.javen205</groupId> |
| 30 | + <artifactId>IJPay-WxPay</artifactId> | ||
| 31 | + <version>2.7.8</version> | ||
| 31 | </dependency> | 32 | </dependency> |
| 32 | </dependencies> | 33 | </dependencies> |
| 33 | -</project> | ||
| 34 | \ No newline at end of file | 34 | \ No newline at end of file |
| 35 | +</project> |
yudao-framework/yudao-spring-boot-starter-biz-pay/src/main/java/cn/iocoder/yudao/framework/pay/core/domain/merchant/package-info.java deleted
| 1 | -/** | ||
| 2 | - * @description | ||
| 3 | - * @author Qingchen | ||
| 4 | - * @version 1.0.0 | ||
| 5 | - * @date 2021-10-12 10:42 | ||
| 6 | - * @class cn.iocoder.yudao.framework.pay.core.domain.merchant.package-info.java | ||
| 7 | - */ | ||
| 8 | -package cn.iocoder.yudao.framework.pay.core.domain.merchant; | ||
| 9 | \ No newline at end of file | 0 | \ No newline at end of file |
yudao-framework/yudao-spring-boot-starter-biz-pay/src/main/java/cn/iocoder/yudao/framework/pay/core/domain/package-info.java deleted
yudao-framework/yudao-spring-boot-starter-biz-pay/src/main/java/cn/iocoder/yudao/framework/pay/core/domain/pay/package-info.java deleted
| 1 | -/** | ||
| 2 | - * @description | ||
| 3 | - * @author Qingchen | ||
| 4 | - * @version 1.0.0 | ||
| 5 | - * @date 2021-10-12 10:42 | ||
| 6 | - * @class cn.iocoder.yudao.framework.pay.core.domain.pay.package-info.java | ||
| 7 | - */ | ||
| 8 | -package cn.iocoder.yudao.framework.pay.core.domain.pay; | ||
| 9 | \ No newline at end of file | 0 | \ No newline at end of file |
yudao-framework/yudao-spring-boot-starter-biz-pay/src/main/java/cn/iocoder/yudao/framework/pay/core/domain/refund/package-info.java deleted
| 1 | -/** | ||
| 2 | - * @description | ||
| 3 | - * @author Qingchen | ||
| 4 | - * @version 1.0.0 | ||
| 5 | - * @date 2021-10-12 10:42 | ||
| 6 | - * @class cn.iocoder.yudao.framework.pay.core.domain.refund.package-info.java | ||
| 7 | - */ | ||
| 8 | -package cn.iocoder.yudao.framework.pay.core.domain.refund; | ||
| 9 | \ No newline at end of file | 0 | \ No newline at end of file |