KamiAdmin
应用数
0
卡密总数
0
已绑定
0
今日验证
0
未使用
0
已过期
0
今日成功
0
今日失败
0
应用管理与状态说明

1. 应用标识 (AppKey): 核心逻辑键。客户端对接 API 时必须携带此标识,用于隔离不同的业务项目。

2. 状态切换: 启用 允许该应用下所有验证请求;停用 立即切断所有客户端访问。

卡密生命周期与绑定逻辑

1. 换机解绑: 若用户更换设备,只需编辑该卡密并清空“绑定 UID”字段即可。

2. 状态识别: 未使用 表示从未激活;已绑定 表示已锁定硬件 UID。

版本管理与更新逻辑

1. 分发机制: 客户端通过 GET /api/v1/software/latest 接口获取版本信息。需传入 appkeyfilename 至少一项,系统将返回版本号最新的一条记录。

2. 字段对应: url 为下载链接,version 为对比基准。建议配合 filename 记录实际包名。

FN-KAMI 开发者集成手册 (v1.1)
本手册旨在指导开发者将授权系统集成到客户端程序中。系统支持“一卡一机”硬件绑定。

1. 对接逻辑建议

① 启动校验:软件启动时,采集硬件 ID (UID),发送 POST 请求。若返回 200,进入程序。

② 激活流程:若 POST 返回 400 且提示未激活,引导用户打开网页激活:GET /api/v1/auth?activate=1&...

③ 定时轮询:软件运行期间,建议每 30 分钟静默重试一次 POST 验证,防止通过篡改内存绕过验证。

2. 授权验证接口 (Auth)

统一入口:支持 GET (网页激活) 和 POST (接口校验)。

2.1 网页激活 (GET)

用于在浏览器中打开,提供可视化界面供用户输入卡密。

GET /api/v1/auth?activate=1&appkey=YOUR_APPKEY&uid=YOUR_UID

2.2 接口校验 (POST)

由客户端后台调用,返回 JSON 授权结果。

  • Python
  • Go
  • PHP
  • JS
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));

请求参数 (Body):

字段名类型必选示例说明
appkeystring20240502...应用标识
uidstringHWID-12345硬件唯一标识
cardstring条件K123456卡号 (首次激活必传)
passwordstring条件P123456卡密密码 (首次激活必传)

响应数据说明 (Data):

  • status: 状态标识 (active-生效, expired-过期, disabled-封禁)
  • expire_time: 过期时间,格式 yyyy-MM-dd HH:mm:ss
  • name: 后台配置的应用名称

3. 软件版本与分发 (Software)

用于检测新版本并获取下载直链,支持下载量统计。

3.1 检测更新 (GET)

客户端调用此接口对比版本号,决定是否提醒更新。

GET /api/v1/software/latest?appkey=YOUR_APPKEY

请求参数 (Query):

参数名必选说明
appkey条件应用标识(推荐使用)
filename条件文件完整名称(appkey和filename至少传一个)
platform平台筛选 (如 Windows, Android)

关键响应字段:

字段名说明
version云端最新版本号,如 v1.0.5
url统计跳转链接。客户端请求此地址将自动统计下载量并跳转。
size文件大小,如 12.5 MB
description更新日志/升级说明

3.2 下载统计机制

系统采用“中转重定向”方式统计下载量:接口返回的 url 指向本服务器,请求后系统 count + 1 并自动跳转至原始云盘地址。开发者无需额外处理,直接调用该 URL 即可。

3. 常见问题 (FAQ)

用户更换电脑了如何处理?

管理员在“卡密管理”中编辑对应卡密,清空“绑定 UID”字段即可。

如何防止本地时间修改绕过?

所有的有效期判定均在服务器端完成。客户端只需根据接口返回的 code 进行逻辑跳转。

安全警示:请务必不要在客户端本地存储明文的 AppKey,建议进行混淆处理。