peixue-dev/Archive/peidu-temp-files/docs/[一次性]钱包充值功能-测试指南-2026-01-25.md

7.4 KiB
Raw Blame History

💰 钱包充值功能 - 测试指南

创建时间2026-01-25
状态:已实施,待测试


已完成的修改

后端修改:

  • WalletController.java - 添加 @CurrentUser 注解
  • 新增接口:/api/wallet/recharge-request - 创建充值请求
  • 新增接口:/api/wallet/mock-pay - 模拟支付成功
  • 新增接口:/api/wallet/recharge-callback - 支付回调

前端修改:

  • recharge.vue - 改造充值流程为两步:创建请求 → 模拟支付
  • 添加真实支付方法(已注释,后期启用)

🧪 测试步骤

步骤1重启后端服务

# 进入后端目录
cd peidu/backend

# 重新编译
mvn clean compile

# 启动服务
mvn spring-boot:run

步骤2测试充值功能前端

2.1 登录系统

  1. 打开小程序
  2. 使用测试账号登录
  3. 确保登录成功并获取到 token

2.2 进入钱包页面

  1. 点击"我的" → "我的钱包"
  2. 查看当前余额(应该显示 ¥0.00 或之前的余额)

2.3 测试充值

  1. 点击"充值"按钮
  2. 选择充值金额(如 ¥100
  3. 选择支付方式(微信支付或支付宝)
  4. 点击"确认充值"
  5. 观察控制台日志:
    创建充值请求: {amount: 100, paymentChannel: 'wechat'}
    充值请求响应: {code: 200, data: {...}}
    充值请求创建成功: {transactionNo: 'RCH...', amount: 100, ...}
    开始模拟支付...
    模拟支付响应: {code: 200, data: '充值成功'}
    
  6. 应该看到"充值成功"提示
  7. 自动返回钱包页面
  8. 余额应该增加 ¥100

步骤3测试订单支付钱包扣款

3.1 创建订单

  1. 选择服务和陪伴员
  2. 创建订单
  3. 记录订单ID

3.2 使用钱包支付

  1. 在订单详情页选择"钱包支付"
  2. 点击"立即支付"
  3. 应该看到"支付成功"提示
  4. 订单状态变为"已支付"

3.3 验证余额

  1. 返回钱包页面
  2. 余额应该减少(订单金额)
  3. 查看交易记录,应该有一条"订单支付"记录

步骤4测试退款功能

4.1 取消订单

  1. 在订单详情页点击"取消订单"
  2. 选择取消原因
  3. 确认取消

4.2 验证退款

  1. 返回钱包页面
  2. 余额应该增加(退回订单金额)
  3. 查看交易记录,应该有一条"订单退款"记录

步骤5测试交易记录

  1. 在钱包页面点击"交易记录"
  2. 应该看到所有交易记录:
    • 充值记录类型recharge
    • 消费记录类型consume
    • 退款记录类型refund
  3. 每条记录应该显示:
    • 交易类型
    • 交易金额
    • 交易前余额
    • 交易后余额
    • 交易时间

🔍 后端API测试可选

使用Postman或curl测试

1. 登录获取token

POST http://localhost:8080/api/auth/login
Content-Type: application/json

{
  "phone": "13800138000",
  "password": "123456"
}

# 响应:
{
  "code": 200,
  "data": {
    "token": "eyJhbGciOiJIUzUxMiJ9...",
    "userInfo": {...}
  }
}

2. 查看钱包信息

GET http://localhost:8080/api/wallet/info
Authorization: Bearer {token}

# 响应:
{
  "code": 200,
  "data": {
    "id": 1,
    "userId": 1,
    "balance": 0.00,
    "frozenAmount": 0.00,
    "totalRecharge": 0.00,
    "totalConsume": 0.00,
    ...
  }
}

3. 创建充值请求

POST http://localhost:8080/api/wallet/recharge-request
Authorization: Bearer {token}
Content-Type: application/json

{
  "amount": 100,
  "paymentChannel": "wechat"
}

# 响应:
{
  "code": 200,
  "data": {
    "transactionNo": "RCH1737792000000ABCD1234",
    "amount": 100,
    "paymentChannel": "wechat",
    "userId": 1
  }
}

4. 模拟支付

POST http://localhost:8080/api/wallet/mock-pay
Authorization: Bearer {token}
Content-Type: application/json

{
  "transactionNo": "RCH1737792000000ABCD1234",
  "amount": 100,
  "paymentChannel": "wechat"
}

# 响应:
{
  "code": 200,
  "data": "充值成功"
}

5. 再次查看钱包信息

GET http://localhost:8080/api/wallet/info
Authorization: Bearer {token}

# 响应:
{
  "code": 200,
  "data": {
    "balance": 100.00,  # 余额增加了
    "totalRecharge": 100.00,  # 累计充值增加了
    ...
  }
}

6. 查看交易记录

GET http://localhost:8080/api/wallet/transactions
Authorization: Bearer {token}

# 响应:
{
  "code": 200,
  "data": [
    {
      "id": 1,
      "userId": 1,
      "transactionType": "recharge",
      "amount": 100.00,
      "balanceBefore": 0.00,
      "balanceAfter": 100.00,
      "transactionNo": "RCH1737792000000ABCD1234",
      "paymentChannel": "wechat",
      "status": 1,
      "remark": "钱包充值",
      "createdTime": "2026-01-25 14:00:00"
    }
  ]
}

⚠️ 常见问题排查

问题1充值失败提示"未登录"

原因: token未正确传递或已过期

解决:

  1. 检查前端是否正确存储了token
  2. 检查请求头是否包含 Authorization: Bearer {token}
  3. 重新登录获取新token

问题2充值失败提示"创建充值请求失败"

原因: 后端接口参数错误

解决:

  1. 查看后端日志
  2. 检查 WalletController.rechargeRequest() 方法
  3. 确认 @CurrentUser 注解是否生效

问题3模拟支付失败

原因: 钱包服务异常

解决:

  1. 查看后端日志
  2. 检查数据库 wallet 表是否存在
  3. 检查 WalletService.recharge() 方法

问题4余额没有增加

原因: 数据库更新失败或前端未刷新

解决:

  1. 查看数据库 wallet 表,确认余额是否更新
  2. 查看 wallet_transaction 表,确认交易记录是否创建
  3. 前端重新进入钱包页面刷新数据

📊 数据库验证

查看钱包余额

SELECT * FROM wallet WHERE user_id = 1;

查看交易记录

SELECT * FROM wallet_transaction 
WHERE user_id = 1 
ORDER BY created_time DESC 
LIMIT 10;

验证数据一致性

-- 验证余额 = 累计充值 - 累计消费 - 累计提现
SELECT 
  user_id,
  balance,
  total_recharge,
  total_consume,
  total_withdraw,
  (total_recharge - total_consume - total_withdraw) AS calculated_balance,
  (balance - (total_recharge - total_consume - total_withdraw)) AS difference
FROM wallet
WHERE user_id = 1;

-- difference 应该为 0

测试检查清单

  • 后端服务已重启
  • 登录成功获取到token
  • 钱包页面显示正常
  • 充值功能正常(金额增加)
  • 订单支付功能正常(金额减少)
  • 退款功能正常(金额退回)
  • 交易记录显示正常
  • 数据库数据一致性验证通过

🎉 测试通过标准

  1. 充值成功,余额正确增加
  2. 订单支付成功,余额正确减少
  3. 退款成功,余额正确退回
  4. 交易记录完整准确
  5. 数据库数据一致性正确
  6. 无报错,日志正常

📝 测试完成后

测试通过后,你就拥有了:

  1. 完整的模拟支付流程
  2. 钱包充值、扣款、退款功能
  3. 交易记录查询
  4. 易于替换为真实支付的架构

下一步: 集成真实的微信/支付宝支付(参考实施方案文档)


创建时间: 2026-01-25
预计测试时间: 15分钟