九種語言 SDK 函數與返回值參考
按語言查看 Launch 客戶端的公開函數、參數、成功返回和失敗語義。函數簽章中的可選參數與預設值以對應版本源碼為準。
本頁說明 Launch 帳號適配層。內置 Licentivo SDK 的授權、計量和離線 API 請查看官方 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。
- 返回值
booltrue 表示恢復成功;false 表示沒有可恢復會話。拒絕、過期或網路失敗通過錯誤報告。
Application.run_feature
run_feature(name, action) → T- 作用
- 每次執行時由官方 SDK 校驗功能權限,通過后才執行回調;拒絕時回調不會執行。
- 參數說明
feature / name, action / block: 功能名稱必須匹配策略;回調包含實際受保護的業務程式碼。
- 返回值
T返回業務回調的結果;授權失敗或業務異常通過錯誤報告。
Application.logout
logout() → bool- 作用
- 停止本機授權,呼叫官方 SDK 退出,再注銷 Launch 帳號會話;遠端未完成時保留重試任務。
- 返回值
booltrue 表示退出已確認;false 表示遠端帳號退出或裝置撤銷仍待完成。存儲等失敗仍可能報錯。
Application.release_device
release_device() → bool- 作用
- 顯式退出的兼容入口,執行與 Logout 相同的帳號及裝置退出流程。
- 返回值
booltrue 表示退出已確認;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 | falsetrue 表示退出已確認;false 表示遠端帳號退出或裝置撤銷仍待完成。存儲等失敗仍可能報錯。
Application#release_device
release_device(cancellation: nil) → true | false- 作用
- 顯式退出的兼容入口,執行與 Logout 相同的帳號及裝置退出流程。
- 參數說明
ctx / ct / signal / cancellation: 請求上下文或取消信號;Go 生命周期上下文也用于管理後台執行。
- 返回值
true | falsetrue 表示退出已確認;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: 客戶在當前商店註冊的電子信箱及密碼;密碼僅用于本次登入。
- 返回值
int1 表示成功,0 表示失敗;失敗后讀取錯誤碼。
launch_application_restore
launch_application_restore(launch_application *app) → int- 作用
- 讀取已儲存的帳號會話,線上確認帳號并取得新的身份聲明,再啟動官方授權 SDK。
- 返回值
int1 表示恢復成功,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: 設定對象、執行時適配器、傳輸器或請求;僅高級串接需要自行提供。
- 返回值
int1 表示成功,0 表示失敗;失敗后讀取錯誤碼。
launch_application_logout
launch_application_logout(launch_application *app) → int- 作用
- 停止本機授權,呼叫官方 SDK 退出,再注銷 Launch 帳號會話;遠端未完成時保留重試任務。
- 返回值
int1 表示成功,0 表示失敗;失敗后讀取錯誤碼。
launch_application_release_device
launch_application_release_device(launch_application *app) → int- 作用
- 顯式退出的兼容入口,執行與 Logout 相同的帳號及裝置退出流程。
- 返回值
int1 表示成功,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 使用的隔離鍵和敏感記錄;自定義存儲必須支援多個鍵及原子替換。
- 返回值
int1 表示找到記錄,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。
- 返回值
booltrue 表示恢復成功;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.id | string | 商店帳號的唯一編號,不是產品、授權或裝置編號。 |
Go User.Email · JS user.email · Java/Rust/Ruby email | string | 商店帳號電子信箱;部分語言的狀態只包含帳號編號。 |
Go User.Verified / user.verified | boolean | 商店信箱是否已通過驗證;這不是軟體授權狀態。 |
JS user.display_name | string (optional) | 商店帳號的顯示名稱;伺服器未提供時此欄位可省略。 |
Go State/Session.ExpiresAt · JS expiresAt · Java expiresAt · Rust/Ruby expires_at | time.Time / ISO 8601 / Instant | Launch 帳號會話到期時間,不是購買到期或離線授權期限。 |
Java offlineFallback · Rust offline_fallback | boolean = false | 兼容欄位;當前帳號恢復流程不選擇離線回退,值為 false。 |
C / C++ status.allowed · C# Status().Allowed | boolean | 官方 SDK 當前是否允許使用;具體功能仍由功能保護函數判定。 |
C / C++ status.state · C# Status().State | string | 官方 SDK 狀態名稱;尚未登入時可為 login_required。 |
C / C++ status.code · C# Status().Code | string | 穩定的裝置錯誤碼,用于決定提示和處理分支。 |
C / C++ status.request_id · C# Status().RequestID | string | 服務端請求關聯編號,可用于排錯;部分語言未公開此欄位。 |
C / C++ status.retryable · C# Status().Retryable | boolean | 是否建議重試;不表示當前允許執行功能。 |
C / C++ status.lease_valid_until · C# Status().LeaseValidUntil | Unix seconds | 官方 SDK 簽章授權的到期時間,使用 Unix 秒;不是帳號會話到期時間。 |
Go Identity.ProductID / product_id | UUID | Launch 商店產品編號,由管理後台串接程式碼自動填入。 |
Go Identity.LicentivoProductID / licentivo_product_id | UUID | Licentivo 授權產品編號,必須與公開簽章設定匹配。 |
Go Identity.LaunchConnectionID / launch_connection_id | UUID | 綁定的 Launch 授權連線編號,必須與產品及環境匹配。 |
Go Identity.Environment / environment | sandbox | live | sandbox 或 live;帳號、產品及快取必須保持同一環境。 |
Go Identity.IdentityToken / identity_token | string | 短期、一次性的身份聲明,僅在內存中傳給官方 SDK,不可作為離線憑據。 |
Go Identity.ExpiresAt / identity.expires_at | time.Time / ISO 8601 | 身分聲明的到期時間;不是帳號工作階段期限或購買期限。 |
Go Session.AccessToken / access_token / token | string | Launch 帳號會話令牌,僅底層會話或加密存儲介面返回。 |
會話令牌、身份聲明及存儲記錄屬于秘密,不應記錄到日志或傳給瀏覽器渲染處理程序。
錯誤與失敗處理
| 欄位 | 類型 | 作用 |
|---|---|---|
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 status | integer | HTTP 狀態碼;0 表示沒有可用 HTTP 回應。 |
Go RequestID · Java requestID · Rust request_id | string | 服務端請求關聯編號,可用于排錯;部分語言未公開此欄位。 |
Go RetryAfter · Python retry_after · C# RetryAfterSeconds · Java retryAfterMillis · JS/Ruby retryAfterSeconds / retry_after_seconds · Rust retry_after | Duration / s / ms | 服務端建議等待的時長;注意秒、毫秒或 Duration 的語言差異。 |
本機退出完成與遠端撤銷完成是兩個狀態。遇到待完成或存儲失敗必須處理返回值,保留 SDK 退出日志。