跳到正文

九種語言 SDK 函數與返回值參考

按語言查看 Launch 客戶端的公開函數、參數、成功返回和失敗語義。函數簽章中的可選參數與預設值以對應版本源碼為準。

本頁說明 Launch 帳號適配層。內置 Licentivo SDK 的授權、計量和離線 API 請查看官方 SDK 函數參考。

Licentivo SDK · 函數參考

會話狀態只描述帳號;每次業務執行仍須呼叫功能保護函數。

預設使用內存存儲。記住登入需要受保護的持久存儲;快取目錄與帳號存儲是不同對象。

恢復登入需要線上確認。Launch 不會因為網路故障自行選擇離線授權;離線權限由官方 SDK 校驗。

Go

對應源碼 · v0.1.6 · application.go · runtime.go · client.go · store.go

錯誤與失敗處理: error != nil; errors.Is(err, launchclient.ErrNoSession); errors.As(err, &apiError)

Connect
Connect(merchantOrigin, productID, licentivoProductID string, trustedKeys map[string]string, options Config) → (*Application, error)
作用
校驗公開連線設定并建立應用程式對象;此時尚未登入,也沒有獲得執行受保護功能的權限。
參數說明
  • merchantOrigin / origin: 當前商店的完整源位址,包含協議及必要端口;正式環境使用 HTTPS。
  • productID / product_id: Launch 商店產品編號,由管理後台串接程式碼自動填入。
  • licentivoProductID / licentivo_product_id: Licentivo 授權產品編號,必須與公開簽章設定匹配。
  • trustedKeys / trusted_keys: 簽章金鑰編號到公鑰的映射,用于驗證官方 SDK 的簽章授權。
  • environment: sandbox 或 live;帳號、產品及快取必須保持同一環境。
  • options / config: 可選設定:會話存儲、私有快取目錄、取消信號、重試或高級組件。
返回值
(*Application, error)

返回建立的對象;初始化本身不代表授權成功。

Application.Login
Login(ctx context.Context, email, password string) → (State, error)
作用
使用商店客戶帳號登入,取得短期身份聲明并啟動官方授權 SDK。
參數說明
  • ctx / ct / signal / cancellation: 請求上下文或取消信號;Go 生命周期上下文也用于管理後台執行。
  • email, password: 客戶在當前商店註冊的電子信箱及密碼;密碼僅用于本次登入。
返回值
(State, error)

返回帳號狀態,欄位含義見下方返回欄位表。

Application.Restore
Restore(ctx context.Context) → (State, error)
作用
讀取已儲存的帳號會話,線上確認帳號并取得新的身份聲明,再啟動官方授權 SDK。
參數說明
  • ctx / ct / signal / cancellation: 請求上下文或取消信號;Go 生命周期上下文也用于管理後台執行。
返回值
(State, error)

返回帳號狀態;沒有會話時報告 ErrNoSession 或 NO_SESSION,其他錯誤必須單獨處理。

Application.RunFeature
RunFeature(feature string, action func() error) → error
作用
每次執行時由官方 SDK 校驗功能權限,通過后才執行回調;拒絕時回調不會執行。
參數說明
  • feature / name, action / block: 功能名稱必須匹配策略;回調包含實際受保護的業務程式碼。
返回值
error

無業務返回值;正常完成表示呼叫成功,失敗通過錯誤或異常報告。

Application.Logout
Logout(ctx context.Context) → error
作用
停止本機授權,呼叫官方 SDK 退出,再注銷 Launch 帳號會話;遠端未完成時保留重試任務。
參數說明
  • ctx / ct / signal / cancellation: 請求上下文或取消信號;Go 生命周期上下文也用于管理後台執行。
返回值
error

無業務返回值;正常完成表示呼叫成功,失敗通過錯誤或異常報告。

Application.ReleaseDevice
ReleaseDevice(ctx context.Context) → error
作用
顯式退出的兼容入口,執行與 Logout 相同的帳號及裝置退出流程。
參數說明
  • ctx / ct / signal / cancellation: 請求上下文或取消信號;Go 生命周期上下文也用于管理後台執行。
返回值
error

無業務返回值;正常完成表示呼叫成功,失敗通過錯誤或異常報告。

Application.Close
Close() → void
作用
停止當前實例和管理後台任務,保留已記住的登入與裝置綁定。
返回值
void

無業務返回值;普通關閉不能當作退出帳號或釋放裝置成功。

高級與兼容介面

NewApplication
NewApplication(config Config) → (*Application, error)
作用
校驗公開連線設定并建立應用程式對象;此時尚未登入,也沒有獲得執行受保護功能的權限。
參數說明
  • options / config: 可選設定:會話存儲、私有快取目錄、取消信號、重試或高級組件。
返回值
(*Application, error)

返回建立的對象;初始化本身不代表授權成功。

NewApplicationFromFiles
NewApplicationFromFiles(launchPath, productPath string, options Config) → (*Application, error)
作用
從已有的兩份公開設定讀取并校驗產品映射,再建立應用程式對象。直接連線不需要設定檔。
參數說明
  • launchPath, productPath: 呼叫者指定的設定路徑或當前使用者私有快取、存儲目錄。
  • options / config: 可選設定:會話存儲、私有快取目錄、取消信號、重試或高級組件。
返回值
(*Application, error)

返回建立的對象;初始化本身不代表授權成功。

LoadPublicConfig
LoadPublicConfig(path string) → (PublicConfig, error)
作用
校驗或讀取公開設定;產品編號、環境和簽章公鑰必須匹配。
參數說明
  • path: 呼叫者指定的設定路徑或當前使用者私有快取、存儲目錄。
返回值
(PublicConfig, error)

返回簽章所示類型的值;此結果本身不授予功能權限。

NewRuntime
NewRuntime(product ProductConfig, runtime RuntimeConfig) → (Runtime, error)
作用
為高級串接建立官方 SDK 適配器;身份聲明僅在內存中傳入。
參數說明
  • product, runtime: 設定對象、執行時適配器、傳輸器或請求;僅高級串接需要自行提供。
返回值
(Runtime, error)

返回建立的對象;初始化本身不代表授權成功。

New
New(origin string, allowLocalHTTP bool) → (*Client, error)
作用
校驗公開連線設定并建立應用程式對象;此時尚未登入,也沒有獲得執行受保護功能的權限。
參數說明
  • origin: 當前商店的完整源位址,包含協議及必要端口;正式環境使用 HTTPS。
  • allowLocalHTTP: 可選設定:會話存儲、私有快取目錄、取消信號、重試或高級組件。
返回值
(*Client, error)

返回建立的對象;初始化本身不代表授權成功。

Client.WithToken
WithToken(token string) → *Client
作用
返回攜帶指定帳號會話令牌的客戶端副本,供可信后端使用。
參數說明
  • token: Launch 帳號會話令牌,僅底層會話或加密存儲介面返回。
返回值
*Client

返回建立的對象;初始化本身不代表授權成功。

Client.Login
Login(ctx context.Context, email, password string) → (User, error)
作用
認證帳號并返回帳號資料或會話;不啟動授權執行時。
參數說明
  • ctx / ct / signal / cancellation: 請求上下文或取消信號;Go 生命周期上下文也用于管理後台執行。
  • email, password: 客戶在當前商店註冊的電子信箱及密碼;密碼僅用于本次登入。
返回值
(User, error)

返回帳號狀態,欄位含義見下方返回欄位表。

Client.LoginSession
LoginSession(ctx context.Context, email, password string) → (Session, error)
作用
認證帳號并返回帳號資料或會話;不啟動授權執行時。
參數說明
  • ctx / ct / signal / cancellation: 請求上下文或取消信號;Go 生命周期上下文也用于管理後台執行。
  • email, password: 客戶在當前商店註冊的電子信箱及密碼;密碼僅用于本次登入。
返回值
(Session, error)

返回帳號狀態,欄位含義見下方返回欄位表。

Client.CurrentUser
CurrentUser(ctx context.Context) → (User, error)
作用
查詢當前帳號資料;查詢成功不代表受保護功能可用。
參數說明
  • ctx / ct / signal / cancellation: 請求上下文或取消信號;Go 生命周期上下文也用于管理後台執行。
返回值
(User, error)

返回帳號狀態,欄位含義見下方返回欄位表。

Client.Identity
Identity(ctx context.Context, product, environment string) → (Identity, error)
作用
取得一次性帳號身份聲明及公開路由資訊;它不是授權或功能授權。
參數說明
  • ctx / ct / signal / cancellation: 請求上下文或取消信號;Go 生命周期上下文也用于管理後台執行。
  • product: Launch 商店產品編號,由管理後台串接程式碼自動填入。
  • environment: sandbox 或 live;帳號、產品及快取必須保持同一環境。
返回值
(Identity, error)

返回帳號狀態,欄位含義見下方返回欄位表。

Client.SignOut
SignOut(ctx context.Context) → error
作用
注銷 Launch 帳號會話并清除當前客戶端令牌;直接呼叫不會代替官方 SDK 的裝置退出。
參數說明
  • ctx / ct / signal / cancellation: 請求上下文或取消信號;Go 生命周期上下文也用于管理後台執行。
返回值
error

無業務返回值;正常完成表示呼叫成功,失敗通過錯誤或異常報告。

Client.Credential
Credential(ctx context.Context, product, environment string) → (Credential, error)
作用
保留的舊介面;長期授權憑據協議已移除,呼叫會失敗。新串接使用 Application。
參數說明
  • ctx / ct / signal / cancellation: 請求上下文或取消信號;Go 生命周期上下文也用于管理後台執行。
  • product: Launch 商店產品編號,由管理後台串接程式碼自動填入。
  • environment: sandbox 或 live;帳號、產品及快取必須保持同一環境。
返回值
(Credential, error)

總是失敗;請遷移到帳號身份交換介面。

Client.CredentialWithRetry
CredentialWithRetry(ctx context.Context, product, environment string, policy RetryPolicy) → (Credential, error)
作用
保留的舊介面;長期授權憑據協議已移除,呼叫會失敗。新串接使用 Application。
參數說明
  • ctx / ct / signal / cancellation: 請求上下文或取消信號;Go 生命周期上下文也用于管理後台執行。
  • product: Launch 商店產品編號,由管理後台串接程式碼自動填入。
  • environment: sandbox 或 live;帳號、產品及快取必須保持同一環境。
  • policy: 可選設定:會話存儲、私有快取目錄、取消信號、重試或高級組件。
返回值
(Credential, error)

總是失敗;請遷移到帳號身份交換介面。

NewSystemSessionStore
NewSystemSessionStore(directory string) → (SessionStore, error)
作用
建立受保護的持久會話存儲;加密金鑰由應用程式從作業系統憑據庫取得。
參數說明
  • directory: 呼叫者指定的設定路徑或當前使用者私有快取、存儲目錄。
返回值
(SessionStore, error)

返回建立的對象;初始化本身不代表授權成功。

ProtectDirectory
ProtectDirectory(directory string) → error
作用
限制目錄訪問權限;Windows 使用當前使用者權限,其他平臺使用私有目錄權限。
參數說明
  • directory: 呼叫者指定的設定路徑或當前使用者私有快取、存儲目錄。
返回值
error

無業務返回值;正常完成表示呼叫成功,失敗通過錯誤或異常報告。

ServiceUnavailable
ServiceUnavailable(err error) → bool
作用
判斷錯誤是否表示服務暫時不可用;此判斷本身不允許離線授權。
參數說明
  • err: 建立或讀取結構化錯誤;錯誤欄位用于分類、退避和關聯排錯。
返回值
bool

返回布爾分類結果,不是授權許可。

