最近准备重构和整理发行平台项目, 结合项目中的问题边思考和边总结开发当中的流程和问题, 便于后续查漏补缺.
首先对于发行平台核心总共分为以下部分:
后台管理 SDK对接 静态渲染 后台管理 对于发行后台一般提供和设置以下参数:
appid: 生成的游戏应用ID appKey: 游戏接入的登录时候需要用到 appSecret: CP回调的时候验证回调参数完整性的参与签名 clientId: 客户端ID(H5应用不需要) clientKey: 客户端Key(H5应用不需要) notifyUrl: 支付完成需要通知CP的回调地址 SDK对接 SDK对接目前仅有 H5 相关内容, 服务端需要处理以下接口来对接:
登录认证(需要CP文档对接,必要) 支付唤起(需要CP文档对接,按照游戏性质区分, 有的免费游戏不需要) 订单状态(需要CP文档对接,用于CP方确认订单状态) SDK初始化(事件上报,必要) 选择服务器(事件上报,非必要) 创建角色(事件上报,必要) 进入游戏(事件上报,必要) 等级提升(事件上报,必要) 退出游戏(事件上报,按照游戏性质区分,H5没有退出相关功能可以忽略) 选择服务器的时候没有角色信息, 所以上报的涉及的玩家和角色相关信息可以留空或者默认值
实际上可以区分为两部分: 研发联调 和 事件上报
事件上报是很关键的接口, 用于追踪玩家行为的转化率和在线留存等信息
研发联调 研发(CP)联调基本上只涉及授权和支付而已, 结构上报为统一的 JSON|FORM 格式, 内部字段如下:
// 为了简洁, 对于默认不存在账号会自动在系统帮助创建注册, 省下了手动切换注册页面输入的流程 // 以下就是涉及到需要上报的注册|登录信息 { // 其他必要的登录参数 // 有的第三方可能参数有所不同 // --------------------------- // 后台创建的游戏应用ID appid: 1001, // 对应的推广渠道ID, 该渠道ID就是后台推广员绑定的账号ID // 用于将玩家绑定专属的渠道, 也就是相同游戏会被分包让其玩家归属到指定后台运营管理员 channel: "100002", // 登录平台, 有时候采用跨平台(Android|iOS|H5)登录, 两者平台都是同个账号 platform: 0, // 设备唯一标识码, H5无法获取到会默认留空 imei: "", // 设备信息上报, 比如 AndroidOS | AppleOS 等 device: "", // 设备UA信息上报, 比如 Mozilla/5.