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只需在充值成功的回

调中刷新余额.

本文标签: 游戏用户调用