admin管理员组文章数量:1530519
2024年6月22日发(作者:)
一、 简介与版本记录 ..................................................................................................................... 2
二、 开发者准备 ............................................................................................................................. 2
三、 集成开发环境 ......................................................................................................................... 4
3.1 目录结构 ................................................................................................................... 4
3.2 环境搭建 ................................................................................................................... 5
四、 账号接入说明(重要) ............................................................................................................ 12
五、 支付接入说明(重要) ............................................................................................................ 12
六、 API使用说明(重要) ............................................................................................................. 12
6.1 初始化SDK(重要) ................................................................................................. 13
6.2 请求登录(重要) ...................................................................................................... 14
6.3 获取用户信息 ......................................................................................................... 15
6.4 消耗可币(重要) ...................................................................................................... 16
6.5 查询可币余额 ......................................................................................................... 20
6.6 消耗N豆 ................................................................................................................ 21
6.7 查询N豆余额 ........................................................................................................ 21
6.8 显示游戏中心 ......................................................................................................... 21
6.9 显示论坛 ................................................................................................................. 22
6.10 显示和消除游戏中心精灵 ................................................................................... 22
七、 返回码详情 ........................................................................................................................... 23
7.1 全局相关的返回码 ................................................................................................. 23
7.2 接口相关的返回码 ................................................................................................. 24
一、 简介与版本记录
本文档主要用于描述可可游戏中心移动开发平台SDK(以下简称NMSDK)如何部署、
API调用细节以及如何成为游戏开发者流程的介绍等。
修订历史
序号
1
版本 变更内容 日期
2013-11-07 1.6.0 接入1.6.0之前的SDK,需要重新查看此文
档。
二、 开发者准备
在开发者网站中注册您的开发者账号
在开发者网站中下载开发工具包SDK
集成SDK,并在您的应用中嵌入调用对应功能的代码
使用网址后台提示生成AppKey和SecretKey进行联调自测
上传应用进QA行审
审核通过后上线
注册开发者的地址为:/
三、 集成开发环境
3.1 目录结构
提示:NMSDK移动开发平台的lib工程即OpenSDK1.X中所用的资源(主要指android项
目中res目录下的资源)均以“nmgc_”为开头的命名,所以希望用户在接入该平台时自己
的工程的资源命名不要以“nmgc_”开头,以免造成冲突。
3.2 环境搭建
NMSDK支持Android SDK2.3.3(minSdkVersion=10)及以上版本,为方便您的顺利
集成,我们建议您将ADT的版本升级到最新的版本,在后续的版本您将更加方便的集成
NMSDK。
1) 导入OpenSDK工程
在您的应用或游戏所在的工作空间下,导入project_lib下的OpenSDK工程,引入进来
之后,如图:
右键点击该工程,选择Properties进入界面后选择Android并将Is Library打勾
点击Apply后就成功将该项目工程标识为library。
2) 把OpenSDK作为Library加入到您的游戏项目
右键点击您的工程,选择Properties后选择Android,在面板上点击Add将OpenSDK工
程引入进来,具体如图所示:
点击Apply,成功引入工程后如图所示:
注:如果您在Lib工程的引入中遇到eclipse没有马上识别Lib工程的情况,请您尝试
以下几种解决方案:
检查项目的绝对路径(包含eclipse工作空间的绝对路径)中是否包含中文或
者空格等不规范字符。
关闭您的工程后重新打开您的工程,或者重启eclipse。
及时清理(Project->Clean)您的游戏项目和OpenSDK项目。
3) 在中加入SDK所需要的Activities
中间省略部分。。。
图中只给出部分Activity,具体代码在OpenSDK Manifest文件里面。
4) 在中加入SDK所需要的permissions
具体代码见manifest文件
5) 在中的游戏包名需要
以.nter结尾
6) 在游戏项目中添加初始化代码(重要)
1.
重要: 请务必在游戏启动的时候调用一次以下初始化代码(建议在Application
的onCreate方法)
在GameCenterSettings构造函数中需提供2个参数: gameKey,gameSecret正式
上传时,这两个参数是在
游戏中心开发者社区
生成的。
CP在游戏集成测试阶段,可将gModel设置为true,此时sdk将输
出log(在ddms的tag为NearMeOauth)。
请CP在游戏上传审核时务必将isDebugModel设置为false.
2.
在所有Activity的onResume方法中调用
rrentContext(mCurrentActivity);
SDK的所有Api方法需要CP在主线程调用。
耗时的Api方法SDK自行在非UI线程中运行,回调函数也将在主线程中执行,CP只需
在主线程调用,而不用关心线程的切换问题。GameCenterSDK是游戏中心的API核心类,里
面提供了全部的API方法,方法名大部分都是以doXXX开头.例如,游戏中心的初始化,请
求登录,请求切换账号,获取用户信息,支付,分享游戏信息等。在调用所有Api之前建议
设置当前活跃Activity的context(预防SDK使用被系统回收的context).
7) 代码混淆
如果您的游戏在打包的时候需要代码混淆,请勿将OpenSDK项目中的代码(包括libs
中的所有jar包)混淆。参考的配置代码如下:
-keep class .**{*;}
-keep class .** {*;}
-keep class .** {*;}
四、 账号接入说明(重要)
1. 可可游戏中心的开放账号采用oauth1.0身份认证的方式。
2. 游戏客户端可以通过api获取用户的信息以及token串。
3. 游戏可利用用户信息中的唯一id标示用户,游戏服务端可以利用游戏客户端从SDK获取
的token在首次登陆的时候验证用户的身份,以防止客户端被破解后的非法注册(详见验证
方案)。
4. 网游接入账号的时候,若要求用户安全性高,可以利用access token在游戏的服务端做
Oauth验证,单机游戏可以不做Oauth验证。
五、 支付接入说明(重要)
目前游戏中心提供了可币计费接口,可币与RMB的比例为1:1。
具体使用方法在消耗可币一节。
六、 API使用说明(重要)
SDK中开发者使用的类都在包名: 里面.
SDK中的所有API调用采用回调模式,回调的通用接口为:ApiCallback
API接口方法名以do开头
tance().doXXX(mCallback);
注: 请谨慎使用GameCenterSDK除doXXX之外的其他方法.
ApiParams类中有所用Api请求要用到的请求参数类型和返回状态码,详情请参考文档
的末尾。
请CP使用合适的提示语处理以下异常返回(code在类ApiParams中):
6.1 初始化SDK(重要)
请优先保证SDK的初始化方法被调用
6.2 请求登录(重要)
此接口通知sdk获取账号,其他Api接口,依赖于此接口的成功调用。
请求SDK登录,此接口有记住登录态的功能,CP不可自行实现登录缓存,此接口会有
耗时操作,SDK会弹出加载框。
调用此接口SDK将获取窗口的显示权,请在调用前设置一个合理的Activity,当回调函数
触发的时候,窗口的显示权自动退回给设置的Activity.
rrentContext(mCurrentActivity);
tance().doLogin(new ApiCallback() {
@Override
public void onSuccess(String content, int code){
//登录成功,CP自行处理
//网游登录逻辑(利用token验证用户的合法性为可选):
//n接口成功后调用doGetUerInfo获取用户信息和
获取accesstoken(doGetAccessToken())
//2.利用返回用户信息中的ID和accesstoken登录或者注册到游戏服务
器.
//3.提示用户登录成功,开始游戏.
}
@Override
public void onFailure(String content, int code){
//登录失败,CP自行处理
}}, mCurrentActivity);
6.3 获取用户信息
rrentContext(mCurrentActivity);
tance().doGetUserInfo(new ApiCallback() {
@Override
public void onSuccess(String content, int code){
}
@Override
public void onFailure(String content, int code){
//获取失败后的处理
}});
//获取用户信息后的处理
UserInfo ui = new UserInfo(content);
// do something for userinfo
正常返回: 数据为Json格式,CP可以利用Api包中的UserInfo类进行转换为对象,也可自行
提取数据。
字段
username
nickname
描述
用户名
昵称
id
sex
profilePictureUrl
gameBalance
constellation
异常返回: 参考全局状态相关的异常返回码
Ssoid,用户唯一标示
性别,true为男性
用户头像的地址
用户可币余额(单位为分)
星座代号
6.4 消耗可币(重要)
具体步骤:
1.游戏客户端向游戏服务端请求订单.
2.游戏客户端把订单信息(注:每次调用API接口的订单号不能重复)和游戏服务端的回调地
址传给SDK.
完成支付,利用回调地址通知游戏服务端,然后通知游戏客户端.
4.支付服务器通过回调地址多次请求游戏服务端,直到游戏服务端返回相应的成功字符串.
5.游戏客户端收到SDK的通知后询问游戏服务端的支付情况.
可币支付支持两种显示方式:
1.固定比例
调用代码如下,具体代码在OpenSDKDemo项目中
2.固定金额
调用代码如下,具体代码在OpenSDKDemo项目中
3.参数描述
调用可币支付,有用到以下参数对象。
4.相关说明
回调说明,如果CP需要将回调结果发送到CP服务器,可以使用callBackUrl这个参数。
在完成支付并成功后,可可游戏中心支付服务器将发一个POST请求到这个URL上,具体
回调细节参考服务端回调文档。
订单说明:每次传入的订单号必须唯一!
Api正常返回:正常,ApiParams .GLOBAL_CODE_OK(code),CP可以根据此接口的返回和服务
器回调的情况做发货处理.
Api异常返回:
1. 参考全局状态相关的异常返回码.
2. T_CODE_USER_BALANCE_NOT_ENOUGH, 用户余额不
足.
3. 用户充值失败
6.5 查询可币余额
获取用户信息的接口也有余额返回.
rrentContext(mCurrentActivity);
tance().doCheckBalance(new ApiCallback() {
@Override
public void onSuccess(String content, int code) {
}
@Override
public void onFailure(String content, int code) {
}
});
正常返回: ApiParams .GLOBAL_CODE_OK, {gameBalance:100.00},数据格式为json.
异常返回: 参考全局状态相关的异常返回码.
6.6 消耗N豆
N豆为游戏中心平台的积分。
6.7 查询N豆余额
返回的JSON数据格式为:
{"result":"OK","integralBalance":"55852"}
6.8 显示游戏中心
显示游戏中心.
rrentContext(mCurrentActivity);
tance().doShowGameCenter();
6.9 显示论坛
rrentContext(mCurrentActivity);
tance().doShowForum();
6.10 显示和消除游戏中心精灵
请确保两个方法对称的调用,并在activity onPause的时候消除精灵.
tance().doShowSprite(this);//显示
tance().doDismissSprite(this);//消失
七、 返回码详情
7.1 全局相关的返回码
所有返回码都在ApiParams类中。
Code
GLOBAL_CODE_OK
GLOBAL_CODE_NOT_LOGIN
说明
正常
在未登录的情况下调用所有api接口将返回
此错误码
GLOBAL_CODE_NET_ERROR
GLOBAL_CODE_SYSTEM_ERROR
网络异常
服务器内部异常,cp若遇到此异常,请联系我
们.
GLOBAL_CODE_SYSTEM_UNKNOW
未知错误, cp若遇到此异常,请联系我们.
GLOBAL_CODE_REQUEST_ERROR
参数请求错误,请cp先检查api传入的参数是
否有误,若无法解决,请联系我们.
GLOBAL_CODE_USER_CANCEL
用户操作取消
7.2 接口相关的返回码
XXX_CODE, XXX对应为相关的api接口
Code
LOGIN_CODE_ALREADY_LOGIN
说明
已经登录,若再次调用doLogin接口将在
onSuccess中返回状态码
CHARGE_CODE_FAILURE
充值失败返回状态码,游戏中心相关的充值提
示语将由SDK完成.CP只需在充值成功的回
调中刷新余额.
版权声明:本文标题:一、 简介与版本记录 内容由热心网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:https://m.elefans.com/dongtai/1719039734a750685.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论