Files
soul-yongping/开发文档/8、部署/提现审核流程优化.md
2026-02-09 15:09:29 +08:00

313 lines
7.5 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.

# 提现审核流程优化
## 需求
提现申请提交后,应该明确告知用户:
- ✅ 提现申请已提交
- ⏳ 正在审核中
- 💰 审核通过后会自动到账微信零钱
而不是误导用户以为已经立即到账。
## 修改内容
### 1. 后端提示优化
**文件**`app/api/withdraw/route.ts`
```typescript
return NextResponse.json({
success: true,
message: '提现申请已提交,正在审核中,通过后会自动到账您的微信零钱',
data: {
withdrawId,
amount,
account,
accountType: accountType === 'alipay' ? '支付宝' : '微信',
status: 'pending' // ✅ 新增:返回状态
}
})
```
**变更**
- ❌ 旧:`message: '提现成功'` (误导性)
- ✅ 新:`message: '提现申请已提交,正在审核中,通过后会自动到账您的微信零钱'` (准确)
- ✅ 新增 `status: 'pending'` 字段
### 2. 前端提示优化
**文件**`miniprogram/pages/referral/referral.js`
```javascript
if (res.success) {
wx.showModal({
title: '提现申请已提交 ✅',
content: res.message || '正在审核中,通过后会自动到账您的微信零钱',
showCancel: false,
confirmText: '知道了'
})
// 刷新数据(此时待审核金额会增加,可提现金额会减少)
this.initData()
}
```
**变更**
- ❌ 旧标题:`'提现成功 🎉'` (误导性)
- ✅ 新标题:`'提现申请已提交 ✅'` (准确)
- ❌ 旧内容:`'¥X.XX 已到账您的微信零钱'` (虚假)
- ✅ 新内容:`'正在审核中,通过后会自动到账您的微信零钱'` (真实)
- ❌ 旧按钮:`'好的'`
- ✅ 新按钮:`'知道了'`
### 3. 错误提示优化
```javascript
} else {
wx.showToast({
title: res.message || res.error || '提现失败',
icon: 'none',
duration: 3000 // ✅ 增加显示时间到3秒
})
}
```
## 提现流程说明
### 完整流程
```
1. 用户点击"申请提现"
2. 前端验证:可提现金额 >= 最低提现金额
3. 后端创建提现记录status = 'pending'
4. 提示用户:"提现申请已提交,正在审核中"
5. 刷新分销中心数据:
- 待审核金额 += 提现金额
- 可提现金额 -= 提现金额
6. 管理员在后台审核
7. 审核通过:
- 更新 withdrawals.status = 'completed'
- 自动转账到微信零钱
- 发送微信通知给用户
```
### 状态说明
| 状态 | 英文 | 说明 | 用户提示 |
|------|------|------|----------|
| 待审核 | `pending` | 提现申请已提交,等待管理员审核 | 正在审核中 |
| 已完成 | `completed` | 审核通过,已转账到微信零钱 | 已到账 |
| 已拒绝 | `failed` | 审核未通过 | 提现失败 |
### 数据变化示例
**提现前**
```
累计佣金: 100元
待审核金额: 0元
可提现金额: 100 - 0 = 100元
```
**申请提现50元后**
```
累计佣金: 100元
待审核金额: 0 + 50 = 50元
可提现金额: 100 - 50 = 50元
```
**审核通过后**
```
累计佣金: 100元
待审核金额: 50 - 50 = 0元
已提现金额: 0 + 50 = 50元
可提现金额: 100 - 0 = 100元 (如果有新订单)
```
## 用户体验对比
### 修改前(误导性)
```
┌─────────────────────┐
│ 提现成功 🎉 │
├─────────────────────┤
│ ¥50.00 已到账您的 │
│ 微信零钱 │
├─────────────────────┤
│ [好的] │
└─────────────────────┘
```
**问题**
- ❌ 用户以为钱已经到账
- ❌ 用户去微信查看,发现没钱
- ❌ 产生疑惑和不满
### 修改后(准确清晰)
```
┌─────────────────────┐
│ 提现申请已提交 ✅ │
├─────────────────────┤
│ 正在审核中,通过后 │
│ 会自动到账您的微信 │
│ 零钱 │
├─────────────────────┤
│ [知道了] │
└─────────────────────┘
```
**优点**
- ✅ 用户知道需要等待审核
- ✅ 用户知道审核通过后会自动到账
- ✅ 符合实际情况
## 后续优化建议
### 1. 审核通知
管理员审核通过后,发送微信模板消息通知用户:
```javascript
// 伪代码
wx.sendTemplateMessage({
touser: userOpenId,
template_id: 'OPENTM415934726',
data: {
thing1: { value: '提现申请' },
amount2: { value: '50.00元' },
phrase3: { value: '审核通过' },
time4: { value: '2026-02-04 15:30' }
}
})
```
### 2. 提现记录页面
在"我的"页面增加"提现记录"入口,让用户查看:
- 待审核的提现申请
- 已完成的提现记录
- 失败的提现记录及原因
### 3. 审核预计时间
在提示中增加审核时长预期:
```
正在审核中预计1-3个工作日内完成审核
通过后会自动到账您的微信零钱
```
### 4. 自动审核
对于小额提现如50元以下可以实现自动审核
```javascript
if (amount <= 50) {
// 自动审核通过
await query(`UPDATE withdrawals SET status = 'completed' WHERE id = ?`, [withdrawId])
// 立即转账
await wechatPay.transferToWallet(...)
return { message: '提现成功,已到账您的微信零钱' }
} else {
// 需要人工审核
return { message: '提现申请已提交,正在审核中' }
}
```
## 管理后台提现审核功能
### 审核页面功能
1. **提现列表**
- 显示所有待审核的提现申请
- 显示用户信息、提现金额、申请时间
- 显示用户的累计佣金、历史提现次数
2. **审核操作**
- 通过:调用微信商家转账接口
- 拒绝:填写拒绝原因
3. **记录查询**
- 已完成的提现记录
- 失败的提现记录
### 审核接口(待实现)
```typescript
// POST /api/admin/withdraw/approve
{
"withdrawId": "W1738694028123",
"action": "approve" | "reject",
"reason": "拒绝原因(可选)"
}
```
## 测试步骤
### 1. 测试提现申请
1. 在小程序中进入分销中心
2. 确保可提现金额 >= 5元
3. 点击"申请提现"按钮
4. 确认提现金额
5. 查看提示是否为"提现申请已提交,正在审核中"
### 2. 验证数据变化
提现后立即刷新页面,检查:
- ✅ 累计佣金不变
- ✅ 待审核金额增加
- ✅ 可提现金额减少
- ✅ 提现按钮重新判断是否可用
### 3. 查看数据库
```sql
-- 查看提现记录
SELECT * FROM withdrawals
WHERE user_id = 'ogpTW5fmXRGNpoUbXB3UEqnVe5Tg'
ORDER BY created_at DESC
LIMIT 5;
-- 应该看到最新的记录status = 'pending'
```
### 4. 模拟审核通过
```sql
-- 手动更新状态为已完成
UPDATE withdrawals
SET status = 'completed',
completed_at = NOW()
WHERE id = 'W1738694028123';
```
再次刷新小程序,检查:
- ✅ 待审核金额减少
- ✅ 可提现金额恢复
## 相关文件
- `app/api/withdraw/route.ts` - 提现接口(修改返回消息)
- `miniprogram/pages/referral/referral.js` - 前端提现逻辑(修改提示)
## 总结
这次优化的核心是**准确传达信息**
- ❌ 不要给用户虚假期望("已到账"实际未到账)
- ✅ 明确告知用户当前状态("正在审核"
- ✅ 告知用户后续流程("通过后会自动到账"
这样可以:
1. 提升用户体验(不会产生困惑)
2. 减少客服咨询(用户知道要等待)
3. 建立信任(说到做到)