客户端 SDK
将业务函数交给 SDK:普通功能用 RunFeature,计次功能用 RunMeteredFeature。请求、验签、缓存和心跳由 SDK 处理。
Go SDK · Java · C · C++ · C# / .NET · Python · JavaScript · Rust · Ruby
初始化参数从哪里取得?
产品 ID:控制台“产品”列表。受信公钥映射:同一产品的“签名公钥”,以密钥 ID 为键、公钥为值。将它们填到代码里的产品 ID 和 trustedKeys 参数;客户授权码从你的激活窗口取得,填 licenseKey 参数。
官网地址由 SDK 默认提供;普通接入不需要配置文件,也不要求创建软件版本。自建部署、网络代理、版本限制等高级设置可以直接通过 SDK 配置对象传入。
安装 SDK
在自己的应用项目中安装固定版本。切换上方语言,可查看对应平台的安装命令;安装公开 SDK 不需要厂商管理 API Key。
· 查看已发布版本
版本:
安装之后如何引用?
| 语言 | 项目接入 |
|---|---|
| Go | import licentivo "github.com/spf86/licentivo-sdk" |
| Java | import licentivo.Client; |
| C / C++ | find_package(Licentivo 0.11 REQUIRED) · target_link_libraries(MyApp PRIVATE Licentivo::C) / Licentivo::CPP |
| C# | using Licentivo; |
| Python | from licentivo import Client |
| Node.js | import {Client} from '@licentivo/sdk' |
| Rust | use licentivo::Client; |
| Ruby | require 'licentivo' |
用 SDK 执行受保护的业务,退出时关闭 client。
Loading code…这段管理代码如何运行?
先在你的服务器环境中设置 LICENTIVO_URL 和 LICENTIVO_API_KEY,分别填授权服务器地址和完整的管理 Key。示例会读取产品列表,并输出 HTTP 状态和返回内容。
返回 HTTP 200 且包含 data.items,说明请求成功。返回 401 时检查 Key 是否完整、过期或已被吊销。Key 的创建方法和权限见 管理 API Key。
如何显示授权状态?
Status 和 FeatureStatus 只读本地状态,不发送请求,也不等待后台网络验证。状态变化通知可以用来刷新界面。
| 状态 | 含义 |
|---|---|
active | 最近一次联网验证成功,本机授权有效。 |
offline_valid | 本机签名仍有效,启动后的联网确认尚未成功。 |
verification_required | 没有可用签名,需要激活或联网刷新。 |
| expired / revoked / released | 服务器明确拒绝授权,应停止受保护操作。 |
quota_exhausted | 这次功能计次超出额度,其他已授权功能仍可用。 |
allowed 表示本机授权是否有效;按次数的功能仍需请求额度。lease_valid_until 是签名缓存截止时间,不是许可证最终到期时间。code、request_id 和 retryable 分别说明错误、日志编号和能否重试。
各语言的方法名、通知回调和安装包用法见下载包的 sdk/README.md。上方按语言列出包管理器安装命令;官网同时提供版本安装包、统一安装器与离线安装方式。
接到实际应用时,放在哪些位置?
| 应用中的位置 | 要做的事 |
|---|---|
| 启动或用户输入授权码后 | 调用 OpenWithLicense(C++ 使用构造函数和 Start),SDK 完成激活并按策略开启心跳 |
| 使用付费功能前 | 调用 RunFeature,把业务函数交给 SDK;计次功能使用 RunMeteredFeature |
| 应用运行期间 | 保持 client 存活,SDK 按策略中的间隔发送心跳 |
| 应用退出时 | Close / Dispose / Destroy,停止心跳;浮动授权归还席位,绑定设备授权保留设备登记 |
| 用户主动解绑时 | 调用 Deactivate,再关闭 client |
表中的名称表示对应操作,不同语言的实际方法名以示例为准。心跳、离线缓存和联网刷新的详细行为见 心跳与离线设置。