285 lines
8.1 KiB
Markdown
285 lines
8.1 KiB
Markdown
|
|
# ⚡⚡⚡ 立即测试 - 核心支付流程
|
|||
|
|
|
|||
|
|
**创建时间**: 2026-01-23
|
|||
|
|
**预计时间**: 10分钟
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
## 🚀 快速开始(3步)
|
|||
|
|
|
|||
|
|
### 步骤1: 准备测试数据(2分钟)
|
|||
|
|
|
|||
|
|
复制以下SQL并在数据库中执行:
|
|||
|
|
|
|||
|
|
```sql
|
|||
|
|
-- 1. 创建测试钱包
|
|||
|
|
INSERT INTO wallet (user_id, balance, frozen_balance, total_recharge, total_withdraw, create_time, update_time)
|
|||
|
|
VALUES (1, 500.00, 0.00, 500.00, 0.00, NOW(), NOW())
|
|||
|
|
ON DUPLICATE KEY UPDATE balance = 500.00, update_time = NOW();
|
|||
|
|
|
|||
|
|
-- 2. 创建测试次卡
|
|||
|
|
INSERT INTO time_card (user_id, card_no, card_name, card_type, price, total_hours, used_hours, remaining_hours, status, start_date, expire_date, create_time, update_time)
|
|||
|
|
VALUES (1, 'TC20260123001', '标准次卡', 'standard', 200.00, 10, 0, 10, 1, CURDATE(), DATE_ADD(CURDATE(), INTERVAL 1 YEAR), NOW(), NOW());
|
|||
|
|
|
|||
|
|
-- 3. 创建测试套餐
|
|||
|
|
INSERT INTO `package` (package_name, package_type, price, total_times, description, status, create_time, update_time)
|
|||
|
|
VALUES ('基础套餐', 'basic', 300.00, 5, '5次陪伴服务', 1, NOW(), NOW())
|
|||
|
|
ON DUPLICATE KEY UPDATE status = 1;
|
|||
|
|
|
|||
|
|
INSERT INTO user_package (user_id, package_id, package_name, total_times, used_times, remaining_times, status, purchase_time, expire_time, create_time, update_time)
|
|||
|
|
VALUES (1, 1, '基础套餐', 5, 0, 5, 1, NOW(), DATE_ADD(NOW(), INTERVAL 1 YEAR), NOW(), NOW());
|
|||
|
|
|
|||
|
|
-- 4. 创建测试优惠券
|
|||
|
|
INSERT INTO coupon (coupon_name, coupon_type, discount_amount, min_amount, total_quantity, received_quantity, used_quantity, start_time, end_time, status, create_time, update_time)
|
|||
|
|
VALUES ('新用户优惠券', 'discount', 20.00, 100.00, 100, 0, 0, NOW(), DATE_ADD(NOW(), INTERVAL 1 MONTH), 1, NOW(), NOW())
|
|||
|
|
ON DUPLICATE KEY UPDATE status = 1;
|
|||
|
|
|
|||
|
|
INSERT INTO user_coupon (user_id, coupon_id, coupon_name, coupon_type, discount_amount, min_amount, status, receive_time, expire_time, create_time, update_time)
|
|||
|
|
VALUES (1, 1, '新用户优惠券', 'discount', 20.00, 100.00, 0, NOW(), DATE_ADD(NOW(), INTERVAL 1 MONTH), NOW(), NOW());
|
|||
|
|
|
|||
|
|
-- 5. 创建测试订单
|
|||
|
|
INSERT INTO `order` (order_no, user_id, service_name, service_date, time_slot, duration, price, pay_amount, status, create_time, update_time)
|
|||
|
|
VALUES ('ORD20260123001', 1, '陪伴服务', CURDATE(), '14:00-16:00', 2, 150.00, 150.00, 0, NOW(), NOW());
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
### 步骤2: 重新编译前端(3分钟)
|
|||
|
|
|
|||
|
|
```bash
|
|||
|
|
# 方法1: 使用命令行
|
|||
|
|
cd peidu/uniapp
|
|||
|
|
npm run dev:mp-weixin
|
|||
|
|
|
|||
|
|
# 方法2: 使用HBuilderX
|
|||
|
|
# 右键项目 -> 运行 -> 运行到小程序模拟器 -> 微信开发者工具
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
### 步骤3: 打开支付页面测试(5分钟)
|
|||
|
|
|
|||
|
|
1. 打开微信开发者工具
|
|||
|
|
2. 在地址栏输入:`/pages/payment/index?orderId=1`
|
|||
|
|
3. 按Enter进入支付页面
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
## ✅ 快速验证清单
|
|||
|
|
|
|||
|
|
### 页面加载检查
|
|||
|
|
- [ ] 订单信息显示正常
|
|||
|
|
- [ ] 支付金额显示:¥150.00
|
|||
|
|
- [ ] 6种支付方式都显示
|
|||
|
|
|
|||
|
|
### 钱包支付检查
|
|||
|
|
- [ ] 显示"余额:¥500.00"
|
|||
|
|
- [ ] 点击可以选中
|
|||
|
|
- [ ] 显示绿色边框
|
|||
|
|
|
|||
|
|
### 次卡支付检查
|
|||
|
|
- [ ] 显示"1张可用"
|
|||
|
|
- [ ] 点击后弹出选择器
|
|||
|
|
- [ ] 显示"标准次卡 剩余10小时"
|
|||
|
|
- [ ] 选择后弹窗关闭
|
|||
|
|
|
|||
|
|
### 套餐支付检查
|
|||
|
|
- [ ] 显示"1个可用"
|
|||
|
|
- [ ] 点击后弹出选择器
|
|||
|
|
- [ ] 显示"基础套餐 剩余5次"
|
|||
|
|
- [ ] 选择后弹窗关闭
|
|||
|
|
|
|||
|
|
### 优惠券检查
|
|||
|
|
- [ ] 显示"1张可用"
|
|||
|
|
- [ ] 点击后弹出选择器
|
|||
|
|
- [ ] 显示"新用户优惠券 满100减20"
|
|||
|
|
- [ ] 选择后显示"-¥20.00"
|
|||
|
|
- [ ] 实付金额变为:¥130.00
|
|||
|
|
|
|||
|
|
### 支付流程检查
|
|||
|
|
- [ ] 选择钱包支付
|
|||
|
|
- [ ] 点击"立即支付"
|
|||
|
|
- [ ] 显示"支付中..."
|
|||
|
|
- [ ] 支付成功提示
|
|||
|
|
- [ ] 跳转到订单列表
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
## 🔍 快速调试
|
|||
|
|
|
|||
|
|
### 如果钱包余额不显示
|
|||
|
|
```javascript
|
|||
|
|
// 在控制台查看
|
|||
|
|
console.log('钱包余额:', this.walletBalance)
|
|||
|
|
|
|||
|
|
// 检查网络请求
|
|||
|
|
// Network标签 -> 查找 /api/wallet/balance
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
### 如果次卡不显示
|
|||
|
|
```sql
|
|||
|
|
-- 检查数据库
|
|||
|
|
SELECT * FROM time_card WHERE user_id = 1 AND status = 1;
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
### 如果优惠券不显示
|
|||
|
|
```sql
|
|||
|
|
-- 检查数据库
|
|||
|
|
SELECT * FROM user_coupon WHERE user_id = 1 AND status = 0;
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
## 📸 预期效果截图说明
|
|||
|
|
|
|||
|
|
### 1. 支付页面
|
|||
|
|
```
|
|||
|
|
┌─────────────────────────────┐
|
|||
|
|
│ 订单信息 │
|
|||
|
|
│ 订单号: ORD20260123001 │
|
|||
|
|
│ 服务名称: 陪伴服务 │
|
|||
|
|
│ 服务时间: 2026-01-23 14:00 │
|
|||
|
|
│ 服务时长: 2小时 │
|
|||
|
|
├─────────────────────────────┤
|
|||
|
|
│ 支付金额: ¥150.00 │
|
|||
|
|
├─────────────────────────────┤
|
|||
|
|
│ 选择支付方式 │
|
|||
|
|
│ │
|
|||
|
|
│ 💳 微信支付 ✓ │
|
|||
|
|
│ 💰 钱包支付 │
|
|||
|
|
│ 余额:¥500.00 │
|
|||
|
|
│ 🎟️ 次卡支付 │
|
|||
|
|
│ 1张可用 │
|
|||
|
|
│ 📦 套餐支付 │
|
|||
|
|
│ 1个可用 │
|
|||
|
|
│ 🔵 支付宝支付 │
|
|||
|
|
├─────────────────────────────┤
|
|||
|
|
│ 🎫 优惠券 1张可用 › │
|
|||
|
|
├─────────────────────────────┤
|
|||
|
|
│ 实付金额: ¥150.00 │
|
|||
|
|
│ [立即支付] │
|
|||
|
|
└─────────────────────────────┘
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
### 2. 选择优惠券后
|
|||
|
|
```
|
|||
|
|
┌─────────────────────────────┐
|
|||
|
|
│ 🎫 优惠券 -¥20.00 › │
|
|||
|
|
├─────────────────────────────┤
|
|||
|
|
│ 实付金额: ¥130.00 │
|
|||
|
|
│ [立即支付] │
|
|||
|
|
└─────────────────────────────┘
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
## ⚡ 一键测试脚本
|
|||
|
|
|
|||
|
|
### Windows批处理
|
|||
|
|
```batch
|
|||
|
|
@echo off
|
|||
|
|
echo ========================================
|
|||
|
|
echo 核心支付流程 - 快速测试
|
|||
|
|
echo ========================================
|
|||
|
|
echo.
|
|||
|
|
|
|||
|
|
echo [1/3] 执行SQL脚本...
|
|||
|
|
mysql -u root -p peidu < test_payment_data.sql
|
|||
|
|
echo SQL脚本执行完成!
|
|||
|
|
echo.
|
|||
|
|
|
|||
|
|
echo [2/3] 重新编译前端...
|
|||
|
|
cd peidu\uniapp
|
|||
|
|
call npm run dev:mp-weixin
|
|||
|
|
echo 前端编译完成!
|
|||
|
|
echo.
|
|||
|
|
|
|||
|
|
echo [3/3] 打开微信开发者工具...
|
|||
|
|
echo 请手动打开微信开发者工具
|
|||
|
|
echo 并访问: /pages/payment/index?orderId=1
|
|||
|
|
echo.
|
|||
|
|
|
|||
|
|
echo ========================================
|
|||
|
|
echo 测试准备完成!
|
|||
|
|
echo ========================================
|
|||
|
|
pause
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
### Linux/Mac脚本
|
|||
|
|
```bash
|
|||
|
|
#!/bin/bash
|
|||
|
|
echo "========================================"
|
|||
|
|
echo "核心支付流程 - 快速测试"
|
|||
|
|
echo "========================================"
|
|||
|
|
echo
|
|||
|
|
|
|||
|
|
echo "[1/3] 执行SQL脚本..."
|
|||
|
|
mysql -u root -p peidu < test_payment_data.sql
|
|||
|
|
echo "SQL脚本执行完成!"
|
|||
|
|
echo
|
|||
|
|
|
|||
|
|
echo "[2/3] 重新编译前端..."
|
|||
|
|
cd peidu/uniapp
|
|||
|
|
npm run dev:mp-weixin
|
|||
|
|
echo "前端编译完成!"
|
|||
|
|
echo
|
|||
|
|
|
|||
|
|
echo "[3/3] 打开微信开发者工具..."
|
|||
|
|
echo "请手动打开微信开发者工具"
|
|||
|
|
echo "并访问: /pages/payment/index?orderId=1"
|
|||
|
|
echo
|
|||
|
|
|
|||
|
|
echo "========================================"
|
|||
|
|
echo "测试准备完成!"
|
|||
|
|
echo "========================================"
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
## 🎯 成功标准
|
|||
|
|
|
|||
|
|
### 必须通过
|
|||
|
|
- ✅ 所有支付方式都能显示
|
|||
|
|
- ✅ 钱包余额正确显示
|
|||
|
|
- ✅ 次卡/套餐数量正确显示
|
|||
|
|
- ✅ 优惠券可以选择
|
|||
|
|
- ✅ 实付金额计算正确
|
|||
|
|
- ✅ 支付流程完整
|
|||
|
|
|
|||
|
|
### 可选通过
|
|||
|
|
- ⭕ 支付成功后跳转正确
|
|||
|
|
- ⭕ 数据库记录更新正确
|
|||
|
|
- ⭕ 余额/次数扣减正确
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
## 📞 遇到问题?
|
|||
|
|
|
|||
|
|
### 常见问题快速解决
|
|||
|
|
|
|||
|
|
**问题**: 页面空白
|
|||
|
|
**解决**: 检查orderId参数是否正确
|
|||
|
|
|
|||
|
|
**问题**: 余额不显示
|
|||
|
|
**解决**: 检查SQL是否执行成功
|
|||
|
|
|
|||
|
|
**问题**: 支付失败
|
|||
|
|
**解决**: 查看控制台错误信息
|
|||
|
|
|
|||
|
|
**问题**: 弹窗不显示
|
|||
|
|
**解决**: 检查数据是否存在
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
## ✅ 测试完成
|
|||
|
|
|
|||
|
|
测试完成后,请确认:
|
|||
|
|
- [ ] 所有功能正常
|
|||
|
|
- [ ] 无控制台错误
|
|||
|
|
- [ ] 支付流程完整
|
|||
|
|
- [ ] 数据更新正确
|
|||
|
|
|
|||
|
|
**测试时间**: ___________
|
|||
|
|
**测试结果**: ⭕ 通过 / ❌ 未通过
|
|||
|
|
**备注**: ___________
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
**立即开始测试!** 🚀
|