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

7.5 KiB
Raw Blame History

提现审核流程优化

需求

提现申请提交后,应该明确告知用户:

  • 提现申请已提交
  • 正在审核中
  • 💰 审核通过后会自动到账微信零钱

而不是误导用户以为已经立即到账。

修改内容

1. 后端提示优化

文件app/api/withdraw/route.ts

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

if (res.success) {
  wx.showModal({
    title: '提现申请已提交 ✅',
    content: res.message || '正在审核中,通过后会自动到账您的微信零钱',
    showCancel: false,
    confirmText: '知道了'
  })
  
  // 刷新数据(此时待审核金额会增加,可提现金额会减少)
  this.initData()
}

变更

  • 旧标题:'提现成功 🎉' (误导性)
  • 新标题:'提现申请已提交 ✅' (准确)
  • 旧内容:'¥X.XX 已到账您的微信零钱' (虚假)
  • 新内容:'正在审核中,通过后会自动到账您的微信零钱' (真实)
  • 旧按钮:'好的'
  • 新按钮:'知道了'

3. 错误提示优化

} 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. 审核通知

管理员审核通过后,发送微信模板消息通知用户:

// 伪代码
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元以下可以实现自动审核

if (amount <= 50) {
  // 自动审核通过
  await query(`UPDATE withdrawals SET status = 'completed' WHERE id = ?`, [withdrawId])
  // 立即转账
  await wechatPay.transferToWallet(...)
  return { message: '提现成功,已到账您的微信零钱' }
} else {
  // 需要人工审核
  return { message: '提现申请已提交,正在审核中' }
}

管理后台提现审核功能

审核页面功能

  1. 提现列表

    • 显示所有待审核的提现申请
    • 显示用户信息、提现金额、申请时间
    • 显示用户的累计佣金、历史提现次数
  2. 审核操作

    • 通过:调用微信商家转账接口
    • 拒绝:填写拒绝原因
  3. 记录查询

    • 已完成的提现记录
    • 失败的提现记录

审核接口(待实现)

// POST /api/admin/withdraw/approve
{
  "withdrawId": "W1738694028123",
  "action": "approve" | "reject",
  "reason": "拒绝原因(可选)"
}

测试步骤

1. 测试提现申请

  1. 在小程序中进入分销中心
  2. 确保可提现金额 >= 5元
  3. 点击"申请提现"按钮
  4. 确认提现金额
  5. 查看提示是否为"提现申请已提交,正在审核中"

2. 验证数据变化

提现后立即刷新页面,检查:

  • 累计佣金不变
  • 待审核金额增加
  • 可提现金额减少
  • 提现按钮重新判断是否可用

3. 查看数据库

-- 查看提现记录
SELECT * FROM withdrawals 
WHERE user_id = 'ogpTW5fmXRGNpoUbXB3UEqnVe5Tg' 
ORDER BY created_at DESC 
LIMIT 5;

-- 应该看到最新的记录status = 'pending'

4. 模拟审核通过

-- 手动更新状态为已完成
UPDATE withdrawals 
SET status = 'completed', 
    completed_at = NOW() 
WHERE id = 'W1738694028123';

再次刷新小程序,检查:

  • 待审核金额减少
  • 可提现金额恢复

相关文件

  • app/api/withdraw/route.ts - 提现接口(修改返回消息)
  • miniprogram/pages/referral/referral.js - 前端提现逻辑(修改提示)

总结

这次优化的核心是准确传达信息

  • 不要给用户虚假期望("已到账"实际未到账)
  • 明确告知用户当前状态("正在审核"
  • 告知用户后续流程("通过后会自动到账"

这样可以:

  1. 提升用户体验(不会产生困惑)
  2. 减少客服咨询(用户知道要等待)
  3. 建立信任(说到做到)