APIError.Error / TransportError.Error
Error() → string
作用
建立或讀取結構化錯誤;錯誤欄位用于分類、退避和關聯排錯。
返回值
string

返回簽章所示類型的值;此結果本身不授予功能權限。

TransportError.Unwrap
Unwrap() → error
作用
建立或讀取結構化錯誤;錯誤欄位用于分類、退避和關聯排錯。
返回值
error

返回簽章所示類型的值;此結果本身不授予功能權限。

MemoryStore.Load / SessionStore.Load
Load(ctx context.Context, key string) → ([]byte, error)
作用
按隔離鍵讀取帳號記錄;返回內容含敏感會話資料,僅交給 SDK。
參數說明
  • scope / key, value / record: SDK 使用的隔離鍵和敏感記錄;自定義存儲必須支援多個鍵及原子替換。
返回值
([]byte, error)

返回儲存的敏感記錄;不存在時返回空值或 ErrNoSession,按當前語言約定處理。

MemoryStore.Save / SessionStore.Save
Save(ctx context.Context, key string, value []byte) → error
作用
按隔離鍵原子儲存帳號記錄。
參數說明
  • scope / key, value / record: SDK 使用的隔離鍵和敏感記錄;自定義存儲必須支援多個鍵及原子替換。
返回值
error

無業務返回值;正常完成表示呼叫成功,失敗通過錯誤或異常報告。

MemoryStore.Delete / SessionStore.Delete
Delete(ctx context.Context, key string) → error
作用
刪除指定帳號記錄;不刪除官方 SDK 的授權快取或退出日志。
參數說明
  • scope / key, value / record: SDK 使用的隔離鍵和敏感記錄;自定義存儲必須支援多個鍵及原子替換。
返回值
error

無業務返回值;正常完成表示呼叫成功,失敗通過錯誤或異常報告。

Runtime.Start
Start(ctx context.Context, onError func(error)) → error
作用
啟動官方 SDK 的驗證和背景維護;帳號登入與功能保護仍由各自介面完成。
參數說明
  • ctx / ct / signal / cancellation: 請求上下文或取消信號;Go 生命周期上下文也用于管理後台執行。
  • onError: 建立或讀取結構化錯誤;錯誤欄位用于分類、退避和關聯排錯。
返回值
error

無業務返回值;正常完成表示呼叫成功,失敗通過錯誤或異常報告。

Runtime.RunFeature
RunFeature(feature string, action func() error) → error
作用
每次執行時由官方 SDK 校驗功能權限,通過后才執行回調;拒絕時回調不會執行。
參數說明
  • feature / name, action / block: 功能名稱必須匹配策略;回調包含實際受保護的業務程式碼。
返回值
error

無業務返回值;正常完成表示呼叫成功,失敗通過錯誤或異常報告。

Runtime.Deactivate
Deactivate(ctx context.Context) → error
作用
執行官方 SDK 的裝置登出;Launch 帳號工作階段由應用程式另行登出。
參數說明
  • ctx / ct / signal / cancellation: 請求上下文或取消信號;Go 生命周期上下文也用于管理後台執行。
返回值
error

無業務返回值;正常完成表示呼叫成功,失敗通過錯誤或異常報告。

Runtime.Close
Close() → void
作用
停止當前實例和管理後台任務,保留已記住的登入與裝置綁定。
返回值
void

無業務返回值;普通關閉不能當作退出帳號或釋放裝置成功。

Python

對應源碼 · v0.1.6 · client.py

錯誤與失敗處理: APIError.code / .status / .retry_after / .retryable; ValueError; SDK exceptions

Application.connect
Application.connect(merchant_origin, product_id, licentivo_product_id, trusted_keys, environment="live", **kwargs) → Application
作用
校驗公開連線設定并建立應用程式對象;此時尚未登入,也沒有獲得執行受保護功能的權限。
參數說明
  • merchantOrigin / origin: 當前商店的完整源位址,包含協議及必要端口;正式環境使用 HTTPS。
  • productID / product_id: Launch 商店產品編號,由管理後台串接程式碼自動填入。
  • licentivoProductID / licentivo_product_id: Licentivo 授權產品編號,必須與公開簽章設定匹配。
  • trustedKeys / trusted_keys: 簽章金鑰編號到公鑰的映射,用于驗證官方 SDK 的簽章授權。
  • environment: sandbox 或 live;帳號、產品及快取必須保持同一環境。
  • options / config: 可選設定:會話存儲、私有快取目錄、取消信號、重試或高級組件。
返回值
Application

返回建立的對象;初始化本身不代表授權成功。

Application.login
login(email, password, *, pending_attempts=3) → Application (self)
作用
使用商店客戶帳號登入,取得短期身份聲明并啟動官方授權 SDK。
參數說明
  • email, password: 客戶在當前商店註冊的電子信箱及密碼;密碼僅用于本次登入。
  • pending_attempts: 可選設定:會話存儲、私有快取目錄、取消信號、重試或高級組件。
返回值
Application (self)

返回當前應用程式對象本身,不是帳號資料或授權結果。

Application.restore
restore() → bool
作用
讀取已儲存的帳號會話,線上確認帳號并取得新的身份聲明,再啟動官方授權 SDK。
返回值
bool

true 表示恢復成功;false 表示沒有可恢復會話。拒絕、過期或網路失敗通過錯誤報告。

Application.run_feature
run_feature(name, action) → T
作用
每次執行時由官方 SDK 校驗功能權限,通過后才執行回調;拒絕時回調不會執行。
參數說明
  • feature / name, action / block: 功能名稱必須匹配策略;回調包含實際受保護的業務程式碼。
返回值
T

返回業務回調的結果;授權失敗或業務異常通過錯誤報告。

Application.logout
logout() → bool
作用
停止本機授權,呼叫官方 SDK 退出,再注銷 Launch 帳號會話;遠端未完成時保留重試任務。
返回值
bool

true 表示退出已確認;false 表示遠端帳號退出或裝置撤銷仍待完成。存儲等失敗仍可能報錯。

Application.release_device
release_device() → bool
作用
顯式退出的兼容入口,執行與 Logout 相同的帳號及裝置退出流程。
返回值
bool

true 表示退出已確認;false 表示遠端帳號退出或裝置撤銷仍待完成。存儲等失敗仍可能報錯。

Application.close
close() → None
作用
停止當前實例和管理後台任務,保留已記住的登入與裝置綁定。
返回值
None

無業務返回值;普通關閉不能當作退出帳號或釋放裝置成功。

Application.__enter__ / __exit__
with Application.connect(...) as app: ... → Application / None
作用
停止當前實例和管理後台任務,保留已記住的登入與裝置綁定。
返回值
Application / None

無業務返回值;普通關閉不能當作退出帳號或釋放裝置成功。

高級與兼容介面

Application.__init__
Application(origin, product_id, product_config, environment="live", store=None, runtime_factory=None, cache_dir=None, sleep=time.sleep, opener=None) → Application
作用
校驗公開連線設定并建立應用程式對象;此時尚未登入,也沒有獲得執行受保護功能的權限。
參數說明
  • origin: 當前商店的完整源位址,包含協議及必要端口;正式環境使用 HTTPS。
  • product_id: Launch 商店產品編號,由管理後台串接程式碼自動填入。
  • product_config: 設定對象、執行時適配器、傳輸器或請求;僅高級串接需要自行提供。
  • environment: sandbox 或 live;帳號、產品及快取必須保持同一環境。
  • options / config: 可選設定:會話存儲、私有快取目錄、取消信號、重試或高級組件。
返回值
Application

返回建立的對象;初始化本身不代表授權成功。

Application.from_files
Application.from_files(launch_config, product_config, **kwargs) → Application
作用
從已有的兩份公開設定讀取并校驗產品映射,再建立應用程式對象。直接連線不需要設定檔。
參數說明
  • launch_config, product_config: 呼叫者指定的設定路徑或當前使用者私有快取、存儲目錄。
  • options / config: 可選設定:會話存儲、私有快取目錄、取消信號、重試或高級組件。
返回值
Application

返回建立的對象;初始化本身不代表授權成功。

MemoryStore
MemoryStore() → MemoryStore
作用
建立僅當前處理程序有效的會話存儲。
返回值
MemoryStore

返回建立的對象;初始化本身不代表授權成功。

WindowsDPAPIStore
WindowsDPAPIStore(directory=None) → WindowsDPAPIStore
作用
建立受保護的持久會話存儲;加密金鑰由應用程式從作業系統憑據庫取得。
參數說明
  • directory: 呼叫者指定的設定路徑或當前使用者私有快取、存儲目錄。
返回值
WindowsDPAPIStore

返回建立的對象;初始化本身不代表授權成功。

APIError
APIError(code, status=0, retry_after=0) → APIError
作用
建立或讀取結構化錯誤;錯誤欄位用于分類、退避和關聯排錯。
參數說明
  • code, status, retry_after: 建立或讀取結構化錯誤;錯誤欄位用于分類、退避和關聯排錯。
返回值
APIError

返回簽章所示類型的值;此結果本身不授予功能權限。

MemoryStore.load / WindowsDPAPIStore.load
load(key) → bytes | None
作用
按隔離鍵讀取帳號記錄;返回內容含敏感會話資料,僅交給 SDK。
參數說明
  • scope / key, value / record: SDK 使用的隔離鍵和敏感記錄;自定義存儲必須支援多個鍵及原子替換。
返回值
bytes | None

返回儲存的敏感記錄;不存在時返回空值或 ErrNoSession,按當前語言約定處理。

MemoryStore.save / WindowsDPAPIStore.save
save(key, value) → None
作用
按隔離鍵原子儲存帳號記錄。
參數說明
  • scope / key, value / record: SDK 使用的隔離鍵和敏感記錄;自定義存儲必須支援多個鍵及原子替換。
返回值
None

無業務返回值;正常完成表示呼叫成功,失敗通過錯誤或異常報告。

MemoryStore.delete / WindowsDPAPIStore.delete
delete(key) → None
作用
刪除指定帳號記錄;不刪除官方 SDK 的授權快取或退出日志。
參數說明
  • scope / key, value / record: SDK 使用的隔離鍵和敏感記錄;自定義存儲必須支援多個鍵及原子替換。
返回值
None

無業務返回值;正常完成表示呼叫成功,失敗通過錯誤或異常報告。

C#

對應源碼 · v0.1.6 · Application.cs · SessionStore.cs

錯誤與失敗處理: await Task / ValueTask; LaunchException.Code / .Status / .RetryAfterSeconds / .Retryable

Application.Connect
Application.Connect(string merchantOrigin, string productId, string licentivoProductId, Dictionary<string,string> trustedKeys, string environment="live", ISessionStore? store=null, string? cacheDirectory=null) → Application
作用
校驗公開連線設定并建立應用程式對象;此時尚未登入,也沒有獲得執行受保護功能的權限。
參數說明
  • merchantOrigin / origin: 當前商店的完整源位址,包含協議及必要端口;正式環境使用 HTTPS。
  • productID / product_id: Launch 商店產品編號,由管理後台串接程式碼自動填入。
  • licentivoProductID / licentivo_product_id: Licentivo 授權產品編號,必須與公開簽章設定匹配。
  • trustedKeys / trusted_keys: 簽章金鑰編號到公鑰的映射,用于驗證官方 SDK 的簽章授權。
  • environment: sandbox 或 live;帳號、產品及快取必須保持同一環境。
  • store, cacheDirectory: 可選設定:會話存儲、私有快取目錄、取消信號、重試或高級組件。
返回值
Application

返回建立的對象;初始化本身不代表授權成功。

