最近手头有需要接入多个渠道的工作,我负责的是Android方面的接入,一般来说,渠道是非常多的,每一个渠道调用的接口都不一致,如果每一个渠道都要自己去弄回非常的耗时,所以网上会有一些接入的中间件提供商,帮助我们处理多个渠道的接入,我们只需要调用中间件相同的接口即可,不用关心不同渠道的异同。
目前中间件的提供商有:、等,下面记录一下接入的一些知识,关于登录和支付的流程可能多家SDK不完全一致,可以参考具体的接入文档。
什么是渠道?
渠道是游戏投放到多个平台,比如游戏发布到小米的平台,则可以称小米为一个渠道,我们的游戏需要针对小米的平台进行一些修改,发布的APK称为渠道包,没有对任何渠道进行过处理的APK包称为母包。
渠道的账号和我们自己的游戏账号
以小米为例,我们的游戏在启动时需要先登录小米的账号,然后使用小米的账号进行一定的转换得到我们自己游戏的账号(游戏不需要再登录自己的账号了),再进行游戏登录,即我们的游戏账号可以看做关联到小米账号下面的一个游戏子账号。
平台注册
如果我们选定使用了一家SDK中间件的话,应该先去改中间件官网申请账号并在其后台了添加对应的游戏,一般情况下会得到一个AppID,同时中间件后台可以查看游戏相关的统计数据。
登录流程
这里说一下一般情况下的游戏登录流程:
- 初始化SDK中间件;
- 注册登录回调;(即渠道账号登录成功或失败的通知消息)
- 登录请求;(一般情况下会弹出登录框或切换到登录界面等,这个界面不需要由CP提供,是具体渠道自己的登录框)
- 登录返回;(这里获得的返回结果是渠道登录得到的结果,一般会带有渠道账号和一个口令)
- 渠道登录成功后需要进行登录验证;(这里的登录请求是先请求我们自己的服务端,服务端会再次请求中间件的服务端告知用户登录,然后我们的服务端会根据该渠道的账号来得到游戏中的实际使用账号并返回到游戏客户端)
- 到这一步登录就算完成了,接下来使用游戏账号登录游戏即可;
- 一般到这里还需要向中间件服务端发送一些玩家的游戏信息用于打点,比如:角色名、所在服等等;
支付流程
这里说一下一般情况下的游戏支付流程:
- 调用中间件的充值接口;
- 中间件会打开对应的充值界面;(SDK提供,我们不需要开发)
- 玩家进行充值;(玩家可以用多种方式来充值,比如微信、支付宝等等)
- 充值成功;(充值成功后对应的渠道会发送充值成功的消息到指定的URL中)
- 绑定SDK的支付成功回调地址;(这一步需要先去SDK的后台找到对应渠道的回调地址,然后将该地址粘贴到对应渠道的后台里支持回调地址框中)
- SDK接收到支持的消息后会通知游戏的服务端该消息;(如果游戏服务端没有返回接收成功,一般中间件服务端会定时重发该消息)
- 游戏服务端处理完后向客户端发放相应的道具;
特殊渠道处理
有部分特殊的渠道需要进行一定的特殊处理,一般在渠道包导出时会把渠道id打到APK中,我们只需要在代码中获取渠道id进行判断即可;
渠道包导出
我们接入了对应的SDK之后,导出的APK为母包,还需要使用中间件提供的软件将其打包为特定渠道的渠道包才能发布给玩家。