最近手头有需要接入多个渠道的工作,我负责的是Android方面的接入,一般来说,渠道是非常多的,每一个渠道调用的接口都不一致,如果每一个渠道都要自己去弄回非常的耗时,所以网上会有一些接入的中间件提供商,帮助我们处理多个渠道的接入,我们只需要调用中间件相同的接口即可,不用关心不同渠道的异同。

目前中间件的提供商有:AnySDK1SDK等,下面记录一下接入的一些知识,关于登录和支付的流程可能多家SDK不完全一致,可以参考具体的接入文档。

什么是渠道?

渠道是游戏投放到多个平台,比如游戏发布到小米的平台,则可以称小米为一个渠道,我们的游戏需要针对小米的平台进行一些修改,发布的APK称为渠道包,没有对任何渠道进行过处理的APK包称为母包。

渠道的账号和我们自己的游戏账号

以小米为例,我们的游戏在启动时需要先登录小米的账号,然后使用小米的账号进行一定的转换得到我们自己游戏的账号(游戏不需要再登录自己的账号了),再进行游戏登录,即我们的游戏账号可以看做关联到小米账号下面的一个游戏子账号。

平台注册

如果我们选定使用了一家SDK中间件的话,应该先去改中间件官网申请账号并在其后台了添加对应的游戏,一般情况下会得到一个AppID,同时中间件后台可以查看游戏相关的统计数据。

登录流程

这里说一下一般情况下的游戏登录流程:

  1. 初始化SDK中间件;
  2. 注册登录回调;(即渠道账号登录成功或失败的通知消息)
  3. 登录请求;(一般情况下会弹出登录框或切换到登录界面等,这个界面不需要由CP提供,是具体渠道自己的登录框)
  4. 登录返回;(这里获得的返回结果是渠道登录得到的结果,一般会带有渠道账号和一个口令)
  5. 渠道登录成功后需要进行登录验证;(这里的登录请求是先请求我们自己的服务端,服务端会再次请求中间件的服务端告知用户登录,然后我们的服务端会根据该渠道的账号来得到游戏中的实际使用账号并返回到游戏客户端)
  6. 到这一步登录就算完成了,接下来使用游戏账号登录游戏即可;
  7. 一般到这里还需要向中间件服务端发送一些玩家的游戏信息用于打点,比如:角色名、所在服等等;

支付流程

这里说一下一般情况下的游戏支付流程:

  1. 调用中间件的充值接口;
  2. 中间件会打开对应的充值界面;(SDK提供,我们不需要开发)
  3. 玩家进行充值;(玩家可以用多种方式来充值,比如微信、支付宝等等)
  4. 充值成功;(充值成功后对应的渠道会发送充值成功的消息到指定的URL中)
  5. 绑定SDK的支付成功回调地址;(这一步需要先去SDK的后台找到对应渠道的回调地址,然后将该地址粘贴到对应渠道的后台里支持回调地址框中)
  6. SDK接收到支持的消息后会通知游戏的服务端该消息;(如果游戏服务端没有返回接收成功,一般中间件服务端会定时重发该消息)
  7. 游戏服务端处理完后向客户端发放相应的道具;

特殊渠道处理

有部分特殊的渠道需要进行一定的特殊处理,一般在渠道包导出时会把渠道id打到APK中,我们只需要在代码中获取渠道id进行判断即可;

渠道包导出

我们接入了对应的SDK之后,导出的APK为母包,还需要使用中间件提供的软件将其打包为特定渠道的渠道包才能发布给玩家。