Application.Login
Login(string email, string password, int pendingAttempts=3, CancellationToken ct=default) → Task
作用
使用商店客戶帳號登入,取得短期身份聲明并啟動官方授權 SDK。
參數說明
  • email, password: 客戶在當前商店註冊的電子信箱及密碼;密碼僅用于本次登入。
  • pendingAttempts: 可選設定:會話存儲、私有快取目錄、取消信號、重試或高級組件。
  • ctx / ct / signal / cancellation: 請求上下文或取消信號;Go 生命周期上下文也用于管理後台執行。
返回值
Task

無業務返回值;正常完成表示呼叫成功,失敗通過錯誤或異常報告。

Application.Restore
Restore(CancellationToken ct=default) → Task<bool>
作用
讀取已儲存的帳號會話,線上確認帳號并取得新的身份聲明,再啟動官方授權 SDK。
參數說明
  • ctx / ct / signal / cancellation: 請求上下文或取消信號;Go 生命周期上下文也用于管理後台執行。
返回值
Task<bool>

true 表示恢復成功;false 表示沒有可恢復會話。拒絕、過期或網路失敗通過錯誤報告。

Application.RunFeature
RunFeature(string feature, Func<Task> action) → Task
作用
每次執行時由官方 SDK 校驗功能權限,通過后才執行回調;拒絕時回調不會執行。
參數說明
  • feature / name, action / block: 功能名稱必須匹配策略;回調包含實際受保護的業務程式碼。
返回值
Task

無業務返回值;正常完成表示呼叫成功,失敗通過錯誤或異常報告。

Application.Status
Status() → AuthorizationStatus? (null: runtime absent)
作用
讀取官方 SDK 的當前授權狀態,不發起登入,也不代替功能執行時的權限檢查。
返回值
AuthorizationStatus? (null: runtime absent)

讀取官方 SDK 的當前授權狀態,不發起登入,也不代替功能執行時的權限檢查。

Application.Logout
Logout(CancellationToken ct=default) → Task
作用
停止本機授權,呼叫官方 SDK 退出,再注銷 Launch 帳號會話;遠端未完成時保留重試任務。
參數說明
  • ctx / ct / signal / cancellation: 請求上下文或取消信號;Go 生命周期上下文也用于管理後台執行。
返回值
Task

無業務返回值;正常完成表示呼叫成功,失敗通過錯誤或異常報告。

Application.ReleaseDevice
ReleaseDevice(CancellationToken ct=default) → Task
作用
顯式退出的兼容入口,執行與 Logout 相同的帳號及裝置退出流程。
參數說明
  • ctx / ct / signal / cancellation: 請求上下文或取消信號;Go 生命周期上下文也用于管理後台執行。
返回值
Task

無業務返回值;正常完成表示呼叫成功,失敗通過錯誤或異常報告。

Application.DisposeAsync
DisposeAsync() → ValueTask
作用
停止當前實例和管理後台任務,保留已記住的登入與裝置綁定。
返回值
ValueTask

無業務返回值;普通關閉不能當作退出帳號或釋放裝置成功。

高級與兼容介面

Application
Application(string origin, string productId, Config productConfig, string environment="live", ISessionStore? store=null, string? cacheDirectory=null, HttpMessageHandler? handler=null, Func<Config,IRuntime>? runtimeFactory=null) → Application
作用
校驗公開連線設定并建立應用程式對象;此時尚未登入,也沒有獲得執行受保護功能的權限。
參數說明
  • origin: 當前商店的完整源位址,包含協議及必要端口;正式環境使用 HTTPS。
  • productId: Launch 商店產品編號,由管理後台串接程式碼自動填入。
  • productConfig: 設定對象、執行時適配器、傳輸器或請求;僅高級串接需要自行提供。
  • environment: sandbox 或 live;帳號、產品及快取必須保持同一環境。
  • options / config: 可選設定:會話存儲、私有快取目錄、取消信號、重試或高級組件。
返回值
Application

返回建立的對象;初始化本身不代表授權成功。

Application.FromFiles
Application.FromFiles(string launchPath, string productPath, ISessionStore? store=null) → Application
作用
從已有的兩份公開設定讀取并校驗產品映射,再建立應用程式對象。直接連線不需要設定檔。
參數說明
  • launchPath, productPath: 呼叫者指定的設定路徑或當前使用者私有快取、存儲目錄。
  • store: 可選設定:會話存儲、私有快取目錄、取消信號、重試或高級組件。
返回值
Application

返回建立的對象;初始化本身不代表授權成功。

MemoryStore
new MemoryStore() → MemoryStore
作用
建立僅當前處理程序有效的會話存儲。
返回值
MemoryStore

返回建立的對象;初始化本身不代表授權成功。

WindowsDPAPIStore
new WindowsDPAPIStore(string? directory=null) → WindowsDPAPIStore
作用
建立受保護的持久會話存儲;加密金鑰由應用程式從作業系統憑據庫取得。
參數說明
  • directory: 呼叫者指定的設定路徑或當前使用者私有快取、存儲目錄。
返回值
WindowsDPAPIStore

返回建立的對象;初始化本身不代表授權成功。

LaunchException
new LaunchException(string code, int status=0, int retryAfterSeconds=0) → LaunchException
作用
建立或讀取結構化錯誤;錯誤欄位用于分類、退避和關聯排錯。
參數說明
  • code, status, retryAfterSeconds: 建立或讀取結構化錯誤;錯誤欄位用于分類、退避和關聯排錯。
返回值
LaunchException

返回簽章所示類型的值;此結果本身不授予功能權限。

ISessionStore.Load / MemoryStore.Load / WindowsDPAPIStore.Load
Load(string key) → byte[]?
作用
按隔離鍵讀取帳號記錄;返回內容含敏感會話資料,僅交給 SDK。
參數說明
  • scope / key, value / record: SDK 使用的隔離鍵和敏感記錄;自定義存儲必須支援多個鍵及原子替換。
返回值
byte[]?

返回儲存的敏感記錄;不存在時返回空值或 ErrNoSession,按當前語言約定處理。

ISessionStore.Save / MemoryStore.Save / WindowsDPAPIStore.Save
Save(string key, byte[] value) → void
作用
按隔離鍵原子儲存帳號記錄。
參數說明
  • scope / key, value / record: SDK 使用的隔離鍵和敏感記錄;自定義存儲必須支援多個鍵及原子替換。
返回值
void

無業務返回值;正常完成表示呼叫成功,失敗通過錯誤或異常報告。

ISessionStore.Delete / MemoryStore.Delete / WindowsDPAPIStore.Delete
Delete(string key) → void
作用
刪除指定帳號記錄;不刪除官方 SDK 的授權快取或退出日志。
參數說明
  • scope / key, value / record: SDK 使用的隔離鍵和敏感記錄;自定義存儲必須支援多個鍵及原子替換。
返回值
void

無業務返回值;正常完成表示呼叫成功,失敗通過錯誤或異常報告。

IRuntime.Start
Start(CancellationToken ct) → Task
作用
啟動官方 SDK 的驗證和背景維護;帳號登入與功能保護仍由各自介面完成。
參數說明
  • ctx / ct / signal / cancellation: 請求上下文或取消信號;Go 生命周期上下文也用于管理後台執行。
返回值
Task

無業務返回值;正常完成表示呼叫成功,失敗通過錯誤或異常報告。

IRuntime.Status
Status() → AuthorizationStatus
作用
讀取官方 SDK 的當前授權狀態,不發起登入,也不代替功能執行時的權限檢查。
返回值
AuthorizationStatus

讀取官方 SDK 的當前授權狀態,不發起登入,也不代替功能執行時的權限檢查。

IRuntime.RunFeature
RunFeature(string feature, Func<Task> action) → Task
作用
每次執行時由官方 SDK 校驗功能權限,通過后才執行回調;拒絕時回調不會執行。
參數說明
  • feature / name, action / block: 功能名稱必須匹配策略;回調包含實際受保護的業務程式碼。
返回值
Task

無業務返回值;正常完成表示呼叫成功,失敗通過錯誤或異常報告。

IRuntime.Deactivate
Deactivate(CancellationToken ct) → Task
作用
執行官方 SDK 的裝置登出;Launch 帳號工作階段由應用程式另行登出。
參數說明
  • ctx / ct / signal / cancellation: 請求上下文或取消信號;Go 生命周期上下文也用于管理後台執行。
返回值
Task

無業務返回值;正常完成表示呼叫成功,失敗通過錯誤或異常報告。

IRuntime.DisposeAsync
DisposeAsync() → ValueTask
作用
停止當前實例和管理後台任務,保留已記住的登入與裝置綁定。
返回值
ValueTask

無業務返回值;普通關閉不能當作退出帳號或釋放裝置成功。

Java

對應源碼 · v0.1.6 · Launch.java · EncryptedFileStore.java

錯誤與失敗處理: throws Exception; Launch.Failure.code / .status / .requestID / .retryAfterMillis / .transport; char[] password

Launch.connect
Launch.connect(String merchantOrigin, String productId, String licentivoProductId, Map<String,String> trustedKeys, String environment) → Launch
作用
校驗公開連線設定并建立應用程式對象;此時尚未登入,也沒有獲得執行受保護功能的權限。
參數說明
  • merchantOrigin / origin: 當前商店的完整源位址,包含協議及必要端口;正式環境使用 HTTPS。
  • productID / product_id: Launch 商店產品編號,由管理後台串接程式碼自動填入。
  • licentivoProductID / licentivo_product_id: Licentivo 授權產品編號,必須與公開簽章設定匹配。
  • trustedKeys / trusted_keys: 簽章金鑰編號到公鑰的映射,用于驗證官方 SDK 的簽章授權。
  • environment: sandbox 或 live;帳號、產品及快取必須保持同一環境。
返回值
Launch

返回建立的對象;初始化本身不代表授權成功。

Launch.login
login(String email, char[] password) → State
作用
使用商店客戶帳號登入,取得短期身份聲明并啟動官方授權 SDK。
參數說明
  • email, password: 客戶在當前商店註冊的電子信箱及密碼;密碼僅用于本次登入。
返回值
State

返回帳號狀態,欄位含義見下方返回欄位表。

Launch.restore
restore() → State
作用
讀取已儲存的帳號會話,線上確認帳號并取得新的身份聲明,再啟動官方授權 SDK。
返回值
State

返回帳號狀態;沒有會話時報告 ErrNoSession 或 NO_SESSION,其他錯誤必須單獨處理。

Launch.runFeature
runFeature(String feature, Client.FeatureAction action) → void
作用
每次執行時由官方 SDK 校驗功能權限,通過后才執行回調;拒絕時回調不會執行。
參數說明
  • feature / name, action / block: 功能名稱必須匹配策略;回調包含實際受保護的業務程式碼。
返回值
void

無業務返回值;正常完成表示呼叫成功,失敗通過錯誤或異常報告。

Launch.logout
logout() → void
作用
停止本機授權,呼叫官方 SDK 退出,再注銷 Launch 帳號會話;遠端未完成時保留重試任務。
返回值
void

無業務返回值;正常完成表示呼叫成功,失敗通過錯誤或異常報告。

Launch.releaseDevice
releaseDevice() → void
作用
顯式退出的兼容入口,執行與 Logout 相同的帳號及裝置退出流程。
返回值
void

無業務返回值;正常完成表示呼叫成功,失敗通過錯誤或異常報告。

Launch.close
close() → void
作用
停止當前實例和管理後台任務,保留已記住的登入與裝置綁定。
返回值
void

無業務返回值;普通關閉不能當作退出帳號或釋放裝置成功。

高級與兼容介面

