feat(pay): 集成PingPong支付功能并完善配置体系
- 添加MyBatis-Plus和Druid数据源依赖 - 配置多环境数据库连接(dev/test/prod) - 实现PingPong支付核心功能模块 - 添加支付订单和记录表结构设计 - 集成MD5/SHA256签名算法及验证机制 - 支持支付回调处理和状态更新 - 添加预授权支付类型支持(AUTH/CAPTURE/VOID) - 实现收银台页面集成和跳转逻辑 - 添加完整的API接口文档和使用说明 - 配置Druid监控和安全管理 - 实现多环境配置文件分离管理 - 添加详细的架构设计和开发文档
This commit is contained in:
190
mt-pay/ENV_CONFIG.md
Normal file
190
mt-pay/ENV_CONFIG.md
Normal file
@@ -0,0 +1,190 @@
|
||||
# 环境配置文件说明
|
||||
|
||||
## 配置文件结构
|
||||
|
||||
项目采用多环境配置,共包含4个配置文件:
|
||||
|
||||
1. **application.yml** - 主配置文件(通用配置)
|
||||
2. **application-dev.yml** - 开发环境配置
|
||||
3. **application-test.yml** - 测试环境配置
|
||||
4. **application-prod.yml** - 生产环境配置
|
||||
|
||||
## 配置文件说明
|
||||
|
||||
### application.yml(主配置)
|
||||
|
||||
包含所有环境的通用配置:
|
||||
- 应用名称
|
||||
- Druid监控配置
|
||||
- JPA配置
|
||||
- PingPong支付默认配置
|
||||
- 服务器配置
|
||||
|
||||
**注意**:主配置文件中不包含数据库连接信息,由各环境配置文件提供。
|
||||
|
||||
### application-dev.yml(开发环境)
|
||||
|
||||
**数据库配置**:
|
||||
- 使用阿里云RDS数据库(已配置具体连接信息)
|
||||
- 使用沙箱模式的PingPong支付
|
||||
|
||||
**使用方式**:
|
||||
```bash
|
||||
java -jar app.jar --spring.profiles.active=dev
|
||||
```
|
||||
|
||||
### application-test.yml(测试环境)
|
||||
|
||||
**数据库配置**:
|
||||
- 使用环境变量配置数据库连接
|
||||
- 环境变量:
|
||||
- `test.db.url` - 数据库连接URL
|
||||
- `test.db.username` - 数据库用户名
|
||||
- `test.db.password` - 数据库密码
|
||||
- 使用测试模式的PingPong支付
|
||||
|
||||
**使用方式**:
|
||||
```bash
|
||||
# 设置环境变量
|
||||
export test.db.url=jdbc:mysql://host:3306/dbname?...
|
||||
export test.db.username=username
|
||||
export test.db.password=password
|
||||
|
||||
# 启动应用
|
||||
java -jar app.jar --spring.profiles.active=test
|
||||
```
|
||||
|
||||
### application-prod.yml(生产环境)
|
||||
|
||||
**数据库配置**:
|
||||
- 使用环境变量配置数据库连接
|
||||
- 环境变量:
|
||||
- `prod.db.url` - 数据库连接URL
|
||||
- `prod.db.username` - 数据库用户名
|
||||
- `prod.db.password` - 数据库密码
|
||||
- 使用生产模式的PingPong支付(build模式)
|
||||
|
||||
**使用方式**:
|
||||
```bash
|
||||
# 设置环境变量
|
||||
export prod.db.url=jdbc:mysql://host:3306/dbname?...
|
||||
export prod.db.username=username
|
||||
export prod.db.password=password
|
||||
|
||||
# 启动应用
|
||||
java -jar app.jar --spring.profiles.active=prod
|
||||
```
|
||||
|
||||
## 环境变量配置示例
|
||||
|
||||
### 测试环境环境变量
|
||||
|
||||
```bash
|
||||
# Linux/Mac
|
||||
export test.db.url="jdbc:mysql://test-host:3306/test_db?useUnicode=true&characterEncoding=utf-8&useSSL=false&serverTimezone=Asia/Shanghai"
|
||||
export test.db.username="test_user"
|
||||
export test.db.password="test_password"
|
||||
```
|
||||
|
||||
```powershell
|
||||
# Windows PowerShell
|
||||
$env:test.db.url="jdbc:mysql://test-host:3306/test_db?useUnicode=true&characterEncoding=utf-8&useSSL=false&serverTimezone=Asia/Shanghai"
|
||||
$env:test.db.username="test_user"
|
||||
$env:test.db.password="test_password"
|
||||
```
|
||||
|
||||
### 生产环境环境变量
|
||||
|
||||
```bash
|
||||
# Linux/Mac
|
||||
export prod.db.url="jdbc:mysql://prod-host:3306/prod_db?useUnicode=true&characterEncoding=utf-8&useSSL=false&serverTimezone=Asia/Shanghai"
|
||||
export prod.db.username="prod_user"
|
||||
export prod.db.password="prod_password"
|
||||
```
|
||||
|
||||
```powershell
|
||||
# Windows PowerShell
|
||||
$env:prod.db.url="jdbc:mysql://prod-host:3306/prod_db?useUnicode=true&characterEncoding=utf-8&useSSL=false&serverTimezone=Asia/Shanghai"
|
||||
$env:prod.db.username="prod_user"
|
||||
$env:prod.db.password="prod_password"
|
||||
```
|
||||
|
||||
## Docker部署环境变量
|
||||
|
||||
在Docker Compose或Kubernetes中配置环境变量:
|
||||
|
||||
```yaml
|
||||
# docker-compose.yml
|
||||
services:
|
||||
mt-pay:
|
||||
image: mt-pay:latest
|
||||
environment:
|
||||
- SPRING_PROFILES_ACTIVE=prod
|
||||
- prod.db.url=jdbc:mysql://prod-host:3306/prod_db?...
|
||||
- prod.db.username=prod_user
|
||||
- prod.db.password=prod_password
|
||||
```
|
||||
|
||||
```yaml
|
||||
# kubernetes deployment
|
||||
apiVersion: v1
|
||||
kind: ConfigMap
|
||||
metadata:
|
||||
name: mt-pay-config
|
||||
data:
|
||||
SPRING_PROFILES_ACTIVE: "prod"
|
||||
prod.db.url: "jdbc:mysql://prod-host:3306/prod_db?..."
|
||||
prod.db.username: "prod_user"
|
||||
---
|
||||
apiVersion: v1
|
||||
kind: Secret
|
||||
metadata:
|
||||
name: mt-pay-secret
|
||||
type: Opaque
|
||||
stringData:
|
||||
prod.db.password: "prod_password"
|
||||
```
|
||||
|
||||
## IDE中切换环境
|
||||
|
||||
### IntelliJ IDEA
|
||||
|
||||
1. 打开 `Run/Debug Configurations`
|
||||
2. 在 `Active profiles` 中输入:`dev`、`test` 或 `prod`
|
||||
3. 或者在 `Environment variables` 中设置环境变量
|
||||
|
||||
### Eclipse
|
||||
|
||||
1. 右键项目 -> `Run As` -> `Run Configurations`
|
||||
2. 在 `Arguments` 标签页的 `Program arguments` 中添加:
|
||||
```
|
||||
--spring.profiles.active=dev
|
||||
```
|
||||
|
||||
## 配置优先级
|
||||
|
||||
Spring Boot配置加载顺序(优先级从高到低):
|
||||
1. 命令行参数
|
||||
2. 环境变量
|
||||
3. application-{profile}.yml
|
||||
4. application.yml
|
||||
|
||||
## 注意事项
|
||||
|
||||
1. **开发环境**:使用具体的数据库连接信息,方便本地开发
|
||||
2. **测试/生产环境**:使用环境变量,提高安全性
|
||||
3. **PingPong模式**:
|
||||
- dev: `sandbox`(沙箱)
|
||||
- test: `test`(测试)
|
||||
- prod: `build`(生产)
|
||||
4. **数据库密码**:生产环境务必使用强密码,并通过环境变量或密钥管理服务管理
|
||||
5. **监控页面**:生产环境建议修改Druid监控页面的用户名和密码
|
||||
|
||||
## 验证配置
|
||||
|
||||
启动应用后,可以通过以下方式验证配置是否正确:
|
||||
|
||||
1. 查看启动日志,确认加载的配置文件
|
||||
2. 访问 `/druid/index.html` 验证数据库连接
|
||||
3. 检查应用日志中的数据库连接信息(注意:密码不会显示)
|
||||
|
||||
Reference in New Issue
Block a user