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