Launch
new Launch(Config config, Map<String,Object> product, Path cacheRoot [, Store store, Transport transport, RuntimeFactory factory, Sleeper sleeper]) → Launch
作用
校驗公開連線設定并建立應用程式對象;此時尚未登入,也沒有獲得執行受保護功能的權限。
參數說明
  • config, product: 設定對象、執行時適配器、傳輸器或請求;僅高級串接需要自行提供。
  • cacheRoot: 呼叫者指定的設定路徑或當前使用者私有快取、存儲目錄。
  • store, transport, factory, sleeper: 可選設定:會話存儲、私有快取目錄、取消信號、重試或高級組件。
返回值
Launch

返回建立的對象;初始化本身不代表授權成功。

Launch.Config
new Launch.Config(String merchantOrigin, String launchProductID, String licentivoProductID, String environment) → Config
作用
校驗或讀取公開設定;產品編號、環境和簽章公鑰必須匹配。
參數說明
  • merchantOrigin / origin: 當前商店的完整源位址,包含協議及必要端口;正式環境使用 HTTPS。
  • productID / product_id: Launch 商店產品編號,由管理後台串接程式碼自動填入。
  • licentivoProductID / licentivo_product_id: Licentivo 授權產品編號,必須與公開簽章設定匹配。
  • environment: sandbox 或 live;帳號、產品及快取必須保持同一環境。
返回值
Config

返回簽章所示類型的值;此結果本身不授予功能權限。

Launch.Config.load
Launch.Config.load(Path path) → Config
作用
校驗或讀取公開設定;產品編號、環境和簽章公鑰必須匹配。
參數說明
  • path: 呼叫者指定的設定路徑或當前使用者私有快取、存儲目錄。
返回值
Config

返回簽章所示類型的值;此結果本身不授予功能權限。

Launch.readPublic
Launch.readPublic(Path path) → Map<String,Object>
作用
校驗或讀取公開設定;產品編號、環境和簽章公鑰必須匹配。
參數說明
  • path: 呼叫者指定的設定路徑或當前使用者私有快取、存儲目錄。
返回值
Map<String,Object>

返回簽章所示類型的值;此結果本身不授予功能權限。

Launch.MemoryStore
new Launch.MemoryStore() → MemoryStore
作用
建立僅當前處理程序有效的會話存儲。
返回值
MemoryStore

返回建立的對象;初始化本身不代表授權成功。

EncryptedFileStore
new EncryptedFileStore(Path directory, SecretKey vaultKey) → EncryptedFileStore
作用
建立受保護的持久會話存儲;加密金鑰由應用程式從作業系統憑據庫取得。
參數說明
  • directory: 呼叫者指定的設定路徑或當前使用者私有快取、存儲目錄。
  • vaultKey: 從作業系統憑據庫取得的加密金鑰;不要與加密記錄放在一起。
返回值
EncryptedFileStore

返回建立的對象;初始化本身不代表授權成功。

Launch.HTTPTransport.request
request(String method, URI uri, String bearer, byte[] body) → Response
作用
傳送帳號 HTTP 請求,返回狀態、回應頭或原始回應體;不作授權決定。
參數說明
  • method, uri, bearer, body: 設定對象、執行時適配器、傳輸器或請求;僅高級串接需要自行提供。
返回值
Response

返回簽章所示類型的值;此結果本身不授予功能權限。

Launch.Failure
new Launch.Failure(String code [, int status, String requestID, long retryAfterMillis, boolean transport]) → Failure
作用
建立或讀取結構化錯誤;錯誤欄位用于分類、退避和關聯排錯。
參數說明
  • code, status, requestID, retryAfterMillis, transport: 建立或讀取結構化錯誤;錯誤欄位用于分類、退避和關聯排錯。
返回值
Failure

返回簽章所示類型的值;此結果本身不授予功能權限。

Launch.Failure.unavailable
unavailable() → boolean
作用
判斷錯誤是否表示服務暫時不可用;此判斷本身不允許離線授權。
返回值
boolean

返回布爾分類結果,不是授權許可。

Store.load / MemoryStore.load / EncryptedFileStore.load
load(String scope) → byte[] | null
作用
按隔離鍵讀取帳號記錄;返回內容含敏感會話資料,僅交給 SDK。
參數說明
  • scope / key, value / record: SDK 使用的隔離鍵和敏感記錄;自定義存儲必須支援多個鍵及原子替換。
返回值
byte[] | null

返回儲存的敏感記錄;不存在時返回空值或 ErrNoSession,按當前語言約定處理。

Store.save / MemoryStore.save / EncryptedFileStore.save
save(String scope, byte[] secret) → void
作用
按隔離鍵原子儲存帳號記錄。
參數說明
  • scope / key, value / record: SDK 使用的隔離鍵和敏感記錄;自定義存儲必須支援多個鍵及原子替換。
返回值
void

無業務返回值;正常完成表示呼叫成功,失敗通過錯誤或異常報告。

Store.delete / MemoryStore.delete / EncryptedFileStore.delete
delete(String scope) → void
作用
刪除指定帳號記錄;不刪除官方 SDK 的授權快取或退出日志。
參數說明
  • scope / key, value / record: SDK 使用的隔離鍵和敏感記錄;自定義存儲必須支援多個鍵及原子替換。
返回值
void

無業務返回值;正常完成表示呼叫成功,失敗通過錯誤或異常報告。

Runtime.canStartOffline
canStartOffline() → boolean
作用
讀取官方 SDK 的當前授權狀態,不發起登入,也不代替功能執行時的權限檢查。
返回值
boolean

返回布爾分類結果,不是授權許可。

Runtime.start
start() → void
作用
啟動官方 SDK 的驗證和背景維護;帳號登入與功能保護仍由各自介面完成。
返回值
void

無業務返回值;正常完成表示呼叫成功,失敗通過錯誤或異常報告。

Runtime.runFeature
runFeature(String feature, Client.FeatureAction action) → void
作用
每次執行時由官方 SDK 校驗功能權限,通過后才執行回調;拒絕時回調不會執行。
參數說明
  • feature / name, action / block: 功能名稱必須匹配策略;回調包含實際受保護的業務程式碼。
返回值
void

無業務返回值;正常完成表示呼叫成功,失敗通過錯誤或異常報告。

Runtime.releaseDevice
releaseDevice() → void
作用
執行官方 SDK 的裝置登出;Launch 帳號工作階段由應用程式另行登出。
返回值
void

無業務返回值;正常完成表示呼叫成功,失敗通過錯誤或異常報告。

Runtime.close
close() → void
作用
停止當前實例和管理後台任務,保留已記住的登入與裝置綁定。
返回值
void

無業務返回值;普通關閉不能當作退出帳號或釋放裝置成功。

RuntimeFactory.create
create(Map<String,Object> settings) → Runtime
作用
為高級串接建立官方 SDK 適配器;身份聲明僅在內存中傳入。
參數說明
  • settings: 設定對象、執行時適配器、傳輸器或請求;僅高級串接需要自行提供。
返回值
Runtime

返回建立的對象;初始化本身不代表授權成功。

Sleeper.sleep
sleep(long milliseconds) → void
作用
等待指定時長,供進階整合的重試排程使用。
參數說明
  • milliseconds: 服務端建議等待的時長;注意秒、毫秒或 Duration 的語言差異。
返回值
void

無業務返回值;正常完成表示呼叫成功,失敗通過錯誤或異常報告。

JavaScript / TypeScript

對應源碼 · v0.1.6 · index.d.ts · index.mjs

錯誤與失敗處理: await Promise; catch (error); LaunchError(code, status, retryAfterSeconds)

Application.connect
Application.connect(merchantOrigin, productID, licentivoProductID, trustedKeys, options?) → Application
作用
校驗公開連線設定并建立應用程式對象;此時尚未登入,也沒有獲得執行受保護功能的權限。
參數說明
  • merchantOrigin / origin: 當前商店的完整源位址,包含協議及必要端口;正式環境使用 HTTPS。
  • productID / product_id: Launch 商店產品編號,由管理後台串接程式碼自動填入。
  • licentivoProductID / licentivo_product_id: Licentivo 授權產品編號,必須與公開簽章設定匹配。
  • trustedKeys / trusted_keys: 簽章金鑰編號到公鑰的映射,用于驗證官方 SDK 的簽章授權。
  • environment: sandbox 或 live;帳號、產品及快取必須保持同一環境。
  • options / config: 可選設定:會話存儲、私有快取目錄、取消信號、重試或高級組件。
返回值
Application

返回建立的對象;初始化本身不代表授權成功。

Application.login
login(email: string, password: string, options?: {signal?: AbortSignal}) → Promise<SessionState>
作用
使用商店客戶帳號登入,取得短期身份聲明并啟動官方授權 SDK。
參數說明
  • email, password: 客戶在當前商店註冊的電子信箱及密碼;密碼僅用于本次登入。
  • ctx / ct / signal / cancellation: 請求上下文或取消信號;Go 生命周期上下文也用于管理後台執行。
返回值
Promise<SessionState>

返回帳號狀態,欄位含義見下方返回欄位表。

Application.restore
restore(options?: {signal?: AbortSignal}) → Promise<SessionState | null>
作用
讀取已儲存的帳號會話,線上確認帳號并取得新的身份聲明,再啟動官方授權 SDK。
參數說明
  • ctx / ct / signal / cancellation: 請求上下文或取消信號;Go 生命周期上下文也用于管理後台執行。
返回值
Promise<SessionState | null>

返回帳號狀態;null 或 nil 表示沒有可恢復會話。其他失敗通過錯誤報告。

Application.runFeature
runFeature<T>(name: string, action: () => T | Promise<T>) → Promise<T>
作用
每次執行時由官方 SDK 校驗功能權限,通過后才執行回調;拒絕時回調不會執行。
參數說明
  • feature / name, action / block: 功能名稱必須匹配策略;回調包含實際受保護的業務程式碼。
返回值
Promise<T>

返回業務回調的結果;授權失敗或業務異常通過錯誤報告。

Application.logout
logout(options?: {signal?: AbortSignal}) → Promise<boolean>
作用
停止本機授權,呼叫官方 SDK 退出,再注銷 Launch 帳號會話;遠端未完成時保留重試任務。
參數說明
  • ctx / ct / signal / cancellation: 請求上下文或取消信號;Go 生命周期上下文也用于管理後台執行。
返回值
Promise<boolean>

true 表示退出已確認;false 表示遠端帳號退出或裝置撤銷仍待完成。存儲等失敗仍可能報錯。

Application.releaseDevice
releaseDevice(options?: {signal?: AbortSignal}) → Promise<void>
作用
顯式退出的兼容入口,執行與 Logout 相同的帳號及裝置退出流程。
參數說明
  • ctx / ct / signal / cancellation: 請求上下文或取消信號;Go 生命周期上下文也用于管理後台執行。
返回值
Promise<void>

無業務返回值;正常完成表示呼叫成功,失敗通過錯誤或異常報告。

Application.close
close() → Promise<void>
作用
停止當前實例和管理後台任務,保留已記住的登入與裝置綁定。
返回值
Promise<void>

無業務返回值;普通關閉不能當作退出帳號或釋放裝置成功。

高級與兼容介面

Application
new Application(launch: LaunchConfig, product: PublicProductConfig, options?: Options) → Application
作用
校驗公開連線設定并建立應用程式對象;此時尚未登入,也沒有獲得執行受保護功能的權限。
參數說明
  • launch, product: 設定對象、執行時適配器、傳輸器或請求;僅高級串接需要自行提供。
  • options / config: 可選設定:會話存儲、私有快取目錄、取消信號、重試或高級組件。
返回值
Application

返回建立的對象;初始化本身不代表授權成功。

