diff --git a/Dockerfile b/Dockerfile
index f75c69b5..67ce4377 100644
--- a/Dockerfile
+++ b/Dockerfile
@@ -1,8 +1,8 @@
-# java8基础镜像
-FROM registry.cn-beijing.aliyuncs.com/xxm1995/java8
+# java21基础镜像
+FROM m.daocloud.io/docker.io/eclipse-temurin:21.0.4_7-jdk-alpine
# 作者信息
-MAINTAINER xxm1995@outlook.com
+MAINTAINER daxpay@daxpay.cn
# 时区设置
ENV TZ=Asia/Shanghai
@@ -20,10 +20,10 @@ ENV JAVA_ARGS=""
WORKDIR /
# 端口暴露
-EXPOSE 9000
+EXPOSE 9999
# 添加执行jar包
-ADD daxpay-single-start/target/daxpay-start.jar dax-start.jar
+ADD daxpay-single-start/target/daxpay-server.jar daxpay-server.jar
# 执行启动命令
-CMD java $JAVA_OPTS -jar dax-start.jar
+CMD java $JAVA_OPTS -jar daxpay-server.jar
diff --git a/_config/mysql/dax-pay-single.sql b/_config/mysql/dax-pay-single.sql
index e33fe8fb..150ab363 100644
--- a/_config/mysql/dax-pay-single.sql
+++ b/_config/mysql/dax-pay-single.sql
@@ -1532,8 +1532,8 @@ CREATE TABLE `starter_file_platform` (
-- ----------------------------
-- Records of starter_file_platform
-- ----------------------------
-INSERT INTO `starter_file_platform` VALUES (1000, 'local', '本地存储', 'http://127.0.0.1:9999', 0, 1811365615815487488, '2024-08-13 12:32:37', 1811365615815487488, '2024-10-06 17:17:39', 0);
-INSERT INTO `starter_file_platform` VALUES (2000, 'minio', 'minio存储', 'http://127.0.0.1:9002/daxpay', 1, 1811365615815487488, '2024-08-13 12:32:40', 1811365615815487488, '2024-10-06 17:17:39', 3);
+INSERT INTO `starter_file_platform` VALUES (1000, 'local', '本地存储', 'http://127.0.0.1:9999/storage', 1, 1811365615815487488, '2024-08-13 12:32:37', 1811365615815487488, '2024-10-06 17:17:39', 0);
+INSERT INTO `starter_file_platform` VALUES (2000, 'minio', 'minio存储', 'http://127.0.0.1:9002/daxpay', 0, 1811365615815487488, '2024-08-13 12:32:40', 1811365615815487488, '2024-10-06 17:17:39', 3);
-- ----------------------------
-- Table structure for starter_file_upload_info
diff --git a/daxpay-single-server/pom.xml b/daxpay-single-server/pom.xml
index f11f4947..35724ce6 100644
--- a/daxpay-single-server/pom.xml
+++ b/daxpay-single-server/pom.xml
@@ -13,7 +13,7 @@
org.dromara.daxpay
daxpay-single-server
jar
- 3.0.0.beta1
+ 3.0.0.beta2
daxpay服务端
@@ -29,8 +29,8 @@
4.5.0
8.5.2
- 3.0.0.beta1
- 3.0.0.beta1
+ 3.0.0.beta2
+ 3.0.0.beta2
@@ -64,17 +64,16 @@
-
- org.postgresql
- postgresql
- runtime
-
+
+
+
+
-
-
-
-
+
+ com.mysql
+ mysql-connector-j
+
@@ -124,6 +123,8 @@
xls
docx
doc
+ ttf
+ woff
diff --git a/daxpay-single-server/src/main/java/org/dromara/daxpay/FrontWebConfig.java b/daxpay-single-server/src/main/java/org/dromara/daxpay/FrontWebConfig.java
index 8a66b8aa..c4b341e3 100644
--- a/daxpay-single-server/src/main/java/org/dromara/daxpay/FrontWebConfig.java
+++ b/daxpay-single-server/src/main/java/org/dromara/daxpay/FrontWebConfig.java
@@ -3,6 +3,7 @@ package org.dromara.daxpay;
import lombok.RequiredArgsConstructor;
import org.springframework.context.annotation.Configuration;
import org.springframework.web.servlet.config.annotation.InterceptorRegistry;
+import org.springframework.web.servlet.config.annotation.ResourceHandlerRegistry;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;
/**
@@ -15,9 +16,26 @@ import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;
public class FrontWebConfig implements WebMvcConfigurer {
private final FrontH5Interceptor h5Interceptor;
private final FrontWebInterceptor webInterceptor;
+
+ /**
+ * 内嵌服务重定向
+ */
@Override
public void addInterceptors(InterceptorRegistry registry) {
registry.addInterceptor(h5Interceptor).addPathPatterns("/h5/**");
registry.addInterceptor(webInterceptor).addPathPatterns("/web/**");
}
+
+ /**
+ * 重写资源路径配置 (内嵌服务时使用)
+ */
+ @Override
+ public void addResourceHandlers(ResourceHandlerRegistry registry) {
+ // 移动端网页映射
+ registry.addResourceHandler("/h5/**").addResourceLocations("classpath:/static/h5/");
+ // 电脑端网页映射
+ registry.addResourceHandler("/web/**").addResourceLocations("classpath:/static/web/");
+ // 上传文件访问映射
+ registry.addResourceHandler("/storage/**").addResourceLocations("file:/data/files/");
+ }
}
diff --git a/daxpay-single-server/src/main/resources/application-dev.yml b/daxpay-single-server/src/main/resources/application-dev.yml
index 2071dec5..85ec7c7f 100644
--- a/daxpay-single-server/src/main/resources/application-dev.yml
+++ b/daxpay-single-server/src/main/resources/application-dev.yml
@@ -5,15 +5,15 @@ spring:
datasource:
master:
# Postgresql连接
- driver-class-name: org.postgresql.Driver
- url: jdbc:postgresql://postgresql:5432/dax-pay-single?serverTimezone=Asia/Shanghai&autoReconnect=true&reWriteBatchedInserts=true
- username: bootx
- password: bootx123
+# driver-class-name: org.postgresql.Driver
+# url: jdbc:postgresql://postgresql:5432/daxpay?serverTimezone=Asia/Shanghai&autoReconnect=true&reWriteBatchedInserts=true
+# username: bootx
+# password: bootx123
# MySQL连接
-# driver-class-name: com.mysql.cj.jdbc.Driver
-# url: jdbc:mysql://mysql/dax-pay-single?serverTimezone=GMT%2B8&characterEncoding=utf8&allowMultiQueries=true&useSSL=false&nullCatalogMeansCurrent=true
-# username: root
-# password: root
+ driver-class-name: com.mysql.cj.jdbc.Driver
+ url: jdbc:mysql://mysql:3306/dax-pay-single?serverTimezone=GMT%2B8&characterEncoding=utf8&allowMultiQueries=true&useSSL=false&nullCatalogMeansCurrent=true&allowPublicKeyRetrieval=true
+ username: root
+ password: root
hikari:
keepalive-time: 300000
data:
@@ -55,7 +55,10 @@ bootx-platform:
- org.dromara.daxpay
starter:
auth:
+ # 是否启用超级管理员登录
enable-admin: true
+ # 用户管理列表中是否显示超级管理员
+ admin-in-list: true
ignore-urls:
- '/actuator/**'
- '/v3/api-docs/**'
@@ -71,9 +74,6 @@ bootx-platform:
- '/css/**'
- '/error'
- '/favicon.ico'
- file-upload:
- # 使用后端代理访问, 线上请使用 Nginx 配置或者直连方式,效率更高
- forward-server-url: http://127.0.0.1:9999
dax-pay:
# 推荐只使用字母和数字, 特殊符号会导致部分通道出问题
env: DEV
diff --git a/daxpay-single-server/src/main/resources/application-demo.yml b/daxpay-single-server/src/main/resources/application-docker.yml
similarity index 64%
rename from daxpay-single-server/src/main/resources/application-demo.yml
rename to daxpay-single-server/src/main/resources/application-docker.yml
index 6a8bd6fb..67fb8916 100644
--- a/daxpay-single-server/src/main/resources/application-demo.yml
+++ b/daxpay-single-server/src/main/resources/application-docker.yml
@@ -4,19 +4,19 @@ spring:
primary: master
datasource:
master:
- # Postgresql连接
- driver-class-name: org.postgresql.Driver
- url: jdbc:postgresql://127.0.0.1:5432/dax-pay-single-demo?serverTimezone=Asia/Shanghai&autoReconnect=true&reWriteBatchedInserts=true
- username: bootx
- password: bootx123
+ # MySQL连接
+ driver-class-name: com.mysql.cj.jdbc.Driver
+ url: ${MYSQL_URL}
+ username: ${MYSQL_USERNAME}
+ password: ${MYSQL_PASSWORD}
hikari:
keepalive-time: 300000
data:
redis:
- host: 127.0.0.1
- port: 6379
- database: 14
- password: bootx123
+ host: ${REDIS_HOST}
+ port: ${REDIS_PORT}
+ database: ${REDIS_DATABASE}
+ password: ${REDIS_PASSWORD}
lettuce:
pool:
max-wait: 1000ms
@@ -26,8 +26,8 @@ springdoc:
default-flat-param-object: true
knife4j:
enable: true
- # 关闭swagger接口
- production: true
+ # 为true 关闭swagger接口
+ production: ${KNIFE4J_PRODUCTION:false}
# 基础脚手架配置
bootx-platform:
common:
@@ -50,26 +50,32 @@ bootx-platform:
starter:
auth:
# 是否启用超级管理员登录
- enable-admin: false
+ enable-admin: ${DAXPAY_ENABLE_ADMIN:true}
# 用户管理列表中是否显示超级管理员
- admin-in-list: false
+ admin-in-list: ${DAXPAY_ADMIN-IN-LIST:true}
ignore-urls:
- '/actuator/**'
- - '/swagger-resources/**'
- '/token/**'
- '/ws/**'
+ - '/v3/api-docs/**'
+ - '/doc.html'
+ - '/swagger-resources/**'
- '/webjars/**'
+ - '/storage/**'
- '/web/**'
- '/h5/**'
- '/css/**'
- '/error'
- '/favicon.ico'
- file-upload:
- # 使用后端代理访问, 线上请使用 Nginx 配置或者直连方式,效率更高
- forward-server-url: http://127.0.0.1:9999
+ audit-log:
+ ip2region:
+ # 默认使用索引模式
+ search-type: vector_index
+ # 文件存储地址
+ file-path: /data/ip2region/ip2region.xdb
dax-pay:
# 推荐只使用字母和数字, 特殊符号会导致部分通道出问题
- env: DEMO
+ env: DAX
machine-no: 70
dromara:
# 注意, 不要设置 domain 访问路径, 自行进行拼接访问路径, 来保证可迁移性
@@ -82,12 +88,3 @@ dromara:
enable-storage: true
base-path: /file/ # 基基础存储路径 前缀和结尾都必须为 /
storage-path: /data/files/ # 存储路径, 结尾必须为 /
- # 例如 minio地址 http://127.0.0.1:9002 桶名称 daxpay, 拼接后的地址为 http://127.0.0.1:9002/daxpay/
- minio:
- - platform: minio
- enable-storage: true
- access-key: yDAArSoyQAligC2IGf7C
- secret-key: vDgpt5R4kR2UCapMzx32Rb6qZegok21dRsU6XJ1j
- end-point: http://127.0.0.1:9002 # minio访问地址
- bucket-name: daxpay # 存储桶名称
- base-path: /file/ # 基础存储路径 前缀和结尾都必须为 /
diff --git a/daxpay-single-server/src/main/resources/logback-spring.xml b/daxpay-single-server/src/main/resources/logback-spring.xml
index 81ddd63f..d6465fea 100644
--- a/daxpay-single-server/src/main/resources/logback-spring.xml
+++ b/daxpay-single-server/src/main/resources/logback-spring.xml
@@ -4,7 +4,6 @@
默认情况下,Spring Boot 不会 在 jar 文件之外寻找资源。
如果你想使用外部 logback 配置文件,你必须在启动 jar 时传递它的位置:$ java -jar -Dlogging.config=./logback-spring.xml app.jar
-->
-
@@ -18,9 +17,24 @@
+
+
+ ${logdir}/${appname}.log
+
+ ${logdir}/${appname}.log.%d{yyyy-MM-dd}.gz
+
+ 30
+
+
+ UTF-8
+ %date{yyyy-MM-dd HH:mm:ssS} | %-5level[%X{traceId:-}] %thread - %logger{36}| %msg%n
+
+
+
+
diff --git a/daxpay-single/daxpay-single-core/src/main/java/org/dromara/daxpay/core/enums/ChannelAuthStatusEnum.java b/daxpay-single/daxpay-single-core/src/main/java/org/dromara/daxpay/core/enums/ChannelAuthStatusEnum.java
index 725617a7..8f561edb 100644
--- a/daxpay-single/daxpay-single-core/src/main/java/org/dromara/daxpay/core/enums/ChannelAuthStatusEnum.java
+++ b/daxpay-single/daxpay-single-core/src/main/java/org/dromara/daxpay/core/enums/ChannelAuthStatusEnum.java
@@ -4,7 +4,7 @@ import lombok.AllArgsConstructor;
import lombok.Getter;
/**
- * 通道认证状态
+ * 认证结果状态
* @author xxm
* @since 2024/9/24
*/
diff --git a/daxpay-single/daxpay-single-core/src/main/java/org/dromara/daxpay/core/enums/SignTypeEnum.java b/daxpay-single/daxpay-single-core/src/main/java/org/dromara/daxpay/core/enums/SignTypeEnum.java
index 87738c09..1488a20a 100644
--- a/daxpay-single/daxpay-single-core/src/main/java/org/dromara/daxpay/core/enums/SignTypeEnum.java
+++ b/daxpay-single/daxpay-single-core/src/main/java/org/dromara/daxpay/core/enums/SignTypeEnum.java
@@ -4,7 +4,7 @@ import lombok.AllArgsConstructor;
import lombok.Getter;
/**
- * 支付签名类型
+ * 签名类型
* 字典 sign_type
* @author xxm
* @since 2023/12/24
diff --git a/daxpay-single/daxpay-single-core/src/main/java/org/dromara/daxpay/core/param/checkout/CheckoutCreatParam.java b/daxpay-single/daxpay-single-core/src/main/java/org/dromara/daxpay/core/param/checkout/CheckoutCreatParam.java
index 40590ead..4ebe77c0 100644
--- a/daxpay-single/daxpay-single-core/src/main/java/org/dromara/daxpay/core/param/checkout/CheckoutCreatParam.java
+++ b/daxpay-single/daxpay-single-core/src/main/java/org/dromara/daxpay/core/param/checkout/CheckoutCreatParam.java
@@ -69,13 +69,6 @@ public class CheckoutCreatParam extends PaymentCommonParam {
@Digits(integer = 8, fraction = 2, message = "支付金额精度到分, 且要小于一亿元")
private BigDecimal amount;
- /**
- * 支付扩展参数
- */
- @Schema(description = "支付扩展参数")
- @Size(max = 2048, message = "支付扩展参数不可超过2048位")
- private String extraParam;
-
/** 商户扩展参数,回调时会原样返回 */
@Schema(description = "商户扩展参数")
@Size(max = 500, message = "商户扩展参数不可超过500位")
diff --git a/daxpay-single/daxpay-single-service/src/main/java/org/dromara/daxpay/service/service/checkout/CheckoutAssistService.java b/daxpay-single/daxpay-single-service/src/main/java/org/dromara/daxpay/service/service/checkout/CheckoutAssistService.java
index c95ebab3..5b1a7e33 100644
--- a/daxpay-single/daxpay-single-service/src/main/java/org/dromara/daxpay/service/service/checkout/CheckoutAssistService.java
+++ b/daxpay-single/daxpay-single-service/src/main/java/org/dromara/daxpay/service/service/checkout/CheckoutAssistService.java
@@ -127,6 +127,10 @@ public class CheckoutAssistService {
.setStatus(PayStatusEnum.WAIT.getCode())
.setRefundStatus(PayRefundStatusEnum.NO_REFUND.getCode())
.setExpiredTime(expiredTime)
+ .setAttach(checkoutParam.getAttach())
+ .setReqTime(checkoutParam.getReqTime())
+ .setNotifyUrl(checkoutParam.getNotifyUrl())
+ .setReturnUrl(checkoutParam.getReturnUrl())
.setRefundableBalance(checkoutParam.getAmount());
// 如果支持分账, 设置分账状态为待分账
if (order.getAllocation()) {
diff --git a/docker-compose.yml b/docker-compose.yml
index 60e00e6f..0b06b78b 100644
--- a/docker-compose.yml
+++ b/docker-compose.yml
@@ -1,15 +1,38 @@
version: '3'
services:
- platform:
- image: dax-start:latest
+ daxpay-single:
+ image: daxpay/daxpay-single:3.0.0.beta2
restart: always
- ports:
- - "9000:9000"
+ # window上不支持host网络模式, 需要更改为 bridge 网络模式, 然后走端口映射
+ network_mode: host
+ # 如果不可以使用host网络模式时使用这个, 此时数据库相关的连接地址将不可以使用 127.0.0.1
+# ports:
+ # 端口映射 外部端口:容器端口
+# - "9999:9999"
+ # 读取外部化配置文件(根据实际服务器环境做修改), 宿主机目录:容器目录
volumes:
- # 读取外部化配置文件(根据实际服务器环境做修改), 宿主机目录:容器目录
- - ./logs/:/logs # 日志
- - ./files/:/data/files # 上传文件目录
- - ./application.yml:/application.yml # 启动配置文件
- - ./application-demo.yml:/application-demo.yml
- - ./logback-spring.xml:/logback-spring.xml # 日志框架配置
- - ./ip2region/ip2region.xdb :/data/ip2region/ip2region.xdb # ip归属地数据库
+ # 日志
+ - ./data/logs/:/logs
+ # 上传文件目录
+ - ./data/files/:/data/files
+ environment:
+ # mysql数据库连接地址
+ - MYSQL_URL=jdbc:mysql://127.0.0.1:3306/dax-pay-single?serverTimezone=GMT%2B8&characterEncoding=utf8&allowMultiQueries=true&useSSL=false&nullCatalogMeansCurrent=true&allowPublicKeyRetrieval=true
+ # mysql数据库账号
+ - MYSQL_USERNAME=root
+ # mysql数据库密码
+ - MYSQL_PASSWORD=root
+ # Redis 连接地址
+ - REDIS_HOST=127.0.0.1
+ # Redis 端口
+ - REDIS_PORT=6379
+ # Redis 库号
+ - REDIS_DATABASE=5
+ # Redis 密码, 如果不设置密码则留空
+ - REDIS_PASSWORD=daxpay
+ # 是否关闭swagger接口
+ - KNIFE4J_PRODUCTION=false
+ # 是否启用超级管理员登录, 正式环境不要开启
+ - DAXPAY_ENABLE_ADMIN=true
+ # 用户管理列表中是否显示超级管理员
+ - DAXPAY_ADMIN-IN-LIST=true