# 水果游戏切换公共服务(双模式) 0.5.0 起先读取“双模式接入与内网部署”,根据环境选择 local 或 central;central 不下载 SDK,本清单中的 SDK 均指所选公共服务。 本游戏没有历史玩家,不做旧玩家迁移;订阅消息本次不启用。本清单替代旧方案中“体力、广告、排行榜由游戏继续各自维护”的边界。游戏工程代码仍由独立开发对话修改。 1. 固定0.5.0兼容版本:local下载并核对SHA256,central核对平台已部署版本,读取体力广告与排行榜说明、runtime-openapi.json、config.features.example.json;后端接入控制面仍用openapi.json,不混用令牌。 2. 登录取得SDK playerId,保留游戏前端登录响应映射。游戏本地钱包继续管理钻石、金币和道具;体力改为SDK唯一权威余额,关闭wallet.go原有的自然恢复、体力消费与体力直接奖励,避免双重扣加。 3. 游戏开始用稳定关卡业务ID调用stamina/consume,重试不生成新ID。钻石买体力通过SDK purchase订单,在游戏数据库按orderId幂等扣款,再确认;实现重启恢复与取消后退款。不要将两边HTTP请求当成本地事务。 4. 停用ad-callback.go中的旧回调直接发奖。用game-client.go的原样代理转发平台RawQuery至SDK;创建广告上下文并透传playerId/contextId,客户端不能自己宣称验证通过。 5. 原GrantStaminaReward改为SDK资格兑换;hammer等道具使用external奖励,contextId与实际发道具同一本地事务,再confirm。旧广告回调和新兑换流程不能同时增加道具。 6. 只接入开屏与激励,移除/不启用Banner相关调用。开屏无奖励;真实广告平台支持的展示方式由客户端广告组件决定,不能假造开屏API。 7. leaderboard.go改为调用SDK字段榜,例如max_passed_level降序;先修复重复通关可刷pass_count的问题,按真实业务计算字段,用递增revision及稳定事件ID经outbox提交。不配置日/周榜、周期奖励或虚拟玩家排名。 8. SDK体力不从客户端存档恢复或覆盖。游戏货币/道具和实际通关事实仍以游戏数据库为准。 9. 本地验证余额恢复、重复开始、购买确认/补偿、激励重复回调/兑换、道具重复发放、断网重启和榜单旧版本拦截。真实广告位回调协议尚须渠道联调,不因本地加密夹具通过就声明微信验证完成。