金点可信平台 PVTP · 通用授权 SDK

适用于 Android、iOS、Web、PHP、WordPress 插件与主题

首页 管理中心 管理员 Token 联系支持

快速开始

在管理后台创建产品类型并生成授权 Key。将 Key 发给用户后,客户端首次启动调用 activate,以后启动调用 verify,运行期间可调用 heartbeat。

设备上限 1 表示一个 Key 最多绑定 1 个“账号 + 设备”组合,不限制 APK/软件安装包数量。需要多台设备时,在后台编辑授权提高设备上限即可。
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 生成并保持稳定,不能每次启动随机变化。

设备信息(型号、系统版本、IP、最后在线时间)只用于管理和排查,不要把管理员 Token 或服务端私钥放到客户端。

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,建议由自己的后端代理调用授权服务。

安卓软件账号与绑定设备

  1. 启动时 POST /api/license/check 检查授权码,不创建账号占位绑定。
  2. AI 平台或安卓软件服务端确认登录成功后,以实际产品账号作为 account_id 调用 activate;授权通过后进入软件功能。产品账号密码和登录令牌 不发给授权服务。
  3. 在线每 60 秒 heartbeat。授权管理 → 设备清单可以搜索产品账号、设备 ID 和名称,显示系统、IP 与最后校验时间。
  4. 点击“禁止此绑定”限制该授权下的当前账号与设备组合。该账号在其他设备上不受这一条禁用影响。解除禁止后可以再次验证。

客户端仍是账号报告方;若要抵抗被修改的客户端,AI 平台或安卓软件服务端也必须验证登录身份与授权票据,当前集成没有替代产品服务端鉴权。

获取验签公钥

打开 授权管理后台 → 验签公钥,即可查看、复制公钥和 SHA-256 指纹。公钥从当前签名私钥派生,多个授权码共用同一公钥,不要为每个 Key 重新生成密钥。

下载当前公钥 .pem

安卓与跨平台客户端 把完整公钥填入 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 保存。

通用授权说明与 Web / Windows SDK · 授权码自助管理