授权验证 API 接口文档(开发者)
更新于 2026-09-25 20:34
授权验证 API
软件客户端通过以下接口完成激活与验证。所有接口均为 POST,请求体为 application/json。
激活设备
POST /api/v1/activate
{
"license_key": "XXXX-XXXX-XXXX-XXXX",
"machine_code": "设备机器码",
"product_slug": "panassistant",
"device_name": "可选,设备名称"
}
成功返回:
{
"code": 0,
"msg": "ok",
"data": {
"status": 1,
"product": "panassistant",
"trial": false,
"license_key": "XXXX-XXXX-XXXX-XXXX",
"expires_at": 1767196000,
"max_devices": 1,
"server_time": 1735689600,
"sig": "hmac-sha256 签名"
}
}
校验授权
POST /api/v1/verify
{ 同激活接口参数 }
解绑设备
POST /api/v1/deactivate
{ "license_key": "...", "machine_code": "..." }
响应签名验证
sig = hash_hmac('sha256', license_key|machine_code|product|status|expires_at|server_time, license_secret)
客户端可用签名确认响应来自本服务器,防止伪造。license_secret 可在管理后台"系统设置"中查看。
软件套装授权
若授权码来自套装(打包出售的商品),product_slug 可传套装内任意一款软件的 slug,服务器会自动匹配:
- 响应中
bundle = true,covered数组列出套装包含的全部软件 slug product字段返回客户端请求的软件 slug,sig同样基于该值计算- 传套装外软件的 slug 会返回"该授权码不适用于此软件"
试用授权
用户在软件详情页可自助领取一次试用授权(软件是否开放试用、试用天数由后台"产品管理"设置)。试用授权与正式授权走同一套接口,仅多两个标识字段:
- 响应
data.trial = true表示这是试用授权 - 同时给出
data.buy_url(该软件的购买页)与data.remaining_days(剩余天数)
试用到期后,verify 与 activate 都会失败,返回码 code = 6,响应额外带 trial / trial_ended / buy_url,例如:
{
"code": 6,
"msg": "试用期已结束(2026-09-24 到期),购买正式授权后可继续使用",
"data": { "valid": false, "trial": true, "expires_at": 1758643200 },
"trial": true,
"trial_ended": true,
"buy_url": "https://你的域名/products/panassistant"
}
建议客户端据此提示"试用已结束,请购买正式授权"并打开 buy_url。注意区分:正式授权到期时 verify 返回 code = 6 且 msg 为"授权已过期",activate 返回 code = 1,且不带 trial 字段。
其他与该授权相关的返回码:code = 4 已被禁用、code = 5 已被吊销、code = 3 设备未激活、code = 2 绑定设备数已达上限。