Application.fromFiles
Application.fromFiles(launchPath: string, productPath: string, options?: Options) → Promise<Application>
作用
從已有的兩份公開設定讀取并校驗產品映射,再建立應用程式對象。直接連線不需要設定檔。
參數說明
  • launchPath, productPath: 呼叫者指定的設定路徑或當前使用者私有快取、存儲目錄。
  • options / config: 可選設定:會話存儲、私有快取目錄、取消信號、重試或高級組件。
返回值
Promise<Application>

返回建立的對象;初始化本身不代表授權成功。

validateConfig
validateConfig(launch: LaunchConfig, product: PublicProductConfig) → {launch: LaunchConfig, product: PublicProductConfig}
作用
校驗或讀取公開設定;產品編號、環境和簽章公鑰必須匹配。
參數說明
  • launch, product: 設定對象、執行時適配器、傳輸器或請求;僅高級串接需要自行提供。
返回值
{launch: LaunchConfig, product: PublicProductConfig}

返回簽章所示類型的值;此結果本身不授予功能權限。

loadConfig
loadConfig(launchPath: string, productPath: string) → Promise<{launch: LaunchConfig, product: PublicProductConfig}>
作用
校驗或讀取公開設定;產品編號、環境和簽章公鑰必須匹配。
參數說明
  • launchPath, productPath: 呼叫者指定的設定路徑或當前使用者私有快取、存儲目錄。
返回值
Promise<{launch: LaunchConfig, product: PublicProductConfig}>

返回簽章所示類型的值;此結果本身不授予功能權限。

defaultTransport
defaultTransport(request: Request) → Promise<Response>
作用
傳送帳號 HTTP 請求,返回狀態、回應頭或原始回應體;不作授權決定。
參數說明
  • request: 設定對象、執行時適配器、傳輸器或請求;僅高級串接需要自行提供。
返回值
Promise<Response>

返回簽章所示類型的值;此結果本身不授予功能權限。

MemoryStore
new MemoryStore() → MemoryStore
作用
建立僅當前處理程序有效的會話存儲。
返回值
MemoryStore

返回建立的對象;初始化本身不代表授權成功。

EncryptedFileStore
new EncryptedFileStore(directory: string, key: Uint8Array) → EncryptedFileStore
作用
建立受保護的持久會話存儲;加密金鑰由應用程式從作業系統憑據庫取得。
參數說明
  • directory: 呼叫者指定的設定路徑或當前使用者私有快取、存儲目錄。
  • key: 從作業系統憑據庫取得的加密金鑰;不要與加密記錄放在一起。
返回值
EncryptedFileStore

返回建立的對象;初始化本身不代表授權成功。

LaunchError
new LaunchError(code: string, status=0, retryAfterSeconds=0) → LaunchError
作用
建立或讀取結構化錯誤;錯誤欄位用于分類、退避和關聯排錯。
參數說明
  • code, status, retryAfterSeconds: 建立或讀取結構化錯誤;錯誤欄位用于分類、退避和關聯排錯。
返回值
LaunchError

返回簽章所示類型的值;此結果本身不授予功能權限。

SessionStore.load / MemoryStore.load / EncryptedFileStore.load
load(scope: string) → Promise<SavedSession | null>
作用
按隔離鍵讀取帳號記錄;返回內容含敏感會話資料,僅交給 SDK。
參數說明
  • scope / key, value / record: SDK 使用的隔離鍵和敏感記錄;自定義存儲必須支援多個鍵及原子替換。
返回值
Promise<SavedSession | null>

返回儲存的敏感記錄;不存在時返回空值或 ErrNoSession,按當前語言約定處理。

SessionStore.save / MemoryStore.save / EncryptedFileStore.save
save(scope: string, value: SavedSession) → Promise<void>
作用
按隔離鍵原子儲存帳號記錄。
參數說明
  • scope / key, value / record: SDK 使用的隔離鍵和敏感記錄;自定義存儲必須支援多個鍵及原子替換。
返回值
Promise<void>

無業務返回值;正常完成表示呼叫成功,失敗通過錯誤或異常報告。

SessionStore.delete / MemoryStore.delete / EncryptedFileStore.delete
delete(scope: string) → Promise<void>
作用
刪除指定帳號記錄;不刪除官方 SDK 的授權快取或退出日志。
參數說明
  • scope / key, value / record: SDK 使用的隔離鍵和敏感記錄;自定義存儲必須支援多個鍵及原子替換。
返回值
Promise<void>

無業務返回值;正常完成表示呼叫成功,失敗通過錯誤或異常報告。

Runtime.status
status() → {allowed:boolean,state:string} | Promise<{allowed:boolean,state:string}>
作用
讀取官方 SDK 的當前授權狀態,不發起登入,也不代替功能執行時的權限檢查。
返回值
{allowed:boolean,state:string} | Promise<{allowed:boolean,state:string}>

讀取官方 SDK 的當前授權狀態,不發起登入,也不代替功能執行時的權限檢查。

Runtime.start
start(onError?: (error: unknown) => void, signal?: AbortSignal) → Promise<unknown>
作用
啟動官方 SDK 的驗證和背景維護;帳號登入與功能保護仍由各自介面完成。
參數說明
  • onError: 建立或讀取結構化錯誤;錯誤欄位用于分類、退避和關聯排錯。
  • ctx / ct / signal / cancellation: 請求上下文或取消信號;Go 生命周期上下文也用于管理後台執行。
返回值
Promise<unknown>

無業務返回值;正常完成表示呼叫成功,失敗通過錯誤或異常報告。

Runtime.runFeature
runFeature<T>(name: string, action: () => T | Promise<T>) → Promise<T>
作用
每次執行時由官方 SDK 校驗功能權限,通過后才執行回調;拒絕時回調不會執行。
參數說明
  • feature / name, action / block: 功能名稱必須匹配策略;回調包含實際受保護的業務程式碼。
返回值
Promise<T>

返回業務回調的結果;授權失敗或業務異常通過錯誤報告。

Runtime.deactivate
deactivate(signal?: AbortSignal) → Promise<unknown>
作用
執行官方 SDK 的裝置登出;Launch 帳號工作階段由應用程式另行登出。
參數說明
  • ctx / ct / signal / cancellation: 請求上下文或取消信號;Go 生命周期上下文也用于管理後台執行。
返回值
Promise<unknown>

無業務返回值;正常完成表示呼叫成功,失敗通過錯誤或異常報告。

Runtime.logout
logout?(signal?: AbortSignal) → Promise<{local_complete:boolean,revocation_pending:boolean,storage_error?:string}>
作用
執行官方 SDK 的裝置登出;Launch 帳號工作階段由應用程式另行登出。
參數說明
  • ctx / ct / signal / cancellation: 請求上下文或取消信號;Go 生命周期上下文也用于管理後台執行。
返回值
Promise<{local_complete:boolean,revocation_pending:boolean,storage_error?:string}>

本機退出完成與遠端撤銷完成是兩個狀態。遇到待完成或存儲失敗必須處理返回值,保留 SDK 退出日志。

Runtime.close
close() → Promise<unknown>
作用
停止當前實例和管理後台任務,保留已記住的登入與裝置綁定。
返回值
Promise<unknown>

無業務返回值;普通關閉不能當作退出帳號或釋放裝置成功。

Rust

對應源碼 · v0.1.6 · lib.rs · store.rs · transport.rs

錯誤與失敗處理: Result<T, Failure>: Ok(value) / Err(Failure {code, status, request_id, retry_after, transport})

Application::connect
Application::connect(origin: &str, product_id: &str, licentivo_product_id: &str, trusted_keys: &[(&str,&str)], environment: &str) → Result<Application, Failure>
作用
校驗公開連線設定并建立應用程式對象;此時尚未登入,也沒有獲得執行受保護功能的權限。
參數說明
  • merchantOrigin / origin: 當前商店的完整源位址,包含協議及必要端口;正式環境使用 HTTPS。
  • productID / product_id: Launch 商店產品編號,由管理後台串接程式碼自動填入。
  • licentivoProductID / licentivo_product_id: Licentivo 授權產品編號,必須與公開簽章設定匹配。
  • trustedKeys / trusted_keys: 簽章金鑰編號到公鑰的映射,用于驗證官方 SDK 的簽章授權。
  • environment: sandbox 或 live;帳號、產品及快取必須保持同一環境。
返回值
Result<Application, Failure>

返回建立的對象;初始化本身不代表授權成功。

Application::login
login(&mut self, email: &str, password: &str) → Result<State, Failure>
作用
使用商店客戶帳號登入,取得短期身份聲明并啟動官方授權 SDK。
參數說明
  • email, password: 客戶在當前商店註冊的電子信箱及密碼;密碼僅用于本次登入。
返回值
Result<State, Failure>

返回帳號狀態,欄位含義見下方返回欄位表。

Application::restore
restore(&mut self) → Result<State, Failure>
作用
讀取已儲存的帳號會話,線上確認帳號并取得新的身份聲明,再啟動官方授權 SDK。
返回值
Result<State, Failure>

返回帳號狀態;沒有會話時報告 ErrNoSession 或 NO_SESSION,其他錯誤必須單獨處理。

Application::run_feature
run_feature<T,F: FnOnce() -> Result<T,Failure>>(&mut self, feature: &str, action: F) → Result<T, Failure>
作用
每次執行時由官方 SDK 校驗功能權限,通過后才執行回調;拒絕時回調不會執行。
參數說明
  • feature / name, action / block: 功能名稱必須匹配策略;回調包含實際受保護的業務程式碼。
返回值
Result<T, Failure>

返回業務回調的結果;授權失敗或業務異常通過錯誤報告。

Application::logout
logout(&mut self) → Result<(), Failure>
作用
停止本機授權,呼叫官方 SDK 退出,再注銷 Launch 帳號會話;遠端未完成時保留重試任務。
返回值
Result<(), Failure>

無業務返回值;正常完成表示呼叫成功,失敗通過錯誤或異常報告。

Application::release_device
release_device(&mut self) → Result<(), Failure>
作用
顯式退出的兼容入口,執行與 Logout 相同的帳號及裝置退出流程。
返回值
Result<(), Failure>

無業務返回值;正常完成表示呼叫成功,失敗通過錯誤或異常報告。

Application::close / Drop
close(&mut self) / drop(&mut self) → ()
作用
停止當前實例和管理後台任務,保留已記住的登入與裝置綁定。
返回值
()

無業務返回值;普通關閉不能當作退出帳號或釋放裝置成功。

高級與兼容介面

Application::new
Application::new(config: Config, product: Value, cache_root: PathBuf) → Result<Application, Failure>
作用
校驗公開連線設定并建立應用程式對象;此時尚未登入,也沒有獲得執行受保護功能的權限。
參數說明
  • config, product: 設定對象、執行時適配器、傳輸器或請求;僅高級串接需要自行提供。
  • cache_root: 呼叫者指定的設定路徑或當前使用者私有快取、存儲目錄。
返回值
Result<Application, Failure>

返回建立的對象;初始化本身不代表授權成功。

Application::with_components
Application::with_components(config: Config, product: Value, cache_root: PathBuf, store: Box<dyn Store>, transport: Box<dyn Transport>, factory: Box<dyn RuntimeFactory>, sleeper: Box<dyn Sleeper>) → Result<Application, Failure>
作用
校驗公開連線設定并建立應用程式對象;此時尚未登入,也沒有獲得執行受保護功能的權限。
參數說明
  • config, product: 設定對象、執行時適配器、傳輸器或請求;僅高級串接需要自行提供。
  • cache_root: 呼叫者指定的設定路徑或當前使用者私有快取、存儲目錄。
  • store, transport, factory, sleeper: 可選設定:會話存儲、私有快取目錄、取消信號、重試或高級組件。
返回值
Result<Application, Failure>

返回建立的對象;初始化本身不代表授權成功。

