# 邀请好友功能修复方案 ## 问题分析 邀请好友页面(`/wallet/invite`)当前显示邀请码和链接,但当用户通过邀请链接注册时,系统未调用 `tasks.track` API 记录邀请行为,导致邀请任务无法完成和领取奖励。 --- ## 当前状态 | 项目 | 状态 | |------|------| | 邀请页面 | `src/pages/Wallet/Invite.tsx` | | 邀请 API | `api_request.invite.getCode()` / `getStats()` / `getRecords()` | | 任务追踪 API | `api_request.tasks.track({ action_type, count })` | | 注册流程 | `user_login_or_register` 未传递 `invite_code` | --- ## 问题根因 1. **注册时未传递 invite_code** - 新用户通过邀请链接注册时,前端未将邀请码传递给注册 API 2. **未调用 tasks.track** - 注册成功后未记录邀请行为到任务系统 --- ## 实现方案 ### 修改文件 | 文件 | 修改内容 | |------|----------| | `authSlice.tsx` | 登录/注册时传递 `invite_code` | | `Invite.tsx` | 注册成功后调用 `tasks.track` | ### 详细步骤 #### 1. 从 URL 提取 invite_code 当用户通过邀请链接(如 `https://chunyu.dev/invite/CY123456` 或带 `?invite=CY123456`)访问时,从 URL 中提取邀请码并存储到 localStorage。 #### 2. 注册时传递 invite_code 在 `user_login_or_register` 请求中附加 `invite_code` 参数。 #### 3. 注册成功后调用 tasks.track 注册成功后,调用 `api_request.tasks.track({ action_type: 'invite', count: 1 })` 记录邀请行为。 --- ## 验证步骤 1. 访问 `/invite/CY123456` 确认邀请码被正确提取 2. 使用新账号注册,确认注册请求包含 `invite_code` 3. 注册成功后确认 `tasks.track` 被调用 4. 在任务中心确认邀请任务进度更新