手動接入指南
先完成一次實際功能授權,再依策略補齊進階能力;這裡將平台設定與應用程式碼放在同一條路徑上。
接入前需要準備什麼?
準備可執行的專案、產品 ID、該產品全部簽章公開金鑰、一份測試授權,以及要保護的功能識別碼。功能識別碼區分大小寫,必須與已核發授權一致。
桌面軟體、外掛與命令列在本機接 SDK;網頁應用程式將真正的授權與業務檢查放在可信任的後端。瀏覽器介面可以顯示狀態,但不能決定是否允許執行。
將接入放進應用程式生命週期
- 安裝並固定版本
在「用戶端 SDK」選擇語言,執行對應安裝命令。將產品 ID 與完整金鑰 ID / 公開金鑰對應放入初始化設定。只信任明確設定的產品公開金鑰;公開金鑰可以隨軟體發布,管理 API Key 不可以。
- 讓客戶貼上授權碼
準備啟用視窗或互動式命令列。首次測試時,你從平台快速開始複製授權碼,貼入已接入的軟體;正式客戶使用你交付的授權碼,在軟體內啟用。不要將測試授權碼寫死在程式碼、安裝包或紀錄中。
- 啟動並還原授權
依所選語言的啟動範例建立長期存活的 client。首次傳入客戶授權碼;之後同一使用者啟動時可留空,讓 SDK 還原私有裝置憑證。處理啟動失敗並提供重試入口,避免阻塞介面執行緒。
- 保護實際執行業務的位置
一般功能使用 RunFeature 類型的包裝方法;設有計次的功能使用 RunMeteredFeature。將實際業務放進回呼,檢查失敗就不能執行。按鈕、快捷鍵、命令、背景工作與後端路由都必須通過同一保護入口。
- 顯示狀態並處理變化
保持 client 存活,SDK 會依策略傳送心跳。介面可訂閱狀態變更,並提供重新整理授權入口。暫時網路故障只能使用 SDK 判定仍有效的離線授權;收到明確拒絕後停止受保護操作,保留使用者既有資料。
- 區分結束與解除綁定
平常結束時關閉 client,停止背景工作並嘗試歸還浮動席位;裝置綁定登記會保留。只有客戶主動換機或解除綁定時才呼叫 Deactivate,再關閉 client。不要每次結束都解除綁定。
以上名稱表示對應操作;各語言的拼寫、非同步方式與回傳型別以 SDK 參考為準。先選擇語言,再複製完整啟動範例與所需功能片段。
依授權規則補上對應能力
| 情境 | 需要接入或核對什麼 |
|---|---|
| 裝置綁定與換機 | 使用 SDK 的機器身分與私有快取,確認複製到其他電腦不能直接使用。 |
| 浮動席位 | 每次程序啟動時連線取得席位;測試正常結束、席位已滿、租約到期與當機回收。 |
| 心跳與斷線 | 心跳間隔與離線時長分別設定。關閉心跳不代表永久有效,離線期限也不是授權最終到期時間。 |
| 完全離線啟用 | 目標電腦產生申請,連線電腦取得回應,再回到原電腦匯入;策略必須允許該離線方式。 |
| 功能計次 | 每個實際工作使用穩定且唯一的工作編號,重試沿用編號;處理預留、確認、取消與當機後的實際業務結果。 |
| 版本限制與升級 | 啟用限制時傳入實際 AppVersion;維護期規則需要先發布該版本。升級軟體後重新連線取得新版本授權。 |
| 客戶自助與釋放 | 關聯客戶電子郵件、提供入口,依需要接受臨時換機碼,並區分正常結束與主動釋放裝置。 |
| 訂單與管理自動化 | 僅在自己的伺服器使用管理 API Key;核發授權、續期與通知接收和用戶端授權檢查分開處理。 |
發布前處理好金鑰與快取
將完整受信任產品公開金鑰固定在應用程式設定中,升級時核對新的金鑰集合;不要直接接受啟用回應提供的陌生公開金鑰。裝置憑證與快取保留在目前使用者的私有目錄,不隨安裝包發布,也不跨使用者共用。正式版移除測試授權碼與開發用放行邏輯。