1. 应用标识 (AppKey): 核心逻辑键。客户端对接 API 时必须携带此标识,用于隔离不同的业务项目。
2. 状态切换: 启用 允许该应用下所有验证请求;停用 立即切断所有客户端访问。
1. 换机解绑: 若用户更换设备,只需编辑该卡密并清空“绑定 UID”字段即可。
2. 状态识别: 未使用 表示从未激活;已绑定 表示已锁定硬件 UID。
1. 分发机制: 客户端通过 GET /api/v1/software/latest
接口获取版本信息。需传入 appkey 或 filename 至少一项,系统将返回版本号最新的一条记录。
2. 字段对应: url 为下载链接,version 为对比基准。建议配合
filename 记录实际包名。
本手册旨在指导开发者将授权系统集成到客户端程序中。系统支持“一卡一机”硬件绑定。
① 启动校验:软件启动时,采集硬件 ID (UID),发送 POST 请求。若返回 200,进入程序。
② 激活流程:若 POST 返回 400 且提示未激活,引导用户打开网页激活:GET /api/v1/auth?activate=1&...
③ 定时轮询:软件运行期间,建议每 30 分钟静默重试一次 POST 验证,防止通过篡改内存绕过验证。
统一入口:支持 GET (网页激活) 和 POST (接口校验)。
用于在浏览器中打开,提供可视化界面供用户输入卡密。
GET /api/v1/auth?activate=1&appkey=YOUR_APPKEY&uid=YOUR_UID
由客户端后台调用,返回 JSON 授权结果。
import requests
res = requests.post(url, json={"appkey": "xxx", "uid": "xxx"})
print(res.json())
// 使用标准库或 resty
resp, err := client.R().SetBody(map[string]interface{}{"appkey": "xxx", "uid": "xxx"}).Post(url)
$ch = curl_init($url); curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode(["appkey"=>"xxx", "uid"=>"xxx"])); $res = curl_exec($ch);
axios.post('/api/v1/auth', {appkey: 'xxx', uid: 'xxx'})
.then(res => console.log(res.data));
| 字段名 | 类型 | 必选 | 示例 | 说明 |
|---|---|---|---|---|
| appkey | string | 是 | 20240502... | 应用标识 |
| uid | string | 是 | HWID-12345 | 硬件唯一标识 |
| card | string | 条件 | K123456 | 卡号 (首次激活必传) |
| password | string | 条件 | P123456 | 卡密密码 (首次激活必传) |
status: 状态标识 (active-生效, expired-过期, disabled-封禁)expire_time: 过期时间,格式 yyyy-MM-dd HH:mm:ssname: 后台配置的应用名称用于检测新版本并获取下载直链,支持下载量统计。
客户端调用此接口对比版本号,决定是否提醒更新。
GET /api/v1/software/latest?appkey=YOUR_APPKEY
| 参数名 | 必选 | 说明 |
|---|---|---|
| appkey | 条件 | 应用标识(推荐使用) |
| filename | 条件 | 文件完整名称(appkey和filename至少传一个) |
| platform | 否 | 平台筛选 (如 Windows, Android) |
| 字段名 | 说明 |
|---|---|
| version | 云端最新版本号,如 v1.0.5 |
| url | 统计跳转链接。客户端请求此地址将自动统计下载量并跳转。 |
| size | 文件大小,如 12.5 MB |
| description | 更新日志/升级说明 |
系统采用“中转重定向”方式统计下载量:接口返回的 url 指向本服务器,请求后系统 count + 1 并自动跳转至原始云盘地址。开发者无需额外处理,直接调用该 URL 即可。
安全警示:请务必不要在客户端本地存储明文的 AppKey,建议进行混淆处理。