Config::new
Config::new(origin: &str, product: &str, runtime_product: &str, environment: &str) → Result<Config, Failure>
作用
校驗或讀取公開設定;產品編號、環境和簽章公鑰必須匹配。
參數說明
  • merchantOrigin / origin: 當前商店的完整源位址,包含協議及必要端口;正式環境使用 HTTPS。
  • productID / product_id: Launch 商店產品編號,由管理後台串接程式碼自動填入。
  • licentivoProductID / licentivo_product_id: Licentivo 授權產品編號,必須與公開簽章設定匹配。
  • environment: sandbox 或 live;帳號、產品及快取必須保持同一環境。
返回值
Result<Config, Failure>

返回簽章所示類型的值;此結果本身不授予功能權限。

Config::load
Config::load(path: impl AsRef<Path>) → Result<Config, Failure>
作用
校驗或讀取公開設定;產品編號、環境和簽章公鑰必須匹配。
參數說明
  • path: 呼叫者指定的設定路徑或當前使用者私有快取、存儲目錄。
返回值
Result<Config, Failure>

返回簽章所示類型的值;此結果本身不授予功能權限。

read_public
read_public(path: impl AsRef<Path>) → Result<Value, Failure>
作用
校驗或讀取公開設定;產品編號、環境和簽章公鑰必須匹配。
參數說明
  • path: 呼叫者指定的設定路徑或當前使用者私有快取、存儲目錄。
返回值
Result<Value, Failure>

返回簽章所示類型的值;此結果本身不授予功能權限。

MemoryStore::default
MemoryStore::default() → MemoryStore
作用
建立僅當前處理程序有效的會話存儲。
返回值
MemoryStore

返回建立的對象;初始化本身不代表授權成功。

EncryptedFileStore::new
EncryptedFileStore::new(root: PathBuf, vault_key: [u8;32]) → Result<EncryptedFileStore, Failure>
作用
建立受保護的持久會話存儲;加密金鑰由應用程式從作業系統憑據庫取得。
參數說明
  • root: 呼叫者指定的設定路徑或當前使用者私有快取、存儲目錄。
  • vault_key: 從作業系統憑據庫取得的加密金鑰;不要與加密記錄放在一起。
返回值
Result<EncryptedFileStore, Failure>

返回建立的對象;初始化本身不代表授權成功。

CurlTransport::new
CurlTransport::new() → Result<CurlTransport, Failure>
作用
傳送帳號 HTTP 請求,返回狀態、回應頭或原始回應體;不作授權決定。
返回值
Result<CurlTransport, Failure>

返回建立的對象;初始化本身不代表授權成功。

CurlTransport::request
request(&mut self, method: &str, url: &str, bearer: &str, body: &[u8]) → Result<Response, Failure>
作用
傳送帳號 HTTP 請求,返回狀態、回應頭或原始回應體;不作授權決定。
參數說明
  • method, url, bearer, body: 設定對象、執行時適配器、傳輸器或請求;僅高級串接需要自行提供。
返回值
Result<Response, Failure>

返回簽章所示類型的值;此結果本身不授予功能權限。

Failure::new
Failure::new(code: &str) → Failure
作用
建立或讀取結構化錯誤;錯誤欄位用于分類、退避和關聯排錯。
參數說明
  • code: 建立或讀取結構化錯誤;錯誤欄位用于分類、退避和關聯排錯。
返回值
Failure

返回簽章所示類型的值;此結果本身不授予功能權限。

ThreadSleeper::sleep
sleep(&mut self, duration: Duration) → Result<(), Failure>
作用
等待指定時長,供進階整合的重試排程使用。
參數說明
  • duration: 服務端建議等待的時長;注意秒、毫秒或 Duration 的語言差異。
返回值
Result<(), Failure>

無業務返回值;正常完成表示呼叫成功,失敗通過錯誤或異常報告。

Store::load / MemoryStore::load / EncryptedFileStore::load
load(&mut self, scope: &str) → Result<Option<Vec<u8>>, Failure>
作用
按隔離鍵讀取帳號記錄;返回內容含敏感會話資料,僅交給 SDK。
參數說明
  • scope / key, value / record: SDK 使用的隔離鍵和敏感記錄;自定義存儲必須支援多個鍵及原子替換。
返回值
Result<Option<Vec<u8>>, Failure>

返回儲存的敏感記錄;不存在時返回空值或 ErrNoSession,按當前語言約定處理。

Store::save / MemoryStore::save / EncryptedFileStore::save
save(&mut self, scope: &str, value: &[u8]) → Result<(), Failure>
作用
按隔離鍵原子儲存帳號記錄。
參數說明
  • scope / key, value / record: SDK 使用的隔離鍵和敏感記錄;自定義存儲必須支援多個鍵及原子替換。
返回值
Result<(), Failure>

無業務返回值;正常完成表示呼叫成功,失敗通過錯誤或異常報告。

Store::delete / MemoryStore::delete / EncryptedFileStore::delete
delete(&mut self, scope: &str) → Result<(), Failure>
作用
刪除指定帳號記錄;不刪除官方 SDK 的授權快取或退出日志。
參數說明
  • scope / key, value / record: SDK 使用的隔離鍵和敏感記錄;自定義存儲必須支援多個鍵及原子替換。
返回值
Result<(), Failure>

無業務返回值;正常完成表示呼叫成功,失敗通過錯誤或異常報告。

Runtime::run_feature
run_feature(&mut self, feature: &str, action: &mut dyn FnMut() -> Result<(),Failure>) → Result<(), Failure>
作用
每次執行時由官方 SDK 校驗功能權限,通過后才執行回調;拒絕時回調不會執行。
參數說明
  • feature / name, action / block: 功能名稱必須匹配策略;回調包含實際受保護的業務程式碼。
返回值
Result<(), Failure>

無業務返回值;正常完成表示呼叫成功,失敗通過錯誤或異常報告。

Runtime::release_device
release_device(&mut self) → Result<(), Failure>
作用
執行官方 SDK 的裝置登出;Launch 帳號工作階段由應用程式另行登出。
返回值
Result<(), Failure>

無業務返回值;正常完成表示呼叫成功,失敗通過錯誤或異常報告。

Runtime::close
close(&mut self) → ()
作用
停止當前實例和管理後台任務,保留已記住的登入與裝置綁定。
返回值
()

無業務返回值;普通關閉不能當作退出帳號或釋放裝置成功。

RuntimeFactory::open / OfficialRuntimeFactory::open
open(&mut self, settings: &Value, cached_only: bool) → Result<Box<dyn Runtime>, Failure>
作用
為高級串接建立官方 SDK 適配器;身份聲明僅在內存中傳入。
參數說明
  • settings, cached_only: 設定對象、執行時適配器、傳輸器或請求;僅高級串接需要自行提供。
返回值
Result<Box<dyn Runtime>, Failure>

返回建立的對象;初始化本身不代表授權成功。

RuntimeFactory::for_logout / OfficialRuntimeFactory::for_logout
for_logout(&mut self, settings: &Value) → Result<Box<dyn Runtime>, Failure>
作用
為高級串接建立官方 SDK 適配器;身份聲明僅在內存中傳入。
參數說明
  • settings: 設定對象、執行時適配器、傳輸器或請求;僅高級串接需要自行提供。
返回值
Result<Box<dyn Runtime>, Failure>

返回建立的對象;初始化本身不代表授權成功。

Sleeper::sleep
sleep(&mut self, duration: Duration) → Result<(), Failure>
作用
等待指定時長,供進階整合的重試排程使用。
參數說明
  • duration: 服務端建議等待的時長;注意秒、毫秒或 Duration 的語言差異。
返回值
Result<(), Failure>

無業務返回值;正常完成表示呼叫成功,失敗通過錯誤或異常報告。

Ruby

對應源碼 · v0.1.6 · licentivo_launch.rb

錯誤與失敗處理: rescue LicentivoLaunch::Error; code / status / retry_after_seconds; callback exceptions

Application.connect
LicentivoLaunch::Application.connect(merchant_origin, product_id, licentivo_product_id, trusted_keys, environment: "live", **options) → Application
作用
校驗公開連線設定并建立應用程式對象;此時尚未登入,也沒有獲得執行受保護功能的權限。
參數說明
  • merchantOrigin / origin: 當前商店的完整源位址,包含協議及必要端口;正式環境使用 HTTPS。
  • productID / product_id: Launch 商店產品編號,由管理後台串接程式碼自動填入。
  • licentivoProductID / licentivo_product_id: Licentivo 授權產品編號,必須與公開簽章設定匹配。
  • trustedKeys / trusted_keys: 簽章金鑰編號到公鑰的映射,用于驗證官方 SDK 的簽章授權。
  • environment: sandbox 或 live;帳號、產品及快取必須保持同一環境。
  • options / config: 可選設定:會話存儲、私有快取目錄、取消信號、重試或高級組件。
返回值
Application

返回建立的對象;初始化本身不代表授權成功。

Application#login
login(email, password, cancellation: nil) → Hash
作用
使用商店客戶帳號登入,取得短期身份聲明并啟動官方授權 SDK。
參數說明
  • email, password: 客戶在當前商店註冊的電子信箱及密碼;密碼僅用于本次登入。
  • ctx / ct / signal / cancellation: 請求上下文或取消信號;Go 生命周期上下文也用于管理後台執行。
返回值
Hash

返回帳號狀態,欄位含義見下方返回欄位表。

Application#restore
restore(cancellation: nil) → Hash | nil
作用
讀取已儲存的帳號會話,線上確認帳號并取得新的身份聲明,再啟動官方授權 SDK。
參數說明
  • ctx / ct / signal / cancellation: 請求上下文或取消信號;Go 生命周期上下文也用于管理後台執行。
返回值
Hash | nil

返回帳號狀態;null 或 nil 表示沒有可恢復會話。其他失敗通過錯誤報告。

Application#run_feature
run_feature(feature) { ... } → T
作用
每次執行時由官方 SDK 校驗功能權限,通過后才執行回調;拒絕時回調不會執行。
參數說明
  • feature / name, action / block: 功能名稱必須匹配策略;回調包含實際受保護的業務程式碼。
返回值
T

返回業務回調的結果;授權失敗或業務異常通過錯誤報告。

Application#logout
logout(cancellation: nil) → true | false
作用
停止本機授權,呼叫官方 SDK 退出,再注銷 Launch 帳號會話;遠端未完成時保留重試任務。
參數說明
  • ctx / ct / signal / cancellation: 請求上下文或取消信號;Go 生命周期上下文也用于管理後台執行。
返回值
true | false

true 表示退出已確認;false 表示遠端帳號退出或裝置撤銷仍待完成。存儲等失敗仍可能報錯。

Application#release_device
release_device(cancellation: nil) → true | false
作用
顯式退出的兼容入口,執行與 Logout 相同的帳號及裝置退出流程。
參數說明
  • ctx / ct / signal / cancellation: 請求上下文或取消信號;Go 生命周期上下文也用于管理後台執行。
返回值
true | false

true 表示退出已確認;false 表示遠端帳號退出或裝置撤銷仍待完成。存儲等失敗仍可能報錯。

Application#close
close → nil
作用
停止當前實例和管理後台任務,保留已記住的登入與裝置綁定。
返回值
nil

無業務返回值;普通關閉不能當作退出帳號或釋放裝置成功。

高級與兼容介面

Application.new
Application.new(launch, product, store: MemoryStore.new, transport: nil, runtime_factory: nil, cache_dir: nil, sleep: nil, pending_attempts: 5) → Application
作用
校驗公開連線設定并建立應用程式對象;此時尚未登入,也沒有獲得執行受保護功能的權限。
參數說明
  • launch, product: 設定對象、執行時適配器、傳輸器或請求;僅高級串接需要自行提供。
  • options / config: 可選設定:會話存儲、私有快取目錄、取消信號、重試或高級組件。
