快速开始
在管理后台创建产品类型并生成授权 Key。将 Key 发给用户后,客户端首次启动调用 activate,以后启动调用 verify,运行期间可调用 heartbeat。
POST https://lis.pipbest.com/api/license/activate
{"product":"AI_PLATFORM","license_key":"用户Key","account_id":"用户账号","device_id":"稳定设备ID","platform":"android","app_version":"1.0"}增加设备、解绑和换绑
增加设备
进入后台“授权管理”,找到对应 Key,点击“编辑”,把绑定上限改为需要的数量(0 表示不限,或填写 1 到 2147483647)。用户在新设备首次启动并激活即可占用一个名额。
解绑设备
点击授权行的设备数量,再点击设备明细中的“解绑”。解绑会删除绑定及禁用状态,该账号与设备可以重新激活。要拒绝该组合访问,请使用“禁止此绑定”。
换绑设备
在设备明细点击“换绑”,填写新账号和新设备 ID。设备 ID 应由 SDK 生成并保持稳定,不能每次启动随机变化。
SDK 下载
Web SDKAndroid JavaiOS SwiftPHP
WordPress 插件或主题直接复制 PHP SDK 到插件目录,在服务端调用,Key 保存到 wp_options。
接入示例
WordPress
require_once __DIR__.'/LicenseClient.php';
$siteId = hash('sha256', home_url('/').wp_salt('auth'));
$result = license_request('activate', [
'product'=>'WP_PLUGIN', 'license_key'=>$key,
'account_id'=>(string)get_current_user_id(), 'device_id'=>$siteId,
'platform'=>'wordpress', 'app_version'=>'1.0'
]);标准接口
/api/license/activate 首次绑定 /api/license/verify 启动校验 /api/license/heartbeat 更新在线状态 /api/license/deactivate 释放设备名额
Android、iOS 和 Web 的完整请求字段与签名处理请直接参考上方对应 SDK 文件。
常见问题
设备数量已达上限:后台提高设备上限,或先解绑旧设备。
当前账号设备尚未激活:必须先用同一账号和设备 ID 调用 activate。
授权码无效:检查产品类型编码、Key 是否完整,以及服务器时间是否正确。
换设备后反复掉线:检查 device_id 是否稳定,不能使用随机 UUID。
安全建议
生产环境使用 HTTPS,并验证响应中的 RSA-SHA256 签名后再读取 signed_payload。授权只能提高滥用成本,核心业务仍需服务端鉴权。Web/WordPress 无法安全隐藏 Key,建议由自己的后端代理调用授权服务。
安卓软件账号与绑定设备
- 启动时 POST /api/license/check 检查授权码,不创建账号占位绑定。
- AI 平台或安卓软件服务端确认登录成功后,以实际产品账号作为 account_id 调用 activate;授权通过后进入软件功能。产品账号密码和登录令牌 不发给授权服务。
- 在线每 60 秒 heartbeat。授权管理 → 设备清单可以搜索产品账号、设备 ID 和名称,显示系统、IP 与最后校验时间。
- 点击“禁止此绑定”限制该授权下的当前账号与设备组合。该账号在其他设备上不受这一条禁用影响。解除禁止后可以再次验证。
客户端仍是账号报告方;若要抵抗被修改的客户端,AI 平台或安卓软件服务端也必须验证登录身份与授权票据,当前集成没有替代产品服务端鉴权。
获取验签公钥
打开 授权管理后台 → 验签公钥,即可查看、复制公钥和 SHA-256 指纹。公钥从当前签名私钥派生,多个授权码共用同一公钥,不要为每个 Key 重新生成密钥。
安卓与跨平台客户端 把完整公钥填入 LicenseConfig.PublicKey,保留首尾 PEM 标记与换行。只将公钥带入客户端。
public const string PublicKey = @"-----BEGIN PUBLIC KEY----- 复制的公钥内容 -----END PUBLIC KEY-----";
服务端返回 signed_payload(Base64 JSON)与 signature(Base64 RSA 签名)。按 RSA-SHA256 / PKCS#1 v1.5 验证原始 payload 字节后,只读取签名内的 ok、action、product、account_id、device_id、nonce、server_time;将这些字段与本次请求核对,勿读取签名外的 ok 作为放行依据。
批量命名与不限设备
生成数量为 1 时,产品名称原样保存。数量大于 1 时,例如自定义名称“AI平台”,生成“AI平台-1”“AI平台-2”;同一产品类型下再次用这个名称批量生成时,接着已有最大序号生成。
生成、编辑时绑定上限填写 0,实际保存为 2147483647(约 21.47 亿)。也可填写 1–2147483647 的整数。计数单位是账号与设备组合:一个产品账号两台设备算 2 条,同一设备两个产品账号也算 2 条。退出软件不自动解绑,安装次数不计数。
旧版把 0 错误保存为 1 的授权,无法自动判断原先意图,请在“授权管理 → 编辑”重新填 0 保存。