> For the complete documentation index, see [llms.txt](https://tinyhumans.gitbook.io/openhuman/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://tinyhumans.gitbook.io/openhuman/zh/gong-neng/rewards-and-referrals.md).

# 奖励与推荐

邀请朋友、赚取推荐积分，并在 OpenHuman 中解锁 Discord 社区角色。促销码兑换位于托管计费仪表板中。

OpenHuman 的奖励界面整合了一个 **推荐计划** （分享一个代码，当朋友完成转化时赚取积分）以及一个 **社区奖励** 跟踪（连接 Discord，在达到使用里程碑时解锁角色）。促销优惠券在托管的 TinyHumans 计费仪表板中兑换，邀请码管理位于独立页面。

这一切都需要已登录的后端会话。在仅本地会话下，奖励页面会显示空状态，提示你登录——这些功能都无法离线工作。

***

## 奖励页面

位于 `/rewards` ，并带有两个侧边栏入口。 **奖励** （社区）默认选中。

| 标签     | 作用                      |
| ------ | ----------------------- |
| **推荐** | 你的推荐码、收益和被推荐用户活动        |
| **奖励** | Discord 连接、进度环和可解锁的社区角色 |

***

## 推荐

每个账户只有一个 **推荐码**。复制它，或者使用 **分享** （原生分享面板，失败时回退到剪贴板）发送一条预填消息，其中包含你的代码和应用下载链接。

该标签页显示四个卡片：你的代码、 **总收入** （美元）、 **待处理推荐**，以及 **已完成** 推荐。它们下方有一个 **活动表** 列出每个被推荐用户（已遮蔽身份，例如 `j***@gmail.com`）、一个状态徽章、奖励金额和时间戳。

| 推荐状态 | 含义                 |
| ---- | ------------------ |
| 已加入  | 被推荐用户已注册，但尚未完成转化   |
| 已完成  | 被推荐用户已转化 - 推荐奖励已入账 |
| 已过期  | 关系失效（保留；由后端驱动）     |

如果你是由他人推荐且仍符合资格，则有一个 **申请** 表单可让你输入他们的邀请码。资格（`canApplyReferral`）由后端决定——通常只有尚未订阅或尚未应用过代码的用户才能领取。一旦应用，表单就会被已关联代码的确认信息替代。

奖励金额、转化规则和资格都在 **服务器端**强制执行。桌面核心在这里只是一个轻量适配器。

### 在底层

推荐领域（`crates/openhuman-core/src/hosted/referral/`）是无状态 RPC 适配器，而不是业务逻辑。之所以存在它，是因为桌面 WebView 的 `fetch` 可能因通用的“加载失败”（CORS/TLS/WebKit）而出错，因此这些调用会复用与计费相同的服务器端 `reqwest` 路径。

| RPC                  | 后端调用                   | 用途                   |
| -------------------- | ---------------------- | -------------------- |
| `referral.get_stats` | `GET /referral/stats`  | 代码、总计和被推荐用户行         |
| `referral.claim`     | `POST /referral/claim` | 应用推荐码（可选设备指纹，用于滥用信号） |

两者都会在以下情况下直接失败： `没有后端会话令牌` 当未存储会话时。

***

## 优惠券

优惠券兑换和兑换历史现在位于 **TinyHumans Dashboard → 按量付费**，与促销额度和充值余额并列。OpenHuman 的“设置 → 计费”页面显示只读账户摘要，并打开该托管仪表板以进行兑换和其他计费更改。

托管仪表板会列出每个代码、其奖励金额、状态和兑换时间。兑换要么会立即应用，要么会作为 **待处理** 接受，当它取决于后续操作时。

| 优惠券状态 | 含义              |
| ----- | --------------- |
| 已应用   | 已履行 - 额度已在你的账户中 |
| 待执行操作 | 等待触发操作的有条件优惠券   |
| 已兑换   | 已接受，尚未履行        |

***

## 社区奖励与 Discord

奖励标签页将使用游戏化。一个 **进度环** 显示你在总成就中已解锁了多少，并且一个 **角色与奖励** 的列表描述每个里程碑（有些附带可选的美元额度）。状态徽章（当前连胜、累计代币）会在底部汇总你的活动。

奖励以 **Discord 角色**的形式发放，因此该标签页围绕绑定你的 Discord 账号构建：

1. **连接 Discord** 会启动 OAuth 授权流程（`openhuman.auth.oauth_connect` ，提供方为 `discord`）；成功后快照会刷新并显示你的 Discord 用户名。
2. **加入 Discord** 打开社区服务器邀请。
3. **断开连接** 取消账号关联（清除已存储的 Discord ID，幂等）。

一旦关联，每个已解锁的成就都会显示其 Discord 角色分配状态：

| 角色状态  | 含义                    |
| ----- | --------------------- |
| 已分配   | 服务器上已授予角色             |
| 待处理   | 已解锁，但角色尚未分配           |
| 加入以领取 | 已关联但不在服务器中 - 加入即可接收角色 |

如果你已解锁一个带角色的成就但尚未加入服务器， **领取横幅** 会提示你加入。成员状态之一是 `成员`, `未在公会中`, `未关联`，或 `不可用`.

> 基于 GitHub 的贡献者奖励是一个 **独立的** 机制：一个 GitHub Actions 工作流（`.github/workflows/contributor-rewards.yml`）会在贡献者的首个 PR 合并时发布一条 Discord/周边邀请评论。它不属于应用内的奖励页面，也不使用应用内的 GitHub OAuth。

***

## 邀请码

该 **邀请** 页面（`/invites`）与推荐码不同。它管理用于限制新用户注册的个人 **邀请码** ：

* **兑换** ——如果你还未被邀请，请输入邀请码来领取你的名额。
* **你的邀请码** ——分配给你的代码列表。每一行显示代码（等宽字体）、复制按钮以及一个 **启用/禁用** 状态。当某个代码的使用次数耗尽时，它会变为禁用（`currentUses >= maxUses`），并显示是谁领取了它。

邀请码包含 `类型` (`用户` 或 `活动`), `maxUses`/`currentUses` 计数器，以及一个 `usageHistory` ，记录谁在何时兑换了它们。

***

## 另请参阅

* [计费与使用](/openhuman/zh/gong-neng/billing-and-usage.md) ——推荐、优惠券和成就额度的使用处。
* [欢迎](/openhuman/zh/gai-lan/readme.md) ——文档首页。
