# 提现审核流程优化 ## 需求 提现申请提交后,应该明确告知用户: - ✅ 提现申请已提交 - ⏳ 正在审核中 - 💰 审核通过后会自动到账微信零钱 而不是误导用户以为已经立即到账。 ## 修改内容 ### 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. 建立信任(说到做到)