Files
opsx-licence/docs/licensing-model.md
T
Logan.LiandCursor 8cc2c83f9d feat: 通用授权后台、离线证、Waffo 支付页与仪表盘加强
支持多产品计划展示、LICOFF 离线签发、支付独立配置与调试,以及分析看板;同步更新 README 与集成文档。

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-08-12 20:25:46 +08:00

70 lines
2.8 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# OpsXShell / 多产品授权模型
管理端 `opsx-licence` 与客户端(PC / Web / 移动)的最小合理授权结构。目标:在线可座位管理,离线可自包含验签,支付与发证解耦;**产品维度通用**,不绑死单一桌面端。
## 核心实体
| 实体 | 含义 |
|------|------|
| **Product** | 可售卖产品(如 `opsxshell`;可扩展更多) |
| **Plan** | 定价档位(SKU),不是用户手里的证 |
| **Customer** | 客户(邮箱 / 公司) |
| **License** | 许可证实例(在线 `LIC-…` 或离线 `LICOFF-…`) |
| **Activation** | 设备座位(在线多座位;离线签发时绑 1 台) |
| **Order** | 支付订单;Waffo 只收款,**发证统一走 License** |
> 「客户权益 Entitlement」仍可能被订单履约写入,但管理菜单已移除独立权益页——运营以 **订单 + License** 为准。
## 三档 Plan(OpsXShell 默认)
| plan_type | 显示名 | 时长 | 设备数 |
|-----------|--------|------|--------|
| `trial` | 体验 | 180 天 | 1 |
| `yearly` | 包年 | 365 天 | 2 |
| `perpetual` | 永久 | 0=永久 | 5 |
管理端 **定价计划** 列表必须展示所属 **产品**;启动时 seed 会同步中文名。
## 在线 vs 离线
### 在线证(`LIC-…`)
- 服务端签发与激活;座位在 `activations`
- 客户端:`/api/v1/license/activate|verify|heartbeat|deactivate`
- 支持 trial / yearly / perpetual;永久仅在线
### 离线证(`LICOFF-1.<payload>.<sig>`)
- Ed25519 自包含;载荷含 `device_id`、`plan_type`、`iat`/`exp`
- **最长 365 天**;仅 trial / yearly;**禁止永久离线证**
- **必须绑定对方提供的 device_id**(换机无效)
- **不可「续期」**:到期后重新签发新序列号(可同设备)
- 管理端独立页:`/offline-licenses`
- 环境变量:`OFFLINE_LICENSE_SEED`(派生密钥);公钥可供客户端嵌入
## 支付边界
- 配置入口:**支付** 菜单(非系统设置)
- Product ID 使用可扩展映射表(多 SKU)
- 调试:`POST /api/payment/waffo/debug`
- 详见 [waffo-integration.md](./waffo-integration.md)
## 客户端约定
- API Base:`https://l123.91ai.io/api`(或自建域名 + `/api`)
- 激活识别:`LIC-…` → 在线;`LICOFF-…` → 本地验签
- 激活请求建议带 `device_info` JSON(`platform` / `country` 等),便于仪表盘「平台 / 地理」分布
## 仪表盘指标
- License 总数、已过期、在线设备(约 5 分钟心跳)
- 本月 / 累计收入、License 增长趋势
- 产品分布、地理/网络粗分、客户端形态(pc/web/mobile)
## 废弃 / 避免
- 计划英文渣名面向运营(`Trial 180d` 等)
- 旧 `opsx1.` 令牌、客户端粘贴商户私钥当激活码
- 永久离线证、未绑设备的万能离线串
- 把支付私钥写进仓库或前端