文档版本:v1.0 最后更新:2026-04-02 08:28:05
这份清单只回答三件事:
本文不讨论未来大而全后台方案,只服务当前联调落地。
当前状态可以概括成一句话:
backend 业务主链已经可联调;小程序地图运行内核也已经成型;两边之间还缺一层业务接入和会话上报适配。
也就是说:
configUrl / releaseId / sessionId / sessionToken地图页不是只吃一个 configUrl,而是吃一份启动信封:
当前结构:
config.configUrlconfig.configLabelconfig.configChecksumSha256config.releaseIdconfig.routeCodebusiness.sourcebusiness.competitionIdbusiness.eventIdbusiness.launchRequestIdbusiness.participantIdbusiness.sessionIdbusiness.sessionTokenbusiness.sessionTokenExpiresAtbusiness.realtimeEndpointbusiness.realtimeToken这意味着:
launch 返回的数据结构已经能自然装进小程序地图启动链GameLaunchEnvelope当前地图页会:
GameLaunchEnvelopeloadRemoteMapConfig(configUrl)MapEngine所以只要后端能给出:
manifestUrlreleaseIdconfigChecksumSha256地图页就可以直接跑。
地图页当前已经能接收并持有:
sessionIdsessionTokensessionTokenExpiresAt这说明后面接:
POST /sessions/{id}/startPOST /sessions/{id}/finish不需要再改地图启动协议。
故障恢复快照当前会保留:
launchEnvelope这意味着一旦接入后端 session 后,恢复链也可以继续沿用同一份 launchEnvelope。
当前已实现:
POST /auth/login/wechat-miniGET /me/entry-homeGET /events/{eventPublicID}/playPOST /events/{eventPublicID}/launchPOST /sessions/{sessionPublicID}/startPOST /sessions/{sessionPublicID}/finishGET /sessions/{sessionPublicID}/resultGET /me/results当前 launch 返回重点:
launch.resolvedRelease.releaseIdlaunch.resolvedRelease.manifestUrllaunch.resolvedRelease.manifestChecksumSha256launch.business.sessionIdlaunch.business.sessionToken这和小程序 GameLaunchEnvelope 基本是同一语义。
当前已经区分:
access_tokensessionToken这对地图页是对的,因为地图页真正需要的是:
当前 workbench 已能串:
这对前后端联调非常有价值,说明后端已经不是“只看文档”阶段。
可接:
wx.loginPOST /auth/login/wechat-miniaccessTokenGET /me/entry-homeGET /events/{eventPublicID}/play当前缺口:
可接:
POST /events/{eventPublicID}/launchGameLaunchEnvelopenavigateTo('/pages/map/map?...')当前缺口:
backend launch -> GameLaunchEnvelope 的适配函数gameLaunch.ts 仍偏 demo/static config 驱动可接:
sessionId + sessionToken 调 POST /sessions/{id}/finishGET /sessions/{id}/result当前缺口:
resultSummary 之间还需要一层映射backend 当前已经有:
但还没有真正开放:
config sourcebuildrelease assetspreview launch也就是说:
配置后台链还不能联调,只能联业务主链。
小程序已经有:
backend 文档里也规划了:
但当前接口清单里还没有明确的 body profile 读接口落到小程序链上,所以这条还不能算当前联调主线。
我认为目前最大缺口只有 4 个:
小程序当前缺:
request 封装需要一层明确的转换:
LaunchResponse -> GameLaunchEnvelope
这里最适合单独做成一个小模块,而不是散落在页面里。
地图页当前本地已经有:
但还没有一个稳定函数把它映射为 backend finish payload。
现在地图页已经有自己的结果页。
后面要决定:
这件事需要前后端统一策略。
建议按下面顺序推进,不要跳步:
目标:
accessToken目标:
eventresolvedReleaseplay.canLaunchplay.ongoingSession目标:
目标:
目标:
两条链统一口径
小程序侧当前已经补了第一批适配层:
当前已具备:
event play 请求封装launch -> GameLaunchEnvelope 适配launch 进入地图session start / finish 上报接入因此当前主链已从“可分析”进入“可实测”。
如果开始联调,我建议先做这 3 件事:
新增小程序 backendApi 请求层
先只包 auth / event play / launch / session finish
新增 launchAdapter
把 backend launch 响应稳定转成 GameLaunchEnvelope
新增 finishAdapter
把地图页结果摘要稳定转成 backend finish payload
这三件做完,前后端主链就能真正接起来。
当前最真实的进度判断是:
backend 业务后端主链已经进入可联调阶段;小程序地图运行内核也已经具备承接能力;下一步最值钱的是补小程序业务 API 层和 launch/finish 两个适配器。