文档版本:v1.0 最后更新:2026-04-02 08:28:05
flowchart LR
A["Entry Resolve"] --> B["Auth"]
B --> C["Home / Cards"]
C --> D["Event Play"]
D --> E["Resolve Release"]
E --> F["Launch Session"]
F --> G["Client Load Manifest"]
G --> H["Session Start / Finish"]
H --> I["Result / History"]
补充说明:
入口层先解决:
tenant当前对应接口:
GET /entry/resolveGET /homeGET /cardsGET /me/entry-homeAPP 当前主链是手机号验证码:
POST /auth/sms/sendPOST /auth/login/smsaccess_token + refresh_token说明:
微信小程序当前主链是:
wx.loginPOST /auth/login/wechat-miniopenidaccess_token + refresh_token开发环境也支持 dev- 前缀 code。
当小程序用户后续绑定手机号时:
bind_mobile 场景验证码POST /auth/bind/mobile当前策略是:
首页不是固定首页,而是“入口上下文首页”。
当前聚合接口:
GET /me/entry-home它会返回:
活动详情页或开始前准备页不应该只拿 event。
它还必须拿到:
release当前聚合接口:
GET /events/{eventPublicID}/play它会返回:
eventreleaseresolvedReleaseplay.canLaunchplay.primaryActionplay.launchSourceplay.ongoingSessionplay.recentSession启动一局游戏时,不是“启动一个 event”。
而是:
基于 event 当前可启动的 release,创建一条固化 release 的 session。
POST /events/{eventPublicID}/launch当前请求体支持:
releaseIdclientTypedeviceKey当前返回会带:
launch.sourcelaunch.resolvedReleaselaunch.configlaunch.business.sessionIdlaunch.business.sessionToken补充约束:
launch 是统一业务启动入口,不应因为 APP / 小程序差异复制两套接口clientType、deviceKey、后续能力声明字段处理客户端进入游戏前,应以返回中的这几项为准:
launch.resolvedRelease.releaseIdlaunch.resolvedRelease.manifestUrllaunch.resolvedRelease.manifestChecksumSha256而不是再拿 event 自己去猜。
GET /sessions/{sessionPublicID}POST /sessions/{sessionPublicID}/startPOST /sessions/{sessionPublicID}/finishGET /me/sessions查询接口:
access_token局内动作接口:
sessionToken这保证了业务登录态和一局游戏运行态是分开的。
launched:已创建一局,客户端尚未正式开始running:客户端已开始本局finished:正常完成failed:超时或规则失败cancelled:主动退出或放弃恢复补充约束:
cancelled 和 failed 都不再作为 ongoing session 返回finish(cancelled)sessionToken 在 finish(cancelled) 场景允许继续使用start 幂等:
launched -> runningstart 不应报错finish 幂等:
finish 直接返回当前结果GET /sessions/{sessionPublicID}/resultGET /me/resultsfinish 当前支持上传结果摘要:
finalDurationSecfinalScorecompletedControlstotalControlsdistanceMetersaverageSpeedKmhmaxHeartRateBpm结果页应该基于 session 结果查看,不应该回头去查当前 event 当前 release。
因为:
业务主线应始终保持为:
entry -> auth -> event play -> resolve release -> launch -> session -> result
不要退回成:
event -> launch -> game
也不要走成:
mini event -> mini launch -> mini game
或:
app event -> app launch -> app game
业务接口必须保持统一,终端差异只进入上下文,不进入对象模型分叉。