跳到正文

九种语言 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 退出日志。