Kamixitong/docs/system_settings_redesign.md

218 lines
5.9 KiB
Markdown
Raw Permalink Normal View History

2025-12-12 11:35:14 +08:00
# 系统设置页面重新设计文档
## 概述
本次重新设计后台管理页面的系统设置页面,特别是添加了支付功能配置,使管理员可以通过后台界面完整配置和管理支付功能,无需手动修改环境变量。
## 新增功能
### 1. 支付配置区块
#### 支付功能开关
- 在配置区块头部添加了支付功能开关
- 管理员可以一键启用/禁用支付功能
#### 支付宝配置参数
- **支付宝应用ID (APP_ID)** - 从支付宝开放平台获取
- **应用私钥** - RSA2格式的应用私钥
- **支付宝公钥** - RSA2格式的应用公钥
- **支付宝平台公钥** - RSA2格式的支付宝平台公钥
- **异步通知URL** - 支付宝异步通知地址
- **同步返回URL** - 支付完成后的返回地址
- **支付宝网关地址** - 可配置正式/沙箱环境
- **支付超时时间** - 可设置5-120分钟
- **签名算法** - 支持RSA2和RSA
- **编码格式** - 支持utf-8和gbk
- **API版本** - 当前固定为1.0
#### 辅助功能
- **测试支付宝配置** - 验证配置参数是否正确
- **表单验证** - 实时验证必填项
- **输入提示** - 每个字段都有详细的说明
### 2. 系统信息增强
在系统信息卡片中新增:
- **支付功能状态** - 显示是否已启用
- **支付宝配置状态** - 显示是否已配置
### 3. 操作按钮增强
在操作卡片中新增:
- **测试支付功能** - 按钮仅在支付功能启用时显示
- 点击后创建测试订单并生成支付链接
### 4. API接口新增
#### `POST /api/v1/settings/test-alipay`
测试支付宝配置是否正确
**功能:**
- 验证APP_ID格式
- 验证密钥格式是否包含BEGIN/END标记
- 返回配置详情
**响应示例:**
```json
{
"success": true,
"message": "支付宝配置测试成功!",
"details": {
"app_id": "your_app_id",
"gateway": "https://openapi.alipay.com/gateway.do",
"sign_type": "RSA2"
}
}
```
#### `POST /api/v1/settings/test-payment`
测试支付功能是否正常工作
**功能:**
- 检查支付功能是否启用
- 检查支付宝配置是否完整
- 创建测试订单
- 生成支付链接
**响应示例:**
```json
{
"success": true,
"message": "支付功能测试成功!",
"payment_url": "https://openapi.alipay.com/...",
"order_number": "TEST123456789"
}
```
## 文件修改列表
### 1. `app/api/settings.py`
- 新增支付配置映射
- 新增 `test_alipay_config()` 函数
- 新增 `test_payment()` 函数
- 更新 `save_settings()` 函数支持支付配置保存
### 2. `config.py`
- 新增 `ALIPAY_NOTIFY_URL` 配置
- 新增 `ALIPAY_RETURN_URL` 配置
- 新增 `ALIPAY_TIMEOUT_EXPRESS` 配置
- 新增 `PAYMENT_ENABLED` 配置
### 3. `app/web/templates/settings/index.html`
- 新增支付配置卡片
- 新增测试支付宝配置按钮
- 新增测试支付功能模态框
- 增强系统信息显示
- 增强操作按钮
- 新增前端JavaScript处理函数
## 配置项说明
### 支付配置映射
```python
CONFIG_MAPPING = {
# ... 其他配置 ...
# 支付设置
'alipay_app_id': 'ALIPAY_APP_ID',
'alipay_private_key': 'ALIPAY_PRIVATE_KEY',
'alipay_public_key': 'ALIPAY_PUBLIC_KEY',
'alipay_alipay_public_key': 'ALIPAY_ALIPAY_PUBLIC_KEY',
'alipay_gateway': 'ALIPAY_GATEWAY',
'alipay_sign_type': 'ALIPAY_SIGN_TYPE',
'alipay_charset': 'ALIPAY_CHARSET',
'alipay_version': 'ALIPAY_VERSION',
'alipay_notify_url': 'ALIPAY_NOTIFY_URL',
'alipay_return_url': 'ALIPAY_RETURN_URL',
'alipay_timeout_express': 'ALIPAY_TIMEOUT_EXPRESS',
'payment_enabled': 'PAYMENT_ENABLED'
}
```
## 使用流程
### 1. 配置支付宝参数
1. 登录支付宝开放平台 (https://open.alipay.com/)
2. 创建网站支付应用
3. 获取以下信息:
- APP_ID
- 应用私钥
- 应用公钥
- 支付宝平台公钥
### 2. 在系统设置中配置
1. 登录后台管理系统
2. 导航到"系统设置"页面
3. 滚动到"支付配置"区块
4. 启用支付功能开关
5. 填写支付宝配置信息
6. 点击"测试支付宝配置"验证参数
7. 点击"保存设置"
### 3. 测试支付功能
1. 在支付配置区块下方点击"测试支付宝配置"按钮
2. 验证配置无误后,点击"保存设置"
3. 在右侧操作卡片中点击"测试支付功能"按钮
4. 系统会创建测试订单并生成支付链接
5. 点击"是"打开支付链接进行测试
### 4. 上线生产环境
1. 将支付宝网关地址改为正式环境地址
2. 使用正式环境的APP_ID和密钥
3. 配置正确的异步通知URL和返回URL
4. 再次测试支付功能
5. 确认无误后正式启用
## 安全建议
### 1. 密钥管理
- 私钥和公钥信息非常重要,请妥善保管
- 不要将私钥提交到代码仓库
- 定期更换密钥建议每6个月
### 2. 配置安全
- 生产环境启用支付功能前请确保已配置HTTPS
- 确认异步通知URL可正常访问
- 验证签名验证功能正常工作
### 3. 测试建议
- 先在沙箱环境测试配置
- 使用测试订单验证支付流程
- 确认异步通知能够正常更新订单状态
## 注意事项
### 1. 配置持久化
当前配置保存在内存中,重启后丢失。如需持久化,建议:
- 定期导出配置
- 使用环境变量配置生产环境
- 未来可扩展为数据库存储
### 2. 密钥显示
出于安全考虑,私钥字段在保存后不会回显。如需修改,请重新粘贴完整密钥。
### 3. 测试金额
测试订单使用0.01元作为测试金额,不会产生实际费用。
## 更新日志
### v1.1.0 (2025-12-11)
- 新增完整的支付配置管理界面
- 支持支付宝参数配置和测试
- 新增支付功能开关
- 增强系统信息显示
- 新增测试支付功能接口
- 优化用户体验和操作流程
## 技术支持
如有问题,请查看:
- 日志文件:`logs/kamaxitong.log`
- 支付宝开放平台文档https://open.alipay.com/
- 系统集成文档:`docs/alipay_integration.md`