最近手头有需要接入多个渠道的工作,我负责的是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. EF之MSSQL分布式部署一:EFContext自定义数据库链接

    不废话,上代码: 来源:http://bbs.csdn.net/topics/390823046 原文地址:EF之MSSQL分布式部署一:EFContext自定义数据库链接   /// <sum ...

  2. 最受Web前端开发者欢迎的五大开发工具

    工其事,必利于器.好的开发工具毋容置疑会帮助Web前端开发者事半功倍,51CTO在上期主办的技术沙龙<大型网站PHP开发之道> 对现场的百余位Web开发者做了问卷调查,后经51CTO调研小 ...

  3. 【大数处理、正则表达式】NYOJ-513

    [正则] 正则表达式是一种文本模式,包括普通字符(例如,a 到 z 之间的字母)和特殊字符(称为“元字符”). 模式描述在搜索文本时要匹配的一个或多个字符串. 常用字符: //正则表达式 //$ 匹配 ...

  4. jsp防盗链代码

    // 禁止缓存   response.setHeader("Cache-Control", "no-store");   response.setHeader( ...

  5. System Services -> Memory Management -> About Memory Management

    Virtual Address Space Memory Pools Memory Performance Information Virtual Memory Functions Heap Func ...

  6. Android基于基于布局嵌套的页面导航实现

    页面如下: 主页面的布局分隔为三部分: 注意观察上面标记为红色的android:id均采用android系统默认的名称: 页面的导航组件: <?xml version="1.0&quo ...

  7. c#写入Mysql中文显示乱码 解决方法 z

    mysql字符集utf8,c#写入中文后,全部显示成?,一个汉字对应一个? 解决方法:在数据库连接字符串中增加字符集的说明,Charset=utf8,如 MySQLConnection con = n ...

  8. useful-scripts

    最近在github看到关于一些比较好的java相关脚本.vcs脚本.shell脚本.怕以后忘记了,在此做个备注. 原链接为:https://github.com/oldratlee/useful-sc ...

  9. Corn Fields(POJ 3254状压dp)

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

  10. [转]解决crystal report水晶报表在浏览器提示bobj未定义的错误

    网上的中文文章(比如这篇文章)都是写的部署到服务器后出现的问题,同时也指出要把crystal report的aspnet_client文件夹拷贝到对应项目的根目录里,这样就可以正常显示了,但是具体到我 ...