跳到正文

軟體授權 API:啟用、驗證與心跳

選擇你的語言和操作,直接呼叫 SDK。啟用、裝置識別、驗證簽章、快取、心跳,以及計次的預留、確認和取消都由 SDK 處理。

啟動或啟用視窗使用付費功能前應用程式退出時

Common scenario snippets

SDK 呼叫

業務示例中的 client 來自啟動授權,path 是你的匯出路徑,exportReport / export_report 是你自己的業務函數。計次的 jobID 是由應用程式儲存的穩定任務編號。

查看完整程式碼 → · 快速開始 · 查看計次串接和重試 →

業務程式碼放進回調。

權限允許時 SDK 才執行業務。普通 RunFeature 不扣次數;RunMeteredFeature 自動預留、成功后確認、失敗時取消。確認失敗后重試原任務,只補確認,不重復已完成的業務。

Complete SDK method reference

The scenarios above are short call snippets. Below are the current language’s public methods, properties and utilities, including full signatures, parameters, results, errors, configuration and data fields. The reference follows the selected language and identifies capabilities that are unavailable in a wrapper.

展開 HTTP 請求與回應(自定義客戶端或排錯時使用)

下面是 SDK 使用的協議,不需要在使用這九種 SDK 的應用程式中再次實現。

首次啟用執行時心跳業務前檢查權限換機時解除綁定

這八個介面用授權金鑰和裝置身份認證。請求不需要登入 Cookie、CSRF 或廠商管理 Key。浮動授權退出時還要釋放會話;綁定裝置授權日常退出保留綁定。

啟用、驗證或心跳成功后,怎么判斷能用?

  1. 確認 HTTP 200,讀取 data.activation_id。后續驗證、心跳、計次和解除綁定都要帶上這個 ID。
  2. 用預先信任的產品公鑰驗證 data.lease 的簽章,再核對產品、裝置、有效時間和功能。只把 payload 解碼成 JSON,不代表授權有效。
  3. 使用 SDK 時前兩步由 SDK 完成。RunFeature 檢查權限后執行業務;計次功能由 RunMeteredFeature 管理預留、確認和取消。

SDK 會儲存簽章快取并按策略傳送心跳。呼叫失敗時,不要僅因網路超時就抹掉有效快取;如果收到撤銷、釋放、到期等明確拒絕,則按 SDK 的結果阻止受保護功能。

簽章 payload 解碼后,每個欄位是什么意思?

下面只是為了讀懂資料。自行實現驗證簽章時,使用收到的 payload 原始位元組,不能把 JSON 重新排序或序列化后驗證簽章。

payload 內容示例

重試、心跳與計費

啟用、解除綁定和功能計次必須填寫 Idempotency-Key,最長 80 字符,不含空白。新操作生成新值;同一次網路重試保留原值和原正文。驗證與心跳可不填,SDK 仍會自動處理自己的請求編號。

授權仍有效時,驗證和心跳的相同冪等請求可在一小時內重試且不重複計費;超過視窗後請使用新的請求編號,舊編號可能被視為新請求。啟用、解除綁定和功能扣次仍保留持久冪等記錄。

成功的啟用、驗證、心跳和解除綁定請求,每次消耗 1 次平臺 API 呼叫額度。失敗和相同冪等請求的重放不重復計數,本機 CheckFeature 不請求伺服器。當前 Consume 只扣客戶軟體的功能次數,不增加這四類平臺 API 計費統計;quantity 表示本次功能消耗次數。

心跳間隔、離線時長和永久離線分別按 授權策略控制。payload.expires_at 是當前簽章快取的截止時間;授權的最終到期時間在授權詳情中查看,兩者不能混用。