手动接入指南
先完成一次真实功能的授权,再按策略补齐高级能力;这里把平台设置与应用代码放在同一条路径上。
接入前准备好什么?
准备能运行的项目、产品 ID、该产品全部签名公钥、一张测试许可证,以及要保护的功能标识。功能标识必须与已签发许可证一致,区分大小写。
桌面软件、插件和命令行在本机接 SDK;网页应用把真正的授权与业务检查放在可信后端。浏览器界面可以显示状态,但不能决定是否放行。
把接入放进应用的生命周期
- 安装并固定版本
在“客户端 SDK”选择语言,执行对应安装命令。复制产品 ID 和全部密钥 ID / 公钥映射到初始化配置。只信任你明确配置的产品公钥;公钥可以随软件发布,管理 API Key 不可以。
- 让客户粘贴授权码
准备一个激活窗口或交互式命令行。首次测试时,你从平台快速开始复制授权码,粘贴到接入后的软件;正式客户使用你交付给他们的授权码,在软件内激活。不要把测试授权码写死在代码、安装包或日志中。
- 启动并恢复授权
按所选语言的启动示例创建一个长期存活的 client。首次传入客户授权码;以后同一用户启动时可留空,让 SDK 恢复私有设备凭证。处理启动失败并提供重试入口;不要阻塞界面线程。
- 保护真正执行业务的位置
普通功能使用 RunFeature 一类包装方法;配置了计次的功能使用 RunMeteredFeature。把实际业务放进回调,检查失败就不能执行。按钮、快捷键、命令、后台任务和服务端路由都必须经过同一个保护入口。
- 显示状态并处理变化
保持 client 存活,SDK 按策略发送心跳。界面可订阅状态变化,并提供刷新授权入口。临时网络故障只能使用 SDK 判定仍有效的离线授权;收到明确拒绝后停止受保护操作,保留用户已有数据。
- 区分退出与解绑
日常退出时关闭 client,停止后台工作并尝试归还浮动席位;设备绑定登记会保留。只有客户主动换机或解绑时才调用 Deactivate,再关闭 client。不要每次退出都解绑。
上面的名称表示对应操作,不同语言的拼写、异步方式和返回类型以 SDK 参考为准。先选择语言,再复制完整启动示例和所需功能片段。
按你的授权规则,补上对应能力
| 场景 | 需要接入或核对什么 |
|---|---|
| 设备绑定与换机 | 使用 SDK 的机器身份与私有缓存,验证复制到另一台电脑不能直接使用。 |
| 浮动席位 | 每次进程启动在线取得席位;正确关闭并测试席位已满、租约到期和崩溃回收。 |
| 心跳与断网 | 心跳间隔和离线时长分别配置。心跳关闭不代表永久有效,离线截止也不是许可证最终到期时间。 |
| 完全离线激活 | 目标电脑生成申请,联网电脑办理响应,返回原电脑导入;策略必须允许该离线方式。 |
| 功能计次 | 每个真实任务使用稳定且唯一的任务编号,重试沿用编号;处理预留、确认、取消和崩溃后的实际业务结果。 |
| 版本限制与升级 | 启用限制时传入真实 AppVersion;维护期规则需要先发布该版本。升级软件后重新联网取得新版本授权。 |
| 客户自助与释放 | 关联客户邮箱、提供门户入口,按需接受临时换机码,并区分正常退出与主动释放设备。 |
| 订单与管理自动化 | 仅在自己的服务器使用管理 API Key;创建许可证、续期和通知接收独立于客户端授权检查。 |
发布前处理好密钥和缓存
把全部受信产品公钥固定在应用配置中,升级时核对新的公钥集合;不要从激活响应直接接纳陌生公钥。设备凭证与缓存留在当前用户的私有目录,不随安装包分发、不跨用户共用。正式版中移除测试授权码和开发用放行逻辑。