返回值
Application

返回建立的對象;初始化本身不代表授權成功。

Application.from_files
Application.from_files(launch_path, product_path, **options) → Application
作用
從已有的兩份公開設定讀取并校驗產品映射,再建立應用程式對象。直接連線不需要設定檔。
參數說明
  • launchPath, productPath: 呼叫者指定的設定路徑或當前使用者私有快取、存儲目錄。
  • options / config: 可選設定:會話存儲、私有快取目錄、取消信號、重試或高級組件。
返回值
Application

返回建立的對象;初始化本身不代表授權成功。

LicentivoLaunch.origin
LicentivoLaunch.origin(value, environment) → String
作用
校驗或讀取公開設定;產品編號、環境和簽章公鑰必須匹配。
參數說明
  • value: 當前商店的完整源位址,包含協議及必要端口;正式環境使用 HTTPS。
  • environment: sandbox 或 live;帳號、產品及快取必須保持同一環境。
返回值
String

返回簽章所示類型的值;此結果本身不授予功能權限。

LicentivoLaunch.validate_config
LicentivoLaunch.validate_config(launch, product) → [Hash, Hash]
作用
校驗或讀取公開設定;產品編號、環境和簽章公鑰必須匹配。
參數說明
  • launch, product: 設定對象、執行時適配器、傳輸器或請求;僅高級串接需要自行提供。
返回值
[Hash, Hash]

返回簽章所示類型的值;此結果本身不授予功能權限。

LicentivoLaunch.load_config
LicentivoLaunch.load_config(launch_path, product_path) → [Hash, Hash]
作用
校驗或讀取公開設定;產品編號、環境和簽章公鑰必須匹配。
參數說明
  • launchPath, productPath: 呼叫者指定的設定路徑或當前使用者私有快取、存儲目錄。
返回值
[Hash, Hash]

返回簽章所示類型的值;此結果本身不授予功能權限。

LicentivoLaunch.default_transport
LicentivoLaunch.default_transport(request) → Hash
作用
傳送帳號 HTTP 請求,返回狀態、回應頭或原始回應體;不作授權決定。
參數說明
  • request: 設定對象、執行時適配器、傳輸器或請求;僅高級串接需要自行提供。
返回值
Hash

返回簽章所示類型的值;此結果本身不授予功能權限。

MemoryStore.new
MemoryStore.new → MemoryStore
作用
建立僅當前處理程序有效的會話存儲。
返回值
MemoryStore

返回建立的對象;初始化本身不代表授權成功。

EncryptedFileStore.new
EncryptedFileStore.new(directory, key) → EncryptedFileStore
作用
建立受保護的持久會話存儲;加密金鑰由應用程式從作業系統憑據庫取得。
參數說明
  • directory: 呼叫者指定的設定路徑或當前使用者私有快取、存儲目錄。
  • key: 從作業系統憑據庫取得的加密金鑰;不要與加密記錄放在一起。
返回值
EncryptedFileStore

返回建立的對象;初始化本身不代表授權成功。

MemoryStore#persistent? / EncryptedFileStore#persistent? / #secure?
persistent? / secure? → true | false
作用
校驗或讀取公開設定;產品編號、環境和簽章公鑰必須匹配。
返回值
true | false

返回布爾分類結果,不是授權許可。

EncryptedFileStore#path
path(scope) → String
作用
校驗或讀取公開設定;產品編號、環境和簽章公鑰必須匹配。
參數說明
  • scope: SDK 使用的隔離鍵和敏感記錄;自定義存儲必須支援多個鍵及原子替換。
返回值
String

返回簽章所示類型的值;此結果本身不授予功能權限。

CancellationToken#cancel / #check!
CancellationToken.new.cancel / check! → true / nil
作用
請求或檢查協作式取消;取消不代表授權成功。
返回值
true / nil

無業務返回值;正常完成表示呼叫成功,失敗通過錯誤或異常報告。

Error.new
Error.new(code, status: 0, retry_after_seconds: 0) → Error
作用
建立或讀取結構化錯誤;錯誤欄位用于分類、退避和關聯排錯。
參數說明
  • code, status, retry_after_seconds: 建立或讀取結構化錯誤;錯誤欄位用于分類、退避和關聯排錯。
返回值
Error

返回簽章所示類型的值;此結果本身不授予功能權限。

MemoryStore#load / EncryptedFileStore#load
load(scope) → Hash | nil
作用
按隔離鍵讀取帳號記錄;返回內容含敏感會話資料,僅交給 SDK。
參數說明
  • scope / key, value / record: SDK 使用的隔離鍵和敏感記錄;自定義存儲必須支援多個鍵及原子替換。
返回值
Hash | nil

返回儲存的敏感記錄;不存在時返回空值或 ErrNoSession,按當前語言約定處理。

MemoryStore#save / EncryptedFileStore#save
save(scope, record) → Object
作用
按隔離鍵原子儲存帳號記錄。
參數說明
  • scope / key, value / record: SDK 使用的隔離鍵和敏感記錄;自定義存儲必須支援多個鍵及原子替換。
返回值
Object

無業務返回值;正常完成表示呼叫成功,失敗通過錯誤或異常報告。

MemoryStore#delete / EncryptedFileStore#delete
delete(scope) → Object
作用
刪除指定帳號記錄;不刪除官方 SDK 的授權快取或退出日志。
參數說明
  • scope / key, value / record: SDK 使用的隔離鍵和敏感記錄;自定義存儲必須支援多個鍵及原子替換。
返回值
Object

無業務返回值;正常完成表示呼叫成功,失敗通過錯誤或異常報告。

C

對應源碼 · v0.1.6 · account.h · account.c

錯誤與失敗處理: NULL / 0 / -1; launch_application_error(app); action(context): 1=success, 0=failure

launch_application_connect
launch_application_connect(origin, product_id, licentivo_product_id, trusted_keys_json, environment, remember, store) → launch_application *
作用
校驗公開連線設定并建立應用程式對象;此時尚未登入,也沒有獲得執行受保護功能的權限。
參數說明
  • merchantOrigin / origin: 當前商店的完整源位址,包含協議及必要端口;正式環境使用 HTTPS。
  • productID / product_id: Launch 商店產品編號,由管理後台串接程式碼自動填入。
  • licentivoProductID / licentivo_product_id: Licentivo 授權產品編號,必須與公開簽章設定匹配。
  • trustedKeys / trusted_keys: 簽章金鑰編號到公鑰的映射,用于驗證官方 SDK 的簽章授權。
  • environment: sandbox 或 live;帳號、產品及快取必須保持同一環境。
  • remember, store: 可選設定:會話存儲、私有快取目錄、取消信號、重試或高級組件。
返回值
launch_application *

返回擁有所有權的應用程式指針;NULL 表示初始化失敗。最終必須呼叫 close 釋放。

launch_application_login
launch_application_login(launch_application *app, const char *email, const char *password) → int
作用
使用商店客戶帳號登入,取得短期身份聲明并啟動官方授權 SDK。
參數說明
  • email, password: 客戶在當前商店註冊的電子信箱及密碼;密碼僅用于本次登入。
返回值
int

1 表示成功,0 表示失敗;失敗后讀取錯誤碼。

launch_application_restore
launch_application_restore(launch_application *app) → int
作用
讀取已儲存的帳號會話,線上確認帳號并取得新的身份聲明,再啟動官方授權 SDK。
返回值
int

1 表示恢復成功,0 表示沒有會話,-1 表示拒絕或失敗;失敗后讀取錯誤碼。

launch_application_run_feature
launch_application_run_feature(app, feature, ln_feature_action action, void *context) → int
作用
每次執行時由官方 SDK 校驗功能權限,通過后才執行回調;拒絕時回調不會執行。
參數說明
  • feature / name, action / block: 功能名稱必須匹配策略;回調包含實際受保護的業務程式碼。
  • context: 設定對象、執行時適配器、傳輸器或請求;僅高級串接需要自行提供。
返回值
int

1 表示成功,0 表示失敗;失敗后讀取錯誤碼。

launch_application_logout
launch_application_logout(launch_application *app) → int
作用
停止本機授權,呼叫官方 SDK 退出,再注銷 Launch 帳號會話;遠端未完成時保留重試任務。
返回值
int

1 表示成功,0 表示失敗;失敗后讀取錯誤碼。

launch_application_release_device
launch_application_release_device(launch_application *app) → int
作用
顯式退出的兼容入口,執行與 Logout 相同的帳號及裝置退出流程。
返回值
int

1 表示成功,0 表示失敗;失敗后讀取錯誤碼。

launch_application_status
launch_application_status(launch_application *app) → char *
作用
讀取官方 SDK 的當前授權狀態,不發起登入,也不代替功能執行時的權限檢查。
返回值
char *

返回擁有所有權的 JSON 字串,使用 ln_free_string 釋放;無執行時返回 login_required 和 allowed=false。

launch_application_error
launch_application_error(const launch_application *app) → const char *
作用
建立或讀取結構化錯誤;錯誤欄位用于分類、退避和關聯排錯。
返回值
const char *

返回借用的錯誤碼字串,不可釋放;應用程式銷毀后不可繼續訪問。

launch_application_close
launch_application_close(launch_application *app) → void
作用
停止當前實例和管理後台任務,保留已記住的登入與裝置綁定。
返回值
void

無業務返回值;普通關閉不能當作退出帳號或釋放裝置成功。

高級與兼容介面

launch_application_open
launch_application_open(origin, product_id, product_config_path, environment, remember, store) → launch_application *
作用
從已有的兩份公開設定讀取并校驗產品映射,再建立應用程式對象。直接連線不需要設定檔。
參數說明
  • origin: 當前商店的完整源位址,包含協議及必要端口;正式環境使用 HTTPS。
  • product_id: Launch 商店產品編號,由管理後台串接程式碼自動填入。
  • product_config_path: 呼叫者指定的設定路徑或當前使用者私有快取、存儲目錄。
  • environment: sandbox 或 live;帳號、產品及快取必須保持同一環境。
  • remember, store: 可選設定:會話存儲、私有快取目錄、取消信號、重試或高級組件。
返回值
launch_application *

返回擁有所有權的應用程式指針;NULL 表示初始化失敗。最終必須呼叫 close 釋放。

launch_application_from_files
launch_application_from_files(launch_config_path, product_config_path, remember, store) → launch_application *
作用
從已有的兩份公開設定讀取并校驗產品映射,再建立應用程式對象。直接連線不需要設定檔。
參數說明
  • launchPath, productPath: 呼叫者指定的設定路徑或當前使用者私有快取、存儲目錄。
  • remember, store: 可選設定:會話存儲、私有快取目錄、取消信號、重試或高級組件。
返回值
launch_application *

返回擁有所有權的應用程式指針;NULL 表示初始化失敗。最終必須呼叫 close 釋放。

launch_application_cli
launch_application_cli(int argc, char **argv) → launch_application *
作用
從已有的兩份公開設定讀取并校驗產品映射,再建立應用程式對象。直接連線不需要設定檔。
參數說明
  • argc, argv: 設定對象、執行時適配器、傳輸器或請求;僅高級串接需要自行提供。
返回值
launch_application *

返回擁有所有權的應用程式指針;NULL 表示初始化失敗。最終必須呼叫 close 釋放。

launch_login / launch_sign_in
launch_login(account, origin, product_id, config_path, environment, email, password) / launch_sign_in(account, argc, argv) → int
作用
保留的舊介面;長期授權憑據協議已移除,呼叫會失敗。新串接使用 Application。
參數說明
  • account, origin, product_id, config_path, environment, email, password, argc, argv: 設定對象、執行時適配器、傳輸器或請求;僅高級串接需要自行提供。
