01
注册账户,创建项目
注册后系统自动下发免费额度密钥。在「项目管理」页创建项目取 project_key,在「SDK 下载与说明」页取本账户专属的 sdk_hmac_key 与验签公钥。base_url 填 HTTPS 域名本身,不要附加 /api。
{
"base_url": "https://token.your-domain.com",
"project_key": "<项目页生成>",
"sdk_hmac_key": "<用户中心取得,账户专属>",
"ed25519_public_key": "<GET /api/sdk/public-key>",
"pinned_root_certificates_pem": ["<部署的根 CA PEM>"],
"heartbeat_interval_secs": 60,
"verify_interval_secs": 14400,
"offline_only": false
}
02
每次销售发一把密钥,在应用内激活
把密钥交给客户(发放、赠送或后台签发都行)。客户在你的应用里输入一次,SDK 完成设备绑定激活;成功后本机持有加密缓存,重复激活同一台设备不会占第二个名额。
int ready = await LicSdkClient.Instance.InitAsync(configJson);
if (ready != 0) return; // 0 = SDK 就绪
int code = await LicSdkClient.Instance.ActivateAsync(licenseKey);
if (code == 0) UnlockFullVersion(); // 0 = 已激活并绑定本机
else ShowMessage(await LicSdkClient.Instance.GetLastErrorAsync());
03
运行中校验、计量与离线部署
后台按间隔自动心跳与在线校验,状态变化通过事件回到 Unity 主线程。完全离线的机器:在用户中心导出离线激活包(限期 limited_date 或永久 perpetual,无需设备 ID),宿主读成字节后导入即可离线使用。
LicSdkClient.Instance.LicenseEventReceived += OnLicenseEvent;
LicenseSdkState state = await LicSdkClient.Instance.GetStateAsync();
// ActiveOnline / ActiveOfflineLease / ActiveOfflinePerpetual / Expired / Revoked / Blocked
await LicSdkClient.Instance.ImportOfflineLicenseFileAsync(packagePath);
await LicSdkClient.Instance.ConsumeSavedAsync("export", 1, idempotencyKey); // 需联网,离线返回 -13