Android游戏之平台接入的一点记录的更多相关文章

  1. 记录一下八款开源 Android 游戏引擎

    记录一下八款开源 Android 游戏引擎 虽然android学了点点,然后现在又没学了(我为啥这么没有恒心呢大哭).以后有时间还是要继续学android的,一定要啊!虽然现在没学android游戏编 ...

  2. Android平台接入OneNET

    1. OneNET简介 中国移动物联网开放平台是由中国移动打造的PaaS物联网开放平台. 平台能够帮助开发者轻松实现设备接入与设备连接,提供综合性的物联网解决方案,实现物联网设备的数据获取,数据存储, ...

  3. Android Google AdMob 广告接入示例

    Android Google AdMob 广告接入示例 [TOC] 首先请大家放心,虽然 Google搜索等服务被qiang了,但是 广告服务国内还是可以用的,真是普天同庆啊~~~噗! 其实这篇文章也 ...

  4. 手机游戏渠道SDK接入工具项目分享(二)万事开头难

    一般接到任务后程序员们通常都开始着手进行技术调研了,但我这活是项目负责人.还有一大堆事情要先期准备,没人能帮忙. 一.人力配置 考虑的之前已经有一波人搞了大半年,但没有起色,先期也没有太大人力需求,所 ...

  5. 转 iOS和android游戏纹理优化和内存优化(cocos2d-x)

    iOS和android游戏纹理优化和内存优化(cocos2d-x) (未完成) 1.2d游戏最占内存的无疑是图片资源. 2.cocos2d-x不同平台读取纹理的机制不同.ios下面使用CGImage, ...

  6. 网易与Google合作发布开源UI自动化测试方案 牛逼:Google 方面评价,这可能是目前世界上最好的 Android 游戏自动化测试方案。

    美西时间 3 月 19 日,在 GDC 开幕第一天的 Google 开发者专场,Google 发布了一款由网易研发的 UI 自动化测试方案:Airtest Project.Google 方面评价,这可 ...

  7. Android研究之为基于 x86 的 Android* 游戏选择合适的引擎具体解释

     摘要 游戏开发者知道 Android 中蕴藏着巨大的机遇. 在 Google Play 商店的前 100 款应用中,约一半是游戏应用(在利润最高的前 100 款应用中.它们所占的比例超过 90% ...

  8. 八款开源 Android 游戏引擎[转]

    记录一下,以备不时之需~~~~~ 虽然android学了点点,然后现在又没学了(我为啥这么没有恒心呢大哭).以后有时间还是要继续学android的,一定要啊!虽然现在没学android游戏编程,不过还 ...

  9. 为基于 x86 的 Android* 游戏选择合适的引擎

    摘要 游戏开发者知道 Android 中蕴藏着巨大的机遇. 在 Google Play 商店的前 100 款应用中,约一半是游戏应用(在利润最高的前 100 款应用中.它们所占的比例超过 90%). ...

随机推荐

  1. bzoj2351 2462

    我没写hash,写了一些奇怪的做法,好像被hash随便操了…… 如果没有多测,那么这道题是白书上的例题 把询问矩阵当作a个模板串,建成一个ac自动机 把一开始的矩阵当作n个串放到自动机上匹配,找到a个 ...

  2. SQL查看数据库所用用户表数量和使用的空间

    SQL Server数据库管理员通常硬盘空间奋斗,不断努力清理“表”,撰写许多查询,发现该表使用的硬盘空间. 本文介绍了如何查询系统表的空间使用情况,帮助数据库管理员识别正在使用最多的空间,以便存档旧 ...

  3. UVa 12304 (6个二维几何问题合集) 2D Geometry 110 in 1!

    这个题能1A纯属运气,要是WA掉,可真不知道该怎么去调了. 题意: 这是完全独立的6个子问题.代码中是根据字符串的长度来区分问题编号的. 给出三角形三点坐标,求外接圆圆心和半径. 给出三角形三点坐标, ...

  4. Drupal 7.31版本爆严重SQL注入漏洞

    今早有国外安全研究人员在Twitter上曝出了Drupal 7.31版本的最新SQL注入漏洞,并给出了利用测试的EXP代码. 在本地搭建Drupal7.31的环境,经过测试,发现该利用代码可成功执行并 ...

  5. 为什么要CGI

    1.微软为什么使用CGI? 微软曾经在不同场合极力推荐它的ASP技术,以取代CGI标准,这对微软当然是有利的,但是对一个网站来说ASP是不是一个明智的选择呢?这是一个值得大家深思熟虑的问题. 因为一旦 ...

  6. Corn Fields(POJ 3254状压dp)

    题意: n*m网格1能放0不能放 放的格子不能相邻 求一共多少种可放的方案. 分析: dp[i][j]第i行可行状态j的的最大方案数,枚举当前行和前一行的所有状态转移就行了(不放牛也算一种情况) #i ...

  7. Python--类使用

    类使用的几个注意点: 1. 类的语法结构:2. __init__(self),3. __metaclass__=type, (新式类)4. super(subclassname, self).__in ...

  8. LeetCode题解——Unique Path(DP与优化)

    题目:A robot is located at the top-left corner of a m x n grid (marked 'Start' in the diagram below). ...

  9. 圆内,求离圆心最远的整数点 hiho一下第111周 Farthest Point

    // 圆内,求离圆心最远的整数点 hiho一下第111周 Farthest Point // 思路:直接暴力绝对T // 先确定x范围,每个x范围内,离圆心最远的点一定是y轴两端的点.枚举x的范围,再 ...

  10. 《锋利的Jquery第二版》读书笔记 第一章

    按照书本介绍顺序整理jquery库相关的语法.要点. window.onload与$(document).ready()功能类似,前者需要所有资源加载完毕,且不能同时编写多个:后者加载完DOM结构即执 ...