跳到正文

客户端 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。

· 查看已发布版本

安装命令或项目依赖

版本:

安装之后如何引用?
语言项目接入
Goimport licentivo "github.com/spf86/licentivo-sdk"
Javaimport licentivo.Client;
C / C++find_package(Licentivo 0.11 REQUIRED) · target_link_libraries(MyApp PRIVATE Licentivo::C) / Licentivo::CPP
C#using Licentivo;
Pythonfrom licentivo import Client
Node.jsimport {Client} from '@licentivo/sdk'
Rustuse licentivo::Client;
Rubyrequire 'licentivo'

用 SDK 执行受保护的业务,退出时关闭 client。

Go · 客户端授权
Loading code…

按 AI 接入流程完成自己的软件授权 →

如何显示授权状态?

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

表中的名称表示对应操作,不同语言的实际方法名以示例为准。心跳、离线缓存和联网刷新的详细行为见 心跳与离线设置。