Files
MTKJPAY/mt-pay/ENV_CONFIG.md
qiube 57062efd2d feat(pay): 集成PingPong支付功能并完善配置体系
- 添加MyBatis-Plus和Druid数据源依赖
- 配置多环境数据库连接(dev/test/prod)
- 实现PingPong支付核心功能模块
- 添加支付订单和记录表结构设计
- 集成MD5/SHA256签名算法及验证机制
- 支持支付回调处理和状态更新
- 添加预授权支付类型支持(AUTH/CAPTURE/VOID)
- 实现收银台页面集成和跳转逻辑
- 添加完整的API接口文档和使用说明
- 配置Druid监控和安全管理
- 实现多环境配置文件分离管理
- 添加详细的架构设计和开发文档
2025-12-18 17:40:15 +08:00

191 lines
4.9 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 环境配置文件说明
## 配置文件结构
项目采用多环境配置共包含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. 检查应用日志中的数据库连接信息(注意:密码不会显示)