返回值
int

總是失敗;請遷移到帳號身份交換介面。

launch_sign_out
launch_sign_out(launch_account *account, int clear_cache) → void
作用
停止當前實例和管理後台任務,保留已記住的登入與裝置綁定。
參數說明
  • account, clear_cache: 設定對象、執行時適配器、傳輸器或請求;僅高級串接需要自行提供。
返回值
void

無業務返回值;正常完成表示呼叫成功,失敗通過錯誤或異常報告。

ln_free_string
ln_free_string(char *value) → void
作用
停止當前實例和管理後台任務,保留已記住的登入與裝置綁定。
參數說明
  • value: 返回擁有所有權的 JSON 字串,使用 ln_free_string 釋放;無執行時返回 login_required 和 allowed=false。
返回值
void

無業務返回值;正常完成表示呼叫成功,失敗通過錯誤或異常報告。

launch_secret_store.load
load(void *context, const char *scope, char **record) → int
作用
按隔離鍵讀取帳號記錄;返回內容含敏感會話資料,僅交給 SDK。
參數說明
  • context: 設定對象、執行時適配器、傳輸器或請求;僅高級串接需要自行提供。
  • scope, record: SDK 使用的隔離鍵和敏感記錄;自定義存儲必須支援多個鍵及原子替換。
返回值
int

1 表示找到記錄,0 表示不存在,-1 表示讀取失敗。record 必須由 load 配置,呼叫端負責釋放。

launch_secret_store.save
save(void *context, const char *scope, const char *record) → int (1: success, 0: failure)
作用
按隔離鍵原子儲存帳號記錄。
參數說明
  • context: 設定對象、執行時適配器、傳輸器或請求;僅高級串接需要自行提供。
  • scope, record: SDK 使用的隔離鍵和敏感記錄;自定義存儲必須支援多個鍵及原子替換。
返回值
int (1: success, 0: failure)

無業務返回值;正常完成表示呼叫成功,失敗通過錯誤或異常報告。

launch_secret_store.remove
remove(void *context, const char *scope) → int (1: success, 0: failure)
作用
刪除指定帳號記錄;不刪除官方 SDK 的授權快取或退出日志。
參數說明
  • context: 設定對象、執行時適配器、傳輸器或請求;僅高級串接需要自行提供。
  • scope: SDK 使用的隔離鍵和敏感記錄;自定義存儲必須支援多個鍵及原子替換。
返回值
int (1: success, 0: failure)

無業務返回值;正常完成表示呼叫成功,失敗通過錯誤或異常報告。

C++

對應源碼 · v0.1.6 · launch.hpp

錯誤與失敗處理: std::runtime_error; callback exceptions propagate; RAII; Status(): std::string JSON

Application::Connect
Application::Connect(origin, product, licentivo_product, trusted_keys_json, environment="live", remember=false, store=nullptr) → Application
作用
校驗公開連線設定并建立應用程式對象;此時尚未登入,也沒有獲得執行受保護功能的權限。
參數說明
  • merchantOrigin / origin: 當前商店的完整源位址,包含協議及必要端口;正式環境使用 HTTPS。
  • productID / product_id: Launch 商店產品編號,由管理後台串接程式碼自動填入。
  • licentivoProductID / licentivo_product_id: Licentivo 授權產品編號,必須與公開簽章設定匹配。
  • trustedKeys / trusted_keys: 簽章金鑰編號到公鑰的映射,用于驗證官方 SDK 的簽章授權。
  • environment: sandbox 或 live;帳號、產品及快取必須保持同一環境。
  • remember, store: 可選設定:會話存儲、私有快取目錄、取消信號、重試或高級組件。
返回值
Application

返回建立的對象;初始化本身不代表授權成功。

Application::Login
Login(const char *email, const char *password) → void
作用
使用商店客戶帳號登入,取得短期身份聲明并啟動官方授權 SDK。
參數說明
  • email, password: 客戶在當前商店註冊的電子信箱及密碼;密碼僅用于本次登入。
返回值
void

無業務返回值;正常完成表示呼叫成功,失敗通過錯誤或異常報告。

Application::Restore
Restore() → bool
作用
讀取已儲存的帳號會話,線上確認帳號并取得新的身份聲明,再啟動官方授權 SDK。
返回值
bool

true 表示恢復成功;false 表示沒有可恢復會話。拒絕、過期或網路失敗通過錯誤報告。

Application::RunFeature
RunFeature(const char *feature, Action action) → void
作用
每次執行時由官方 SDK 校驗功能權限,通過后才執行回調;拒絕時回調不會執行。
參數說明
  • feature / name, action / block: 功能名稱必須匹配策略;回調包含實際受保護的業務程式碼。
返回值
void

無業務返回值;正常完成表示呼叫成功,失敗通過錯誤或異常報告。

Application::Logout
Logout() → void
作用
停止本機授權,呼叫官方 SDK 退出,再注銷 Launch 帳號會話;遠端未完成時保留重試任務。
返回值
void

無業務返回值;正常完成表示呼叫成功,失敗通過錯誤或異常報告。

Application::ReleaseDevice
ReleaseDevice() → void
作用
顯式退出的兼容入口,執行與 Logout 相同的帳號及裝置退出流程。
返回值
void

無業務返回值;正常完成表示呼叫成功,失敗通過錯誤或異常報告。

Application::Status
Status() → std::string (JSON)
作用
讀取官方 SDK 的當前授權狀態,不發起登入,也不代替功能執行時的權限檢查。
返回值
std::string (JSON)

讀取官方 SDK 的當前授權狀態,不發起登入,也不代替功能執行時的權限檢查。

Application::~Application
~Application() → void
作用
停止當前實例和管理後台任務,保留已記住的登入與裝置綁定。
返回值
void

無業務返回值;普通關閉不能當作退出帳號或釋放裝置成功。

高級與兼容介面

Application
Application(origin, product, config, environment="live", remember=false, store=nullptr) → Application
作用
從已有的兩份公開設定讀取并校驗產品映射,再建立應用程式對象。直接連線不需要設定檔。
參數說明
  • origin: 當前商店的完整源位址,包含協議及必要端口;正式環境使用 HTTPS。
  • product: Launch 商店產品編號,由管理後台串接程式碼自動填入。
  • config: 呼叫者指定的設定路徑或當前使用者私有快取、存儲目錄。
  • environment: sandbox 或 live;帳號、產品及快取必須保持同一環境。
  • remember, store: 可選設定:會話存儲、私有快取目錄、取消信號、重試或高級組件。
返回值
Application

返回建立的對象;初始化本身不代表授權成功。

Application(launch_application *)
explicit Application(launch_application *app) → Application
作用
校驗公開連線設定并建立應用程式對象;此時尚未登入,也沒有獲得執行受保護功能的權限。
參數說明
  • app: 返回擁有所有權的應用程式指針;NULL 表示初始化失敗。最終必須呼叫 close 釋放。
返回值
Application

返回建立的對象;初始化本身不代表授權成功。

Application::FromFiles
Application::FromFiles(launch, product, remember=false, store=nullptr) → Application
作用
從已有的兩份公開設定讀取并校驗產品映射,再建立應用程式對象。直接連線不需要設定檔。
參數說明
  • launch, product: 呼叫者指定的設定路徑或當前使用者私有快取、存儲目錄。
  • remember, store: 可選設定:會話存儲、私有快取目錄、取消信號、重試或高級組件。
返回值
Application

返回建立的對象;初始化本身不代表授權成功。

Application(Application&&) / operator=
Application(Application&& other) / operator=(Application&& other) → Application / Application&
作用
轉移原生應用程式所有權;複製被停用,原對象不再擁有該指針。
參數說明
  • other: 設定對象、執行時適配器、傳輸器或請求;僅高級串接需要自行提供。
返回值
Application / Application&

返回建立的對象;初始化本身不代表授權成功。

返回欄位含義

返回帳號狀態,欄位含義見下方返回欄位表。

欄位類型作用
Go State.User.ID · JS user.id · Java userID · Rust user_id · Ruby user.idstring商店帳號的唯一編號,不是產品、授權或裝置編號。
Go User.Email · JS user.email · Java/Rust/Ruby emailstring商店帳號電子信箱;部分語言的狀態只包含帳號編號。
Go User.Verified / user.verifiedboolean商店信箱是否已通過驗證;這不是軟體授權狀態。
JS user.display_namestring (optional)商店帳號的顯示名稱;伺服器未提供時此欄位可省略。
Go State/Session.ExpiresAt · JS expiresAt · Java expiresAt · Rust/Ruby expires_attime.Time / ISO 8601 / InstantLaunch 帳號會話到期時間,不是購買到期或離線授權期限。
Java offlineFallback · Rust offline_fallbackboolean = false兼容欄位;當前帳號恢復流程不選擇離線回退,值為 false。
C / C++ status.allowed · C# Status().Allowedboolean官方 SDK 當前是否允許使用;具體功能仍由功能保護函數判定。
C / C++ status.state · C# Status().Statestring官方 SDK 狀態名稱;尚未登入時可為 login_required。
C / C++ status.code · C# Status().Codestring穩定的裝置錯誤碼,用于決定提示和處理分支。
C / C++ status.request_id · C# Status().RequestIDstring服務端請求關聯編號,可用于排錯;部分語言未公開此欄位。
C / C++ status.retryable · C# Status().Retryableboolean是否建議重試;不表示當前允許執行功能。
C / C++ status.lease_valid_until · C# Status().LeaseValidUntilUnix seconds官方 SDK 簽章授權的到期時間,使用 Unix 秒;不是帳號會話到期時間。
Go Identity.ProductID / product_idUUIDLaunch 商店產品編號,由管理後台串接程式碼自動填入。
Go Identity.LicentivoProductID / licentivo_product_idUUIDLicentivo 授權產品編號,必須與公開簽章設定匹配。
Go Identity.LaunchConnectionID / launch_connection_idUUID綁定的 Launch 授權連線編號,必須與產品及環境匹配。
Go Identity.Environment / environmentsandbox | livesandbox 或 live;帳號、產品及快取必須保持同一環境。
Go Identity.IdentityToken / identity_tokenstring短期、一次性的身份聲明,僅在內存中傳給官方 SDK,不可作為離線憑據。
Go Identity.ExpiresAt / identity.expires_attime.Time / ISO 8601身分聲明的到期時間;不是帳號工作階段期限或購買期限。
Go Session.AccessToken / access_token / tokenstringLaunch 帳號會話令牌,僅底層會話或加密存儲介面返回。

會話令牌、身份聲明及存儲記錄屬于秘密,不應記錄到日志或傳給瀏覽器渲染處理程序。

錯誤與失敗處理

欄位類型作用
Go APIError.Code · Python APIError.code · C# Code · Java/Rust/Ruby code · JS code · C error()string穩定的裝置錯誤碼,用于決定提示和處理分支。
Go APIError.Status · Python status · C# Status · Java/Rust/Ruby/JS statusintegerHTTP 狀態碼;0 表示沒有可用 HTTP 回應。
Go RequestID · Java requestID · Rust request_idstring服務端請求關聯編號,可用于排錯;部分語言未公開此欄位。
Go RetryAfter · Python retry_after · C# RetryAfterSeconds · Java retryAfterMillis · JS/Ruby retryAfterSeconds / retry_after_seconds · Rust retry_afterDuration / s / ms服務端建議等待的時長;注意秒、毫秒或 Duration 的語言差異。

本機退出完成與遠端撤銷完成是兩個狀態。遇到待完成或存儲失敗必須處理返回值,保留 SDK 退出日志。