客戶端 SDK
將業務函數交給 SDK:普通功能用 RunFeature,計次功能用 RunMeteredFeature。請求、驗證簽章、快取和心跳由 SDK 處理。
Go SDK · Java · C · C++ · C# / .NET · Python · JavaScript · Rust · Ruby
Where do initialization arguments come from?
在控制台「產品」複製產品 ID,點擊同一產品的「簽章公鑰」,將每一組金鑰 ID、公鑰填入初始化程式碼,取代 YOUR_PRODUCT_ID、YOUR_KEY_ID 和 YOUR_PUBLIC_KEY。快速接入也可直接複製已填好的程式碼。無需設定檔;SDK 預設連線至 https://www.licentivo.com。
將 SDK 初始化接到自己軟體的啟動或啟用入口,從啟用視窗讀取客戶授權碼,傳入產品 ID、信任公鑰並保持用戶端存活。將 RunFeature 放在實際業務入口,以自己的功能取代匯出範例函式。
Install the 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 |
表中的名稱表示對應操作,不同語言的實際方法名以示例為準。心跳、離線快取和聯網刷新的詳細行為見 心跳與離線設定中查看。