> For clean Markdown of any page, append .md to the page URL.
> For a complete documentation index, see https://developers.alephant.io/llms.txt.
> For AI client integration (Claude Code, Cursor, etc.), connect to the MCP server at https://developers.alephant.io/_mcp/server.

# 套餐与计费

> 运维本地许可证与条件式订阅流程，同时避免将计费元数据当作当前访问控制。

Admin **套餐与计费**页面会展示当前部署可用的计费路径。自托管部署可以使用本地验证的许可证；已连接的自托管部署和多租户部署则可在配置计费服务后显示订阅操作。

在当前源码中，许可证执行与套餐门控中间件都是兼容性 pass-through。许可证和订阅状态可以被验证、缓存与显示，但目前不会阻止应用路由或功能。在把计费状态视为访问控制或权益合同前，请重新确认实际运行版本的行为。

## 页面表示的内容

| 界面         | 当前用途                      | 该界面无法证明的内容   |
| ---------- | ------------------------- | ------------ |
| 套餐标签与订阅摘要  | 显示当前部署可用的计费元数据            | 已发布价格或功能权益目录 |
| 本地许可证状态    | 显示已验证许可证元数据、过期状态、席位值与刷新结果 | 当前路由或功能执行    |
| 结账、门户与席位操作 | 由 Admin 发起已配置的计费服务操作      | 未连接计费服务时仍可用  |
| 试用操作       | 仅在受支持的多租户路径中结束试用          | 自托管许可证生命周期操作 |

代码仓库中的 UI 包含套餐标签，但本文档不定义价格，也不会根据这些标签推断功能访问。

## 部署路径

| 部署路径          | 计费状态来源             | 可用操作                                |
| ------------- | ------------------ | ----------------------------------- |
| 使用手动许可证的自托管部署 | 在本地上传并验证的签名许可证     | 在 Admin 控制可用时上传、查看状态、刷新本地缓存或删除本地许可证 |
| 已连接的自托管部署     | 计费服务，以及本地认领并验证的许可证 | 配置完成后可执行结账、返回后认领、计费摘要、门户、席位更新与许可证刷新 |
| 多租户部署         | 租户已配置的计费服务         | 配置完成后可执行计费摘要、结账、门户、席位更新与受支持的试用结束操作  |

页面会根据部署配置，在自托管与多租户服务路由之间做出选择。不要在未验证条件的情况下，把某一路径的操作复制到另一路径。

## 本地许可证生命周期

#### 通过获批渠道取得许可证

自托管运维人员通过既定商业或内部流程取得部署专用的签名许可证。不要把许可证放入工单、聊天记录或文档。

#### 由 Admin 认领或上传

已连接部署可以在结账后认领许可证。断网或隔离部署可以在该自托管端点可用时使用手动上传控制。

#### 持久化前验证

后端会先通过已配置的 RSA-PSS 与 SHA-256 验证路径校验签名载荷，再保存许可证。签名验证失败时不得创建有效的本地许可证状态。

#### 读取本地状态

页面可以显示来自已验证许可证与缓存元数据的套餐信息、席位、过期、宽限或受限状态。这些值在当前源码中属于运维状态，不属于路由执行。

手动上传是自托管操作。上传时不需要实时计费请求，但后续已连接刷新或订阅变更仍需要相应服务路径。

## 已连接计费生命周期

#### 开始结账

Admin 发起已配置的结账会话。新的自托管购买可在没有现有许可证时开始；续订则通过当前许可证或租户上下文识别既有部署。

#### 处理返回流程

自托管结账成功返回后，UI 会认领签名许可证，在签发尚未完成时重试，刷新应用设置，再重新加载计费状态。

#### 管理订阅

门户与席位控制使用已配置的计费服务。自托管门户操作需要现有本地许可证；减少后的席位数不能低于已使用席位数。

#### 刷新本地状态

已连接的自托管席位更新后，应重新认领或刷新重新生成的许可证，再依赖界面显示的席位值。

这些操作取决于为部署配置的计费服务或控制平面连接，不能作为手动许可证环境的离线替代方案。

## 条件式操作

| 操作      | 必要条件                             | 失败边界                     |
| ------- | -------------------------------- | ------------------------ |
| 结账      | Admin 访问与已配置的计费连接                | 计费服务不可达或未配置时，无法创建结账会话。   |
| 计费摘要    | 有效租户上下文，或在需要时具备自托管许可证上下文         | 没有许可证的自托管部署可以返回空订阅状态。    |
| 计费门户    | Admin 访问、已配置的连接，以及现有租户或自托管许可证上下文 | 缺少上下文或服务失败时，无法创建门户。      |
| 席位更新    | Admin 访问、已配置的连接，且请求数量不低于当前使用量    | 验证或服务失败时，请求的变更不会生效。      |
| 结束试用    | 多租户模式、已配置的连接及所需支付方式              | 自托管许可证操作不提供此能力。          |
| 手动上传许可证 | 自托管模式与有效的签名许可证载荷                 | 格式或签名无效时，在存储有效本地状态前即被拒绝。 |

## 当前访问行为

| 状态               | 当前可观察行为               | 治理结论                    |
| ---------------- | --------------------- | ----------------------- |
| 有效、宽限、受限或过期的本地状态 | 可以计算并显示状态与元数据         | 应记录并监控状态，但不能声称它目前会阻止路由。 |
| 套餐或层级标签          | UI 可以显示计费或许可证元数据提供的标签 | 不要根据标签推断价格或已启用功能清单。     |
| 许可证中间件           | 当前实现会放行请求             | 独立于计费状态保留应用授权控制。        |
| 层级检查             | 当前实现会解析为允许            | 直接验证功能是否暴露，而不能依赖套餐名称比较。 |

计费状态不能替代 Admin 授权、租户隔离、群组权限、连接器访问或模型提供商控制。

## 断网与失败行为

有效的手动上传自托管许可证可以在没有实时计费调用时继续提供本地可读元数据。已连接的结账、门户、席位、认领与刷新操作仍可能因配置、网络或计费服务可用性而失败。计费摘要读取可能返回空状态或暂时不可用状态，而不能据此证明订阅已取消。

不要在日志、截图与文档中保存签名许可证载荷和计费标识符。调查故障时，记录操作时间、部署路径、响应状态与非敏感关联标识符。

## 验证

1. 确认部署属于自托管还是多租户，并确认是否有意配置了计费连接。
2. 以 Admin 身份验证页面使用匹配的服务路径，且不会显示仅属于另一部署路径的操作。
3. 对手动许可证分别测试有效签名载荷与刻意构造的无效测试载荷，确认只有有效载荷会创建可读本地状态。
4. 对已连接的自托管结账，先确认返回后的认领与设置刷新，再接受页面显示的订阅或席位状态。
5. 独立于计费状态测试应用路由，确认实际运行版本的执行行为，而不是根据页面标签推断。

## 相关页面

* [部署模式](/opencore/deployment-modes)说明受支持模式之间的运维差异。
* [用户、群组与角色](/opencore/governance/users-and-groups)说明组织控制的 Admin 边界。
* [用量、身份与安全](/opencore/governance/usage-and-security)说明保持独立于计费元数据的控制。