优化邮件发送功能和支付宝支付诊断

- 修复邮件服务区域配置(改为ap-hongkong)
- 增强支付宝支付错误诊断和日志
- 修复代码质量问题(OrderService、ImageToVideoTask)
- 添加支付宝支付问题排查文档
- 增加详细的错误诊断信息
This commit is contained in:
AIGC Developer
2025-11-03 13:20:30 +08:00
parent b5bbd8841e
commit 149b201300
15 changed files with 1264 additions and 121 deletions

View File

@@ -0,0 +1,378 @@
# 邮件登录模块测试检查清单
## 📋 测试前检查
### 1. 配置检查 ✅
**当前配置状态:**
- ✅ SecretID: `AKIDXw8HBtNfjdJm480xljV4QZUDi05wa0DE`
- ✅ SecretKey: `tZyHMDsKadS4ScZhhU3PYUErGUVIqBIB`
- ✅ Region: `ap-beijing`
- ✅ From-email: `newletter@vionow.com`
- ✅ Template-id: `154360`(生产模式)
**需要确认:**
- [ ] **发信地址是否已验证**
- 访问https://console.cloud.tencent.com/ses/address
- 检查 `newletter@vionow.com` 状态应为"已验证"
- ⚠️ **重要**:未验证的发信地址无法发送邮件
- [ ] **模板ID是否有效**
- 访问https://console.cloud.tencent.com/ses/template
- 检查模板ID `154360` 是否已审核通过
- 确认模板中包含 `{{code}}` 变量
- [ ] **SES服务是否有可用额度**
- 访问https://console.cloud.tencent.com/ses
- 检查账户余额或免费额度
---
### 2. 服务检查
- [ ] **后端服务是否运行**
```bash
# 检查服务是否在运行
# 访问http://localhost:8080
```
- [ ] **前端服务是否运行**
```bash
# 检查前端是否在运行
# 访问http://localhost:5173
```
- [ ] **数据库是否正常**
- 确认数据库连接正常
- 确认用户表等表结构存在
---
### 3. 测试邮箱准备
- [ ] **准备测试邮箱地址**
- 使用真实的邮箱地址(可以正常接收邮件)
- 建议使用常用邮箱Gmail、QQ邮箱、163邮箱等
- 确保可以访问邮箱查看验证码
---
## 🚀 测试步骤
### 步骤1访问登录页面
1. 打开浏览器访问:`http://localhost:5173/login`
- 或访问部署的前端地址
2. 确认页面显示:
- ✅ 邮箱输入框
- ✅ 验证码输入框
- ✅ "获取验证码"按钮
- ✅ "登录/注册"按钮
---
### 步骤2发送验证码
1. **输入邮箱地址**
- 输入一个有效的邮箱地址(例如:`test@example.com`
2. **点击"获取验证码"按钮**
- 观察按钮是否进入60秒倒计时状态
- 观察是否有成功提示
3. **检查结果:**
- ✅ **成功**:显示"验证码已发送到您的邮箱"
- ❌ **失败**:检查错误信息
4. **查看日志(如有错误)**
```bash
# 查看后端日志,查找错误信息
# 可能的问题:
# - 发信地址未验证
# - 模板ID无效
# - 权限不足
# - 额度不足
```
---
### 步骤3接收验证码
**当前配置为生产模式template-id=154360会实际发送邮件。**
1. **检查邮箱收件箱**
- 邮件来自:`newletter@vionow.com`
- 邮件主题:根据模板配置
- 邮件内容包含6位数字验证码
2. **如果未收到邮件:**
- 检查垃圾邮件文件夹
- 等待1-2分钟邮件发送可能有延迟
- 检查邮箱是否正确输入
- 查看后端日志是否有错误
---
### 步骤4输入验证码并登录
1. **输入验证码**
- 输入邮箱中收到的6位数字验证码
2. **点击"登录/注册"按钮**
3. **检查结果:**
- ✅ **成功**
- 跳转到主页或个人中心
- 显示登录成功提示
- 浏览器控制台中保存了token
- ❌ **失败**:检查错误信息
- 验证码错误
- 验证码过期5分钟
- 其他错误
---
### 步骤5验证登录状态
1. **检查Token是否保存**
- 打开浏览器开发者工具
- 查看 `sessionStorage` 或 `localStorage`
- 确认 `token` 和 `user` 信息已保存
2. **检查用户信息**
- 查看个人中心或用户信息页面
- 确认邮箱等信息正确显示
3. **测试自动注册功能**
- 使用一个新的邮箱地址测试
- 系统应自动创建新用户并登录
---
## 🔍 常见问题排查
### 问题1点击获取验证码后没有反应
**可能原因:**
- 前端服务未启动
- 后端服务未启动
- 网络连接问题
**解决方法:**
1. 检查前端控制台错误信息
2. 检查后端服务是否运行
3. 检查API接口地址是否正确
---
### 问题2显示"发送失败"或错误信息
**可能原因:**
- 发信地址未验证
- 模板ID无效或未审核
- SecretID/SecretKey权限不足
- SES服务额度不足
**解决方法:**
1. 检查SES控制台发信地址状态
2. 检查模板ID是否正确且已审核
3. 检查API密钥权限
4. 检查SES服务额度
**查看后端日志:**
```bash
# 查看详细的错误信息
# 常见错误:
# - InvalidParameter.EmailAddressNotVerified发信地址未验证
# - ResourceNotFound.TemplateNotFound模板不存在
# - InvalidSecretId.InvalidSignature密钥错误
```
---
### 问题3收不到邮件
**可能原因:**
- 邮箱地址输入错误
- 邮件被垃圾邮件过滤器拦截
- 邮件发送延迟
- 发信地址未验证(生产模式)
**解决方法:**
1. 检查邮箱地址是否正确
2. 检查垃圾邮件文件夹
3. 等待1-2分钟
4. 确认发信地址已验证
5. 查看后端日志确认是否发送成功
---
### 问题4验证码验证失败
**可能原因:**
- 验证码输入错误
- 验证码已过期5分钟
- 验证码已被使用
- 邮箱地址不匹配
**解决方法:**
1. 确认验证码输入正确6位数字
2. 确认在5分钟内使用
3. 重新获取验证码
4. 确认邮箱地址与获取验证码时一致
---
## 🧪 测试用例
### 测试用例1正常登录流程
**步骤:**
1. 输入邮箱:`test@example.com`
2. 点击"获取验证码"
3. 等待邮件到达(生产模式)
4. 输入验证码
5. 点击"登录/注册"
**预期结果:**
- ✅ 验证码发送成功
- ✅ 收到邮件
- ✅ 登录成功
- ✅ 跳转到主页
---
### 测试用例2自动注册新用户
**步骤:**
1. 输入一个从未使用过的邮箱:`newuser@example.com`
2. 点击"获取验证码"
3. 收到验证码后输入
4. 点击"登录/注册"
**预期结果:**
- ✅ 系统自动创建新用户
- ✅ 自动登录
- ✅ 用户信息正确保存
---
### 测试用例3验证码过期测试
**步骤:**
1. 获取验证码
2. 等待超过5分钟
3. 输入验证码尝试登录
**预期结果:**
- ❌ 提示验证码已过期
- ✅ 需要重新获取验证码
---
### 测试用例4发送频率限制
**步骤:**
1. 点击"获取验证码"
2. 在60秒内再次点击"获取验证码"
**预期结果:**
- ✅ 按钮处于倒计时状态,无法点击
- ✅ 或提示"发送过于频繁"
---
### 测试用例5邮箱格式验证
**步骤:**
1. 输入无效邮箱:`invalid-email`
2. 点击"获取验证码"
**预期结果:**
- ❌ 提示"请输入正确的邮箱地址"
---
## ✅ 测试完成检查清单
完成测试后,确认以下功能正常:
- [ ] ✅ 可以发送验证码
- [ ] ✅ 可以收到邮件(生产模式)
- [ ] ✅ 可以输入验证码登录
- [ ] ✅ 新用户可以自动注册
- [ ] ✅ Token正确保存
- [ ] ✅ 用户信息正确显示
- [ ] ✅ 验证码过期机制正常
- [ ] ✅ 发送频率限制正常
- [ ] ✅ 邮箱格式验证正常
---
## 📝 测试记录模板
```
测试时间____年__月__日 __:__
测试环境:开发/生产
发信地址状态:已验证/未验证
模板ID状态已审核/未审核
测试邮箱_______________
测试结果:
[ ] 发送验证码成功
[ ] 收到邮件
[ ] 登录成功
[ ] 自动注册成功
遇到的问题:
_________________________________
解决方案:
_________________________________
```
---
## 🚨 重要提醒
### 生产模式注意事项
**当前配置为生产模式template-id=154360会实际发送邮件。**
⚠️ **必须确保:**
1. 发信地址 `newletter@vionow.com` 已验证
2. 模板ID `154360` 已审核通过
3. SES服务有可用额度
4. API密钥有SES服务权限
### 如果发信地址未验证
**临时解决方案(仅用于测试):**
可以将 `template-id` 临时改为 `0`,进入开发模式:
```properties
tencent.ses.template-id=0
```
开发模式下不会实际发送邮件,验证码会在日志中显示。
---
## 🔗 相关资源
- **腾讯云SES控制台**: https://console.cloud.tencent.com/ses
- **发信地址管理**: https://console.cloud.tencent.com/ses/address
- **邮件模板管理**: https://console.cloud.tencent.com/ses/template
- **邮箱验证登录指南**: `EMAIL_VERIFICATION_LOGIN_GUIDE.md`
- **邮件登录配置清单**: `EMAIL_LOGIN_CONFIGURATION_CHECKLIST.md`
---
## ✅ 测试准备完成
**配置状态:**
- ✅ 所有必需配置已设置
- ⚠️ 需要确认发信地址已验证
- ⚠️ 需要确认模板ID已审核
**可以开始测试!**