为软件授权而生,覆盖验证全流程
支持时间卡(日/周/月/季/年/自定义天数)与次数卡,首次验证自动激活计时,到期自动失效。
一卡可限绑 N 台设备,防止一卡多卖;提供解绑接口,每卡解绑次数可控。
客户端定时心跳续期,防止离线篡改时间无限续用,后台实时查看在线授权数。
接口按 IP 限频防撞库,卡密去除易混淆字符,登录令牌 HMAC 签名防伪造。
一套系统管理多个软件,每个应用独立卡密池、独立设备绑定数与应用开关。
发卡量、激活量、到期量、今日验证成功率一目了然,验证日志完整可查。
输入卡密即可查询当前状态(设备信息已脱敏)
RESTful 接口,任何语言均可快速接入
POST /api/v1/verify —— 验证卡密并绑定机器码| 参数 | 说明 |
|---|---|
| app | 应用 ID(后台应用管理里查看,如 app1) |
| key | 卡密 |
| device | 机器码(客户端采集的硬件标识) |
{
"app": "app1",
"key": "ABCD-EFGH-JKLM-NPQR",
"device": "PC-D8CB8AE0F1"
}
// 返回
{ "code": 200, "msg": "验证成功",
"data": { "expireAt": 1798243200000, "type": "time",
"token": "eyJ..." } }
POST /api/v1/heartbeat —— 心跳续期(建议每 60 秒一次){ "token": "verify 返回的 token" }
// 返回 code=200 表示授权持续有效
POST /api/v1/unbind —— 解绑当前设备{ "app": "app1", "key": "ABCD-...", "device": "PC-D8CB8AE0F1" }
// 每张卡解绑次数有限(后台可配置)
GET /api/v1/query?key=卡密 —— 查询卡密状态返回 { status, type, expireAt, remain, devices[] }(设备已脱敏)
| code | 含义 |
|---|---|
| 200 | 成功 |
| 401 | 卡密不存在/令牌无效 |
| 402 | 已过期 / 次数用完 |
| 403 | 已封禁 / 应用关闭 / 解绑超限 |
| 406 | 设备绑定数超限 |
| 429 | 请求过于频繁 |