当前位置:首页 > 帮助文档 > iOS SDK接入说明

iOS SDK网游接入

  1. 接入必读
  1. SDK构成
  1. SDK概述
    1. 开发环境搭建
    2. SDK初始化接口
    3. 注册登录接口
    4. 充值发货接口
    5. 其他功能接口
  1. 附录
    1. 附1:客户端错误码
    2. 附2:计费中心错误码
    3. 附3:用户中心错误码
    4. 附4:货币类型及对应ID
    5. 附5:版本命名规则
    6. 附6:激活码领取错误码

0 接入必读

0.1 接入准备

接入开始前,请先做好如下准备工作:
1.创建游戏,获取渠道参数及配置文件
接入前,需要由掌趣项目负责人完成渠道申报并在掌趣后台进行配置,从而获取到该游戏的渠道参数、掌趣配置文件(见下图)。掌趣配置文件(ourpalm.cfg)按照渠道及语言机型的不同,被分别打到对应的压缩文件目录中。
注意:接入前,务必将SDK包中assets目录下ourpalm.cfg替换为对应渠道配置文件中的ourpalm.cfg,否则很可能会报错。

MIS平台配置参数及获取配置文件的说明

2.提供游戏服信息,填写游戏分服列表
计费测试前,需要在掌趣后台配置相应的游戏服信息,请填写《游戏分服列表》(格式如下),并提交给掌趣项目负责人进行配置。


MIS平台配置游戏服说明

3.完成计费申报,填写商品录入模板
计费测试前,还需要完成在渠道的计费点申报,填写《商品录入模板》(见下图),并由掌趣项目负责人完成在掌趣后台的配置。


MIS平台配置计费点说明

0.2 版本命名

游戏版本命名(安卓是指androidmainfest.xml 中的versionName,IOS是指info.plist中的Bundle version),必须遵循如下规则要求(详见附录3.5)

0.3 服务端注意事项

1. 用户中心ID区分大小写
掌趣用户中心的用户ID,作为用户账号的唯一标识,区分大小写,相同字母和数字、大小写不同的用户ID代表的是两个不同的用户账号。因此,游戏在使用和存储掌趣用户ID时,务必要严格区分大小写,以免造成游戏内账号和角色的混乱等问题。
如果游戏有自己的用户ID,必须和掌趣用户中心的用户ID一一对应,不得出现一对多或者多对一的情况。也不得根据其他条件,组合生成新的用户ID,否则将会出现账号丢失的情况。
2. 角色名称不支持富文本
游戏传入的角色名称不支持富文本,否则会造成无法充值的情况。

0.4 特别说明

1. 渠道信息
在掌趣自动打包系统里,serviceId是区分渠道信息的标识,研发如果要获取渠道信息,请调用获取serviceId的接口(详见接口2.3.3),并和技术经理匹配各serviceId对应的渠道。
2. 是否接入第三方SDK
如果产品接入了第三方SDK,有需要根据包名、签名分配参数的情况,一定要提前通知技术经理。各个渠道包的包名、签名、证书等都不一样。自动打包将替换客户端包名、签名和证书。但不会自动替换第三方的参数。如地图、语音、推送能功能的第三方SDK。具体如何实现,需要根据具体情况操作。

1 SDK构成

掌趣IOS SDK主要由以下几部分构成,如下图:

1. OurpalmSDK.a 掌趣提供的静态库提供更新、登录、计费、日志等功能
2. ourpalm.cfg 掌趣提供的配置文件
3. OPFeedbackSDK.a 掌趣提供的客服SDK
4. ourpalm_fbres.bundle 掌趣提供的客服SDK资源
注意:
a、接入时直接将OurpalmSDK添加到工程,并且不要修改文件夹的名称
b、掌趣分配的配置文件ourpalm.cfg必须放在Ourpalmlib文件夹下
c、尽量将工程源码与.xodeproj文件放在工程的根目录下,如下图:

d、游戏可以根据需求选择是否加入客服SDK

SDK支持平台
掌趣 IOS SDK支持 iPhone、iPad、iPod Touch设备,要求armv7、armv7s或arm64架构,操作系统要求Mac要求Lion以上,Xcode要求5.0以上,iOS SDK要求5.0以上。

2 SDK概述

2.1开发环境搭建

2.1.1 工程配置(请特别注意!

Xcode->Project->Build Settings工程配置
1.添加库的连接参数
请在工程文件Build Settings处,找到Other Linker Flags,并添加以下内容

2.请将Apple LLVM 5.0 – Language – C++中C++ Standard Library项修改为以下内容

注意:
(1)Compiler Default的默认值在xcode5中为libstdc++,但在xcode6中的默认值为libc++。
(2)如果游戏需要支持C++11的新特性,C++ Standard Library需要设置为libc++,如下图,并且需要使用llvm文件中的静态库
3.其他编译设置

4.配置UrlScheme

规则:ourpalm-bundleId

2.1.2 Framework添加及配置(请特别注意!

1、工程只包含一个Target,且与项目名称相同,如下图:


2、配置Info.plist文件
Xcode->Project->Info。请在工程文件Info中设置SDK参数,如下图:


参数名称 类型 说明
Ourpalm_AllowCharge Boolean 是否允许充值
Ourpalm_AutoOrientation Boolean 是否允许界面旋转
Ourpalm_Debugmodel Boolean Debug开关,出release包需要设置为false
OPLoginType String 登录类型

OPLoginType说明:
Normal:用户名注册登录

PhoneStore:


2、添加Framework及资源
请将OurpalmSDK拖到你的工程Groups&Files面板中,如下图:

添加Framework后,如下图:

2.1.3 IOS9配置(请特别注意!

1、支持HTTP设置


ios9 下网络访问失败,原因是 ios9 下苹果要求 App 内访问的网络必须使用 HTTPS 协 议。sdk 内部是 http,现阶段不能马上改成 https。最终找到以下解决办法: 在 Info.plist 中添加 NSAppTransportSecurity 类型 Dictionary.在 NSAppTransportSecurity 下添加 NSAllowsArbitraryLoads 类型 Boolean,值设为 YES

2、支付宝白名单设置

2.1.4 dSYM符号化文件配置(请特别注意!

1、dSYM文件
在XCODE编译项目之后,会在app旁看见一个同名的dSYM文件。dSYM文件是iOS编译后保存16进制函数地址映射信息的文件,每次应用程序build后,都会生成对应的xxx.app, xxx.app.dSYM文件。通过此文件可以将16进制地址转换成可读的函数地址,精确定位crash位置,如下图所示:




2、工程配置


2.2SDK初始化接口

2.2.1 功能说明

1、初始化第三方SDK,同时获取SDK所需要的初始化数据
2、检查版本更新,初始化内部封装了第三方的更新接口

2.2.2 接口定义

注意:
1.初始化接口在不同游戏引擎添加的位置不同
2.游戏本身的初始化最好在SDK的初始化结束并成功后开始,因为部分渠道的SDK有自动展示LOGO的功能,如果游戏的初始化先于SDK的初始化或两者并行可能会造成渠道的LOGO展示部出来或显示时间很短的BUG
3.由于SDK已集成收集奔溃日志的功能,如果游戏使用的是U3D引擎,需要将UnityAppController.mm中的部分代码进行注释,如下图:


具体参看代码示例

2.2.3 参数说明

参数名称 重要性 类型 说明
controller 必填 UIViewController* 游戏的rootViewcontroller
opInfo 必填 OPInitParam 用于初始化的参数类

2.2.4 OPInitParam参数说明

参数名称 重要性 类型 说明
mDebugModel 必填 std::string 是否开启测试模式
mGameOnline 必填 bool 游戏类型(false:单机  true:网游)
mGameResVersion 非必填 std::string 游戏资源版本号
mAllowCharge 非必填 std::string 是否允许充值,默认为true
mAutoOrientation 非必填 std::string 是否允许自动旋转,默认为true
mScreenOrientation 非必填 OPScreenOrientation 界面初始化方向,默认为横屏
mUseAPIInterface 非必填 bool 设置掌趣官网登录(true:使用API接口,false:使用官网界面)

2.2.5 接口示例

(1)对于coco2d-x引擎:
初始化接口必须放在cocos2d::CCApplication::sharedApplication()->run();之后,且需要添加代码self.window.rootViewController = viewController;
(2)对于unity3d引擎:
初始化接口必须放在OnUnityReady();之后。

2.3注册登录接口

2.3.1 流程说明



1.手机游戏客户端会调用掌趣sdk进行sdk初始化操作
2.掌趣sdk向掌趣用户中心服务器发起登录/注册的请求
3.掌趣用户中心服务器向掌趣sdk返回token、用户信息等等
4.手机游戏客户端向游戏服务器发送token、用户信息等等
5.游戏服务器根据token向掌趣用户中心服务器获取用户信息
6.掌趣用户中心服务器向游戏服务器返回用户信息
7.游戏服务器向手机游戏客户端返回登录结果

注:现在大部分游戏未实现5和6的流程

2.3.2 获取SDK接口信息(客户端调用,必须)

功能说明
获取当前SDK接口哪些接口可用
接口定义
接口示例返回数据如下,JSON格式
{"EnterAppBBS":0,"EnterAppCenter":0,"EnterPlatform":1,"EnterUserSetting":1,"HideToolBar":0,"
IsLogin":1,"Logout":1,"RegisterLogin":1,"ShowPausePage":0,"
ShowToolBar":0,"SwitchAccount":1,"UserFeedback":0}
1: 表示接口可用
0: 表示接口不可用

例如以上返回数据说明:显示隐藏工具栏接口不需要调用,登录、注销、切换账号、用户中心接口需要调用。

2.3.3 获取渠道信息接口(客户端调用,可选)

功能说明
获取当前SDK渠道信息。
接口定义
接口示例
返回数据如下,JSON格式
{"channelId":"3101430031014300","channelName":"appstore","deviceGroupId":"0002","localeId":"01",
"serviceId":"1000053831014300000"}

说明:
serviceId 业务ID
channelId 渠道ID
deviceGroupId 机型组ID
localeId 语言ID

为了方便游戏接入,提供以下接口获取:
(1)获取业务ID(2)获取渠道ID(3)获取渠道名称(4)获取机型组ID(5)获取语言ID

2.3.4 SDK启动接口(客户端调用,必须)

功能说明
启动SDK。
接口定义
接口示例

2.3.5 横竖屏设置(客户端调用,必须)

功能说明
通过从Info.plist文件中获取的Ourpalm_AutoOrientation参数来设置游戏是否支持自动旋转。具体调用可参看Demo
(1)AppDelegate横竖屏设置
示例:
(2)UIViewController横竖屏设置
示例
当游戏为横屏,且初始化方向为UIInterfaceOrientationLandscapeLeft时,横竖屏设置如下:

2.3.6 登录(客户端调用,必须)

功能说明
登录掌趣用户中心。游戏客户端调用登录接口(RegisterLogin)前,需要通过设置登录回调接口(RegisterLoginCallBack)将回调函数指针传给SDK,登录成功后,掌趣SDK会通过回调函数通知游戏客户端。
接口定义参数说明
参数名称 重要性 类型 说明
OPUserType 必填 enum 掌趣官网登录类型

接口示例
其中对应的OPUserType类型返回的JSON数据格式说明
登录成功时
{"id":"掌趣平台分配的用户唯一id,区分大小写",
"returnJson":{第三方SDK平台返回的数据,一般情况下游戏无需关心},
"tokenId":"掌趣分配的tokenId",
"userName":"掌趣平台中的用户名"}
登录失败时
{"desc":"失败描述",
"reset":"状态码","status":"1"}

注意:
1.返回失败时,SDK会弹出提示框!对于请求超时(状态码为101),不会弹出提示框,游戏可自动重新连接或自己添加提示框。
2.用户ID区分大小写,相同字母和数字、大小写不同的用户ID代表的是两个不同的用户账号。因此,游戏在使用和存储掌趣用户ID时,务必要严格区分大小写,以免造成游戏内账号和角色的混乱等问题。
3.如果游戏有自己的用户ID,必须和掌趣用户中心的用户ID一一对应,不得出现一对多或者多对一的情况。也不得根据其他条件,组合生成新的用户ID,否则将会出现账号丢失的情况。


2.3.7 设置角色信息(客户端调用,必须)

功能说明
当游戏角色注册(登录)成功时设置游戏角色注册(登录)信息。

注:
1、游戏角色注册成功后,调用该接口设置角色注册信息。
2、游戏角色登录成功后,调用该接口设置角色登录信息,否则无法计费。
接口定义
接口定义
参数名称 重要性 类型 说明
opGameInfo 必须 OPGameInfo 设置游戏账号信息
opGameType 必须 OPGameType 用户标识游戏角色注册登录状态
注册:kGameRegister 登录:kGameLogin

OPParam参数说明
参数名称 重要性 类型 说明
mGame_RoleName 必须 std::string 游戏角色名称(不支持富文本)            
mGame_RoleId 必须 std::string 游戏角色 id
mGame_ServerId 必须 std::string 游戏服务器id
mGame_ServerName 必须 std::string 游戏服务器名称
mGame_RoleLevel 非必须 std::string 游戏角色等级
mGame_RoleVipLevel 非必须 std::string 游戏角色vip等级

接口示例

2.3.8 登录注销(客户端调用,根据SDK接口信息来决定是否调用)

功能说明
注销当前登陆账号。游戏客户端调用注销接口(LogOut)前,需要通过设置注销回调接口(RegisterLogoutCallBack)将回调函数指针传给SDK,注销成功后,掌趣SDK会通过回调函数通知游戏客户端。
接口定义接口示例

2.3.9 切换账号(客户端调用,根据SDK接口信息来决定是否调用)

功能说明
注销当前登录账号,切换成功后会调用注销回调函数通知游戏客户端。
接口定义
接口示例

2.3.10 登录验证(服务器调用,可选)

功能说明

游戏服务器端根据token去用户中心拿取用户信息,该接口可以避免客户端随意修改信息的漏洞。

接口采用HTTP请求,参数以JSON数据格式,POST方式发给用户中心

接口定义

请求URL:
 http://auth.gamebean.net/ucenter/uMember/userLoginMgr.do (中国大陆)
 http://auth.hk.gamesbean.net/ucenter/uMember/userLoginMgr.do (香港及东南亚地区)
 http://auth.fingertips.kr/ucenter/uMember/userLoginMgr.do (韩国)
 https://authjp.gamesbean.net/ucenter/uMember/userLoginMgr.do (日本)
 https://auth-us.gamesbean.net/ucenter/uMember/userLoginMgr.do (欧美)


参数说明
参数名称 重要性 类型 说明
interfaceId 必须 String 接口号,固定填写0002即可
tokenId 必须 String 用户中心返回的tokenId

接口示例(接口采用POST格式传输)
http body中传输为:返回参数说明
参数名称 重要性 类型 说明
bindingMode 必须 String 0为手机方式绑定;1为邮箱方式绑定
loginType 必须 String 用户登录标识:(
             0:是第三方平台注册
             1:为官网注册
             2:为快速注册
             9:为其它平台登录
             10:为官网登录
11:为快速登录
status 必须 String 返回状态
reset 必须 String 状态内码
desc 必须 String 状态描述
tokenId 必须 String 单点登录标识
userInfo 必须 String 用户信息(具体返回参数见示例)
originalUserType 必须 String 用户类型
0:第三方用户
1:普通官网用户
2:快登用户
currentUserType 必须 String 用户类型
0:第三方用户
1:普通官网用户
2:快登用户
userPlatformId 必须 String 用户系统ID
0001:官网用户
0231:Facebook用户

返回json格式信息:
各地域接口地址清单

A 中国大陆    http://auth.gamebean.net/ucenter/uMember/userLoginMgr.do

B 港台以及东南亚地域    http://auth.hk.gamesbean.net/ucenter/uMember/userLoginMgr.do

C 韩国    http://auth.fingertips.kr/ucenter/uMember/userLoginMgr.do

D 日本    https://authjp.gamesbean.net/ucenter/uMember/userLoginMgr.do

E 欧美    https://auth-us.gamesbean.net/ucenter/uMember/userLoginMgr.do

2.4充值发货接口

2.4.1 流程说明



1.掌趣sdk向掌趣计费服务器发起支付请求
2.掌趣计费服务器生成订单号,并向sdk返回支付结果
3.掌趣计费服务器通知游戏服务器发货
4.游戏服务器发送虚拟物品至玩家手机游戏客户端
5.游戏服务器向计费服务器返回发货结果

2.4.2 支付接口(客户端调用,必须)

功能说明
游戏客户端通过调用计费接口,实现游戏中的道具购买。游戏客户端调用计费接口(Purchase)前,需要继承PurchaseListener,通过设置接口(SetListener)将对象指针传给SDK,计费成功后,掌趣SDK会通过OnPurchaseResult通知游戏客户端。
接口定义
参数说明
参数名称重要性类型说明
mPrice必填std::string商品价格,单位详见3.4货币类型及对应ID
mCurrencyType必填std::string货币类型,详见3.4货币类型及对应ID
mPropName必填std::string商品名称,不含数字
mPropId必填std::string游戏自定义的商品ID,必传。
mPropNum必填std::string商品数量,只能是数字
mPropDescribe非必填std::string商品描述
mDeleverUrl必填std::string发货地址
mExtendParams非必填std::string游戏自定义扩展参数
mGameRoleLevel非必填std::string游戏角色等级
mGameRoleVipLeve非必填std::string游戏角色VIP等级

接口示例

2.4.3 应用间调用接口(客户端调用,必须)

功能说明
在调用第三方app进行支付时(例如支付宝),通过设置该接口,便可在支付完成后直接返回到游戏中。
接口定义
接口示例

2.4.4 发货通知接口(服务器调用,必须)

功能说明
游戏计费成功后,第三方计费平台回调掌趣计费中心,验证通过后通知游戏发货接口。
接口采用http请求方式通知游戏,发货的地址由游戏方提供,计费中心将参数以JSON数据格式, Post方式发给游戏发货服务器。
请求参数说明
参数名称重要性类型说明
serviceId必须String业务ID
channelId必须String推广渠道ID
deviceGroupId必须String机型组ID
localeId必须String语言ID
propId必须String商品ID
roleId必须String游戏角色ID
userId必须String游戏用户ID
serverId必须String逻辑服ID
payChannelId必须String支付方式ID
chargePrice必须String订单金额,单位详见3.4货币类型及对应ID
actualPrice必须String实际支付金额,单位详见3.4货币类型及对应ID
chargeUnitId必须String计费点ID
currencyType必须String货币类型,详见3.4货币类型及对应ID
orderId必须String订单号
订单号的首位数字可用于区分订单类型
0:SDK订单
1:GM后台订单
2:web订单
3:重复回调补单订单
testOrder必须String是否是测试订单(该参数不参与验签)
0:不是
1:是
strategy.rebate.price可选String返利金额(为整数,如果有小数则进1)
strategy.rebate.goodId可选String返利商品ID
strategy.rebate.rebateType可选String返利类型
GOODID:按照商品ID返利
PRICE:按照充值金额进行返利
extendParams可选String自定义字段
sign必须Md5(serviceId+
channelId+
deviceGroupId+
localeId+propId+
roleId+userId+
serverId+orderId+
actualPrice+
extendParams)
签名

请求参数格式

响应参数说明
参数名称重要性类型说明
deliverCode必须String通知结果
deliverDesc必须String通知结果描述(需要做UrlEncode,编码方式UTF-8)

deliverCode含义值
返回值含义
成功状态            
0001通知成功
 预留扩展
 预留扩展
失败状态            
1000订单异常(该订单已经发货)
1001用户异常
1002角色异常
1003逻辑服异常
1004商品异常
1005发货失败
1100预留扩展(该扩展由游戏方定义,定义后请反馈计费中心)

响应参数格式

特别注意:
1.游戏需验证订单金额(chargePrice)和实际支付金额(actualPrice)是否相等,如果不相等,则按照实际支付金额(actualPrice)进行处理。
2.为了保证数据安全性,游戏服务器需要对掌趣计费中心IP地址做鉴权处理。
大陆地区和应用宝的鉴权IP为:223.202.93.168、223.202.93.144、103.235.233.11、115.159.84.84、115.159.83.43、223.202.94.171、223.202.13.15、223.202.13.16、103.235.233.66、103.235.233.67
港澳台、泰国、新马地区鉴权IP为:128.1.62.11、128.1.62.12、128.1.62.40 、128.1.62.47 、128.1.62.48 、128.1.62.49 
韩国地区鉴权IP为:103.6.100.131、103.6.100.140、103.6.100.135、103.6.100.136
日本地区鉴权IP为:52.69.92.254、52.196.24.135、52.193.250.87、52.199.11.192
欧美地区鉴权IP为:47.89.191.141、47.90.200.33、47.89.178.154、47.89.177.232


2.4.5 礼包码通知发货接口(服务器调用,可选)

功能说明
WEB端点击礼包码兑换,掌趣计费中心验证通过后通知游戏发货接口。
接口采用http请求方式通知游戏,发货的地址由游戏服务端提供,计费中心将参数以JSON数据格式, Post方式发给游戏发货服务器。
请求参数说明
参数名称重要性类型说明
serviceId必须String业务ID
channelId必须String推广渠道ID
deviceGroupId必须String机型组ID
localeId必须String语言ID
roleId必须String游戏角色ID
userId必须String游戏用户ID
serverId必须String逻辑服ID
giftId必须String礼包ID(游戏内发放物品ID)
keyId必须String激活码
extendParams可选String自定义字段,多个参数之间 以"|" 分隔

请求参数格式

响应参数说明
参数名称重要性类型说明
deliverCode必须String通知结果
deliverDesc必须String通知结果描述(需要做UrlEncode,编码方式UTF-8)

deliverCode含义值
返回值含义
成功状态            
0001通知成功
 预留扩展

响应参数格式

特别注意:
1.为了保证数据安全性,游戏服务器需要对掌趣计费中心IP地址做鉴权处理。
大陆地区和应用宝的鉴权IP为:223.202.93.168、223.202.93.144、103.235.233.11、115.159.84.84、115.159.83.43、223.202.94.171、223.202.13.15、223.202.13.16、103.235.233.66、103.235.233.67
港澳台、泰国、新马地区鉴权IP为:128.1.62.11、128.1.62.12、128.1.62.40 、128.1.62.47 、128.1.62.48 、128.1.62.49 
韩国地区鉴权IP为:103.6.100.131、103.6.100.140、103.6.100.135、103.6.100.136
日本地区鉴权IP为:52.69.92.254、52.196.24.135、52.193.250.87、52.199.11.192
欧美地区鉴权IP为:47.89.191.141、47.90.200.33、47.89.178.154、47.89.177.232


2.4.6 礼包码通知发货接口(服务器调用,可选)

功能说明
SDK中点击礼包码兑换,掌趣计费中心验证通过后通知游戏发货接口。
注意:游戏服务器需增加判断,同一礼包码同一用户只发货一次。

接口采用http请求方式通知游戏,发货的地址由游戏服务端提供,计费中心将参数以JSON数据格式, Post方式发给游戏发货服务器。
请求参数说明
参数名称重要性类型说明
serviceId必须String业务ID
channelId必须String推广渠道ID
deviceGroupId必须String机型组ID
localeId必须String语言ID
roleId必须String游戏角色ID
userId必须String游戏用户ID
serverId必须String逻辑服ID
gamePackageId必须String礼包ID (游戏内发放物品ID)
gameCode必须String激活码
extendParams可选String自定义字段,多个参数之间 以"|" 分隔
goodsInfos可选String道具信息
goodsInfos.goodsId可选String道具ID
goodsInfos.goodsNum可选String道具数量
goodsInfos.extendInfo可选String道具扩展信息
sign必须Md5(serviceId+
channelId+
deviceGroupId+
localeId+roleId+
userId+serverId+
gamePackageId+
gameCode+
extendParams)
签名

请求参数格式

响应参数说明
参数名称重要性类型说明
deliverCode必须String通知结果
deliverDesc必须String通知结果描述(需要做UrlEncode,编码方式UTF-8)

deliverCode含义值
返回值含义
成功状态            
0001通知成功
 预留扩展
失败状态            
1000礼包码异常(该礼包码已经发货)
1001用户异常
1002角色异常
1003逻辑服异常
1004商品异常
1005发货失败
1100预留扩展(该扩展由游戏方定义,定义后请反馈计费中心)

响应参数格式

特别注意:
1.为了保证数据安全性,游戏服务器需要对掌趣计费中心IP地址做鉴权处理。
大陆地区和应用宝的鉴权IP为:223.202.93.168、223.202.93.144、103.235.233.11、115.159.84.84、115.159.83.43、223.202.94.171、223.202.13.15、223.202.13.16、103.235.233.66、103.235.233.67
港澳台、泰国、新马地区鉴权IP为:128.1.62.11、128.1.62.12、128.1.62.40 、128.1.62.47 、128.1.62.48 、128.1.62.49 
韩国地区鉴权IP为:103.6.100.131、103.6.100.140、103.6.100.135、103.6.100.136
日本地区鉴权IP为:52.69.92.254、52.196.24.135、52.193.250.87、52.199.11.192
欧美地区鉴权IP为:47.89.191.141、47.90.200.33、47.89.178.154、47.89.177.232


2.5其他功能接口

2.5.1 设置工具栏接口(客户端调用,根据SDK接口信息来决定是否调用)

功能说明
设置工具栏的显示状态和位置
接口定义接口示例

2.5.2 进入平台中心接口(客户端调用,根据SDK接口信息来决定是否调用)

功能说明
进入平台中心的首页界面
接口定义接口示例

2.5.3 显示暂停页面接口(客户端调用,必须)

功能说明
在游戏暂停或者从后台恢复的时候显示暂停页
接口定义接口示例

2.5.4 客服功能接口(客户端调用)

功能说明
在登录游戏后,调用此接口打开用户反馈界面
游戏需要自己设计UI展示以及展示位置,当用户点击此按钮时,调用接口,打开客服反馈页面。
工程配置
1.添加客服SDK(OPFeedbackSDK.a)及资源(ourpalm_fbres.bundle)

2.注意:客服功能从4.3.0开始,不再需要添加竖屏支持
4.3.0以下版本客服功能必须添加竖屏设置






接口定义接口示例


2.5.5 礼包码兑换接口(客户端调用)


功能说明
兑换礼包码

接口定义参数说明
参数名称 重要性 类型 说明
gamecode 必填 const char * 礼包码
deleverUrl 必填 const char * 礼包码发货地址
extendParams 非必填 const char * 游戏自定义参数
接口示例

3 附录

3.1 附1:客户端错误码

状态码 说明
101 连接超时
102 网络异常,请检查网络
103 数据异常
104 SDK初始化参数错误
105 SDK语言配置文件错误
106 Ourpalm.cfg配置文件错误
107 SDK未初始化成功
108 SDK未设置登录回调
109 未设置服务器id
110 未设置价格
111 未设置货币类型
112 未设置商品名称
113 未设置商品id
114 未设置虚拟货币单位
115 未设置虚拟货币数量
116 未设置发货地址
117 未设虚拟货币单位
118 未设商品数量
119 用户取消支付
120 支付失败
121 支付页面加载失败
200 支付成功
201 下单成功

3.2 附2:计费中心错误码

状态外码 状态内码 描述
0 21000 成功
逻辑错误状态码(预留1000个错误码)
1 21001 请求的json串格式不正确
1 21002 json对象格式不正确
1 21003 json字符串转换为对象错误
1 21004 道具格式不正确
1 21005 返回bean格式不正确
1 21006 没有筛出计费点
1 21007 驱动格式不正确
1 21099 全局异常错误
1 21100 common节点格式不正确
1 21101 options节点格式不正确
1 21102 common中interfaceId格式不正确
1 21103 tokenid格式不正确
1 21104 serviceId格式不正确
1 21105 deviceGroupId格式不正确
1 21106 localeId格式不正确
1 21120 device格式不正确
1 21121 mac格式不正确
1 21122 手机号码错误
1 21123 发货地址格式不正确
1 21130 批价ID格式不正确
1 21131 道具ID格式不正确
1 21132 sdkVersion格式不正确
1 21133 userId格式不正确
1 21134 roleId格式不正确
1 21135 roleName格式不正确
1 21136 gameType格式不正确
1 21137 gameServerId格式不正确
1 21138 gameClientVersion格式不正确
1 21139 当前业务下没有该道具
1 21140 计费点ID格式不正确
1 21141 充值金额格式不正确
1 21142 货币类型格式不正确
1 21143 gameServerId在平台没有启用
1 21144 游戏产品不存在
1 21145 平台操作失败.
1 21146 请求报文头格式不正确
1 21147 手机平台ID格式不正确
1 21148 设备名称格式不正确
1 21149 设备系统版本号格式不正确
1 21150 设备分辨率格式不正确
1 21151 设备UDID格式不正确
1 21152 运营商格式不正确
1 21153 设备厂商格式不正确
1 21154 手机格式不正确
1 21155 用户ID格式不正确
1 21156 代计费功能同步渠道异常
1 21157 超过用户日最大计费金额
1 21158 超过用户月最大计费金额
1 21159 黑名单用户
1 21160 充值失败
1 21161 超过计费点日最大计费金额
1 21162 超过计费点月最大计费金额
1 21163 道具名称不能为空
1 21164 通知发货成功
1 21165 计费失败
1 21166 等待支付结果
1 21167 指令错误
1 21168 已经订购,无需重复订购(包月)
1 21169 黑名单用户
1 21170 虚拟货币单位格式不正确
1 21171 虚拟货币数量格式不正确
1 21172 虚拟货币单位非法
1 21173 虚拟货币数量非法
1 21174 货币格式非法
1 21175 发货地址在mis上没有配置
1 21176 SDK同步_验签失败
1 21177 SDK同步_订单缓存不存在
1 21178 SDK同步_签名信息格式不正确
1 21179 欢畅官网_订单号格式不正确
1 21180 欢畅官网_订单缓存不存在
1 21181 欢畅官网_充值卡号格式不正确
1 21182 欢畅官网_充值卡类型格式不正确
1 21183 欢畅官网_充值卡密码格式不正确
1 21184 欢畅官网_银行类型格式不正确
1 21185 礼包码不得为空
1 21186 发货失败
1 21187 礼包码不存在或不可用
1 21188 礼包码已过期
1 21189 礼包码未领取
1 21190 礼包码已使用
1 21191 该用户已兑换过礼包码
1 21192 该设备已兑换过礼包码
1 21193 礼包活动暂停中
1 21194 礼包码已经用完
1 21195 网络异常
1 21196 服务内部错误
1 21197 传入的礼包码有错误
appsotre平台逻辑错误状态码(每个平台预留50个错误码)
1 22000 appstore:app_product_id 格式不正确
江苏移动sdk平台逻辑错误状态码(每个平台预留50个错误码)
1 22050 江苏移动:cmcc_pay_code 格式不正确
GooglePlay sdk平台逻辑错误状态码(每个平台预留50个错误码)
1 22100 googlePlay_pay_code 格式不正确
GooglePlay sdk平台逻辑错误状态码(每个平台预留50个错误码)
1 22100 googlePlay_pay_code 格式不正确
mm sdk平台逻辑错误状态码(每个平台预留50个错误码)
1 22100 googlePlay_pay_code 格式不正确
世纪佳缘 sdk平台逻辑错误状态码(每个平台预留50个错误码)
1 22200 世纪佳缘接口 game_partner_id 游戏合作ID格式不正确
1 22201 世纪佳缘接口  game_jf_id 游戏计费点编号格式不正确
1 22202 世纪佳缘接口   game_id 游戏id格式不正确
1 22203 世纪佳缘接口   game_cost 金额格式不正确
1 22204 世纪佳缘接口  mobile 充值手机号格式不正确
1 22205 世纪佳缘接口  game_pay_type 支付类型格式不正确
1 22206 世纪佳缘接口   param 短信上行自定义内容格式不正确
1 22207 世纪佳缘接口   sign 加密格式不正确
1 22208 世纪佳缘接口  签名数据不符
1 22209 世纪佳缘接口   game_partner_id与计费点上参数不符
1 22210 世纪佳缘接口   game_jf_id与计费点上参数不符
1 22211 世纪佳缘接口   game_id与计费点上参数不符
1 22212 世纪佳缘接口    根据指令没有相关代计费配置
华谊 平台逻辑错误状态码(每个平台预留50个错误码)
1 22250 根据指令没有相关代计费配置
1 22251 itemId_短信上行自定义内容格式不正确
1 22252 transactionId_内容格式不正确
1 21188 礼包码已过期
1 22253 serviceId_内容格式不正确
1 22254 spId_内容格式不正确
1 22255 serviceType_内容格式不正确
1 22256 feeType_内容格式不正确
1 22257 serviceId与计费点上参数不符
1 22258 spId与计费点上参数不符
1 22259 serviceType与计费点上参数不符
1 22260 feeType与计费点上参数不符
1 22262 success_内容格式不正确
联通时科 平台逻辑错误状态码(每个平台预留50个错误码)
1 22304 联通时科外放接口  Mobile  充值手机号格式不正确
1 22305 联通时科外放接口 sms_msg 外放代码格式不正确
1 22306 联通时科外放接口  ret 计费结果格式不正确
1 22307 联通时科外放接口  message 计费错误信息格式不正确
1 22308 联通时科外放接口  sec
1 22309 联通时科外放接口    签名数据不符
1 22310 联通时科外放接口  没有相关代计费配置
1 22311 联通时科外放接口  传入订单号格式 不正确
微米 平台逻辑错误状态码(每个平台预留50个错误码)
1 22354 微米外放接口  mobile 充值手机号格式不正确
1 22355 微米外放接口  Price 金额格式不正确
1 22356 微米外放接口  ExData 上行自定义内容格式不正确
1 22357 微米外放接口  param WIMI POST上传的参数无效
1 22358 微米外放接口 没有相关代计费配置
1 22359 微米外放接口 【POST】-回传的XML报文未成功获取
联动优势 平台逻辑错误状态码(每个平台预留50个错误码)
1 22400 联动优势外放接口    mobileId 充值手机号码格式不正确
1 22401 联动优势外放接口    goodsId 短信上行商品号指令格式不正确
1 22402 联动优势外放接口    没有相关代计费配置
1 22403 联动优势外放接口    merId  商户号格式不正确
1 22404 联动优势外放接口    amtType  货币类型格式不正确
1 22405 联动优势外放接口    bankType 货币类型格式不正确
1 22406 联动优势外放接口   version 版本号格式不正确
1 22407 联动优势外放接口   sign 签名格式不正确
1 22408 联动优势外放接口  orderId 商户订单号格式不正确
1 22409 联动优势外放接口  merDate 商户日期格式不正确
1 22410 联动优势外放接口  payDate 平台支付日期格式不正确
1 22411 联动优势外放接口  amount 商品金额格式不正确
1 22412 联动优势外放接口  transType 交易类型格式不正确
1 22413 联动优势外放接口  settleDate 账务清算日期格式不正确
1 22414 联动优势外放接口   merPriv 商户私有信息格式不正确
1 22415 联动优势外放接口   retCode 返回码格式不正确
1 22416 联动优势外放接口   平台向用户下订单时签名验证不成功
1 22417 联动优势外放接口   平台向用户同步信息时签名验证不成功
1 22418 联动优势外放接口    平台向商户下订单金额超过当前计费点的实际金额
1 22419 联动优势外放接口    当前计费点不满足计费限额,订单状态更新为异常
IVR 平台逻辑错误状态码(每个平台预留50个错误码)
1 22450 IVR外放接口 没有相关代计费配置
1 22451 IVR外放接口 开始计费时间格式不正确
1 22452 IVR外放接口 结束计费时间格式不正确
1 22453 IVR外放接口 呼叫号码格式不正确
1 22454 IVR外放接口 被叫号码格式不正确
1 22455 IVR外放接口 没有找到相关计费点配置
官网SMS 平台逻辑错误状态码(每个平台预留50个错误码)
1 22500 Official官网SMS计费回调接口    sign 签名验证不通过
1 22501 Official官网SMS计费回调接口   订单不存在
当乐SDK 平台逻辑错误状态码(每个平台预留50个错误码)
1 22550 downloadjoy SDK计费回调接口    result 返回结果验证不通过
1 22551 downloadjoy SDK计费回调接口   money 返回结果验证不通过
1 22512 downloadjoy SDK计费回调接口    mid 返回结果验证不通过
1 22513 downloadjoy SDK计费回调接口     time 返回结果验证不通过
1 22514 downloadjoy SDK计费回调接口   signature 返回结果验证不通过
1 22515 downloadjoy SDK计费回调接口   ext 返回结果验证不通过
1 22516 downloadjoy SDK计费回调接口    签名验证不通过
百度多酷SDK 平台逻辑错误状态码(每个平台预留50个错误码)
1 22600 duoku SDK计费回调接口    amount 返回结果验证不通过
1 22601 duoku SDK计费回调接口    cardtype 返回结果验证不通过
1 22602 duoku SDK计费回调接口   orderId 返回结果验证不通过
1 22603 duoku SDK计费回调接口    result 返回结果验证不通过
1 22604 duoku SDK计费回调接口       timetamp 返回结果验证不通过
1 22605 duoku SDK计费回调接口      client_secret 返回结果验证不通过
1 22606 duoku SDK计费回调接口    签名验证不通过
爱思SDK 平台逻辑错误状态码(每个平台预留50个错误码)
1 22650 I4 SDK计费回调接口 amount 返回结果验证不通过
1 22651 I4 SDK计费回调接口 order_id 返回结果验证不通过
1 22652 I4 SDK计费回调接口 billno 返回结果验证不通过
1 22653 I4 SDK计费回调接口 account 返回结果验证不通过
1 22654 I4 SDK计费回调接口 status 返回结果验证不通过
1 22655 I4 SDK计费回调接口 app_id 返回结果验证不通过
1 22656 I4 SDK计费回调接口 role 返回结果验证不通过
1 22657 I4 SDK计费回调接口 zone 返回结果验证不通过
1 22658 I4 SDK计费回调接口 sign 返回结果验证不通过
1 22659 I4 SDK计费回调接口 签名验证不通过
华谊 平台逻辑错误状态码(每个平台预留50个错误码)
1 22700 本月已订购
1 22701 用户未登录
1 22702 手机号有误
1 22703 token不能为空
1 22704 计费点不能为空
1 22705 跳转地址不能为空
安智 平台逻辑错误状态码(每个平台预留50个错误码)
1 22750 安智回调接口 第三方订单ID不存在
1 22751 安智回调接口   订单金额不存在
1 22752 安智回调接口    回调信息 用户自定义参数不存在
1 22753 安智回调接口   回传状态不存在
1 22754 安智回调接口   实际支付金额不存在
步步高 平台逻辑错误状态码(每个平台预留50个错误码)
1 22800 步步高下单失败
1 22801 步步高回调验签失败
1 22802 步步高回调支付失败
微信 平台逻辑错误状态码(每个平台预留50个错误码)
1 22850 获取access_token值返回错误
1 22851 下单失败
联想 平台逻辑错误状态码(每个平台预留50个错误码)
1 22900 签名错误
1 22901 支付状态错误
1 22902 支付状态错误
朗天 平台逻辑错误状态码(每个平台预留50个错误码)
1 22950 上行内容格式不正确
1 22951 代计费配置错误
1 22952 手机号码格式不正确
1 22953 处理结果格式不正确
1 22954 流水号格式不正确
1 22955 上行号码格式不正确

3.3 附3:用户中心错误码

状态外码 状态内码 描述
0 1000 成功
逻辑错误状态码(系统平台 预留200个错误码)            
1 1001 请求格式错误
1 1002 interfaceId错误
1 1003  gameKey错误
1 1004 loginFlag登陆标识错误
1 1005 获取静态参数错误
1 1006 用户名不能为空
1 1007 用户名长度错误,最短6位,最长100位
1 1008 用户名包含空格
1 1009 用户名含有非法字符
1 1010 用户名包含中文
1 1011 密码不能为空
1 1012 密码长度错误,最短6位,最长100位
1 1013 密码包含中文
1 1014 密码含有非法字符
1 1015 SDK必填参数为空
1 1016 SDK必填参数缺失
1 1017 手机号已经和当前账号绑定
1 1018 当前玩家的手持设备的IP地址已经被游戏封停
1 1019 请求第三方鉴权请求回传参数为空
1 1020 上行的参数roleName和roleId不能同时为空
1 1021 上行的参数server不能为空
1 1022 上行的参数time不能为空
1 1099 其它请求错误
1 1101 用户名不存在或错误
1 1102 密码错误
1 1103 登录失败
1 1104 单点登录tokenID无效
1 1105 第三方返回参数为空
1 1106 用户名已经存在
1 1107 服务器缓存连接失败
1 1108 连接第三方服务器异常
1 1109 服务器端参数未配置
1 1110 传入的mac的有误
1 1111 传入的userPlatformId有误
1 1112 mac已经存在
1 1113 用户名和密码不匹配
1 1114 ID不存在
1 1115 新密码不能设置为空
1 1116 uId不能为空
1 1117 token过期,请重新登陆
1 1118 修改失败,新密码与原密码相同
1 1119 tokenId不能为空
1 1120 mac不能为空
1 1121 mac或者IDFA不能为空
1 1122 mac或者deviceUniqueID不能为空
1 1123 传入的mac有误
1 1124 传入的版本号错误
1 1125 传入的uId有误
1 1126 账号已绑定
1 1127 已绑定过手机
1 1128 手机号有误
1 1129 验证码失效或有误
1 1130 手机未绑定
1 1131 短信发送失败
1 1132 账号已封停
1 1133 mac已封停
1 1134 账号不存在
1 1135 该账户已绑定手机
1 1136 该账户未绑定手机
1 1137 帐号mac都未封停
1 1138 业务Id错误
1 1139 推广渠道Id错误
1 1140 机型组Id错误
1 1141 地区Id错误
1 1142 hadoop目录错误
1 1143 找回密码次数超过当天次数限制
1 1144 请求头oUa为空
1 1145 请求头version为空
1 1146 IP鉴权失败,非法客户端IP
1 1147 找回密码失败:快登用户不能找回密码
1 1148 58位特征串为空
1 1149 58位特征串位数不足58位
1 1150 sid为空异常
1 1151 产品黑名单异常
1 1152 用户昵称为空异常
1 1153 接口暂未定义异常
1 1154 接口暂无访问权限异常
1 1155 userName生成的伪序列为0异常
1 1156 account不能为空
1 1157 accountSign不能为空
1 1158 签名无效
1 1159 平台ID未在白名单异常。
1 1160 jsonStr为空异常
1 1161 验证码错误
1 1162 当前手机号已经被注册
1 1163 用户中心没有该手机号信息
1 1164 手机号没有与当前注册账号绑定
1 1165 昵称已被使用
1 1166 旧密码有误
1 1167 确认密码有误
1 1168 确认密码和新密码有误
1 1169 email不能为空
1 1170 用户名长度只能在6-18位字符之间
1 1171 用户名只能由数字、字母、下划线组成
1 1172 密码长度只能在6-14位之间
1 1173 密码不能是纯数字
1 1174 密码不能是纯字母
1 1175 密码只能由数字、字母组成
1 1176 无法获取快速登录所需的设备信息,不能进行快速登录!
1 1177 修改密码次数超过当天次数限制
替换官网用户相关异常状态码(每个平台预留50个错误码)            
1 2356 目标用户的用户名更新失败,可能重名
1 2357 修改要找回的账号信息失败
1 2358 要找回用户的邮箱绑定信息更新失败
1 2359 要找回用户的手机绑定信息更新失败
1 2404 旧用户或者新用户不是官网用户
1 2405 旧用户不是快登用户,或新用户不是官网正式用户
1 2406 用户信息错误
封停帐号错误状态码(每个平台预留50个错误码)            
1 3000 closureType有误
1 3001 closureDatas有误
1 3002 closureStartTime有误
1 3003 closureEndTime有误
道具帐号错误状态码(每个平台预留50个错误码)            
1 3100 道具tokenId有误
1 3101 道具bsid有误
1 3102 道具gameKey有误
用户是否在线错误状态码(每个平台预留50个错误码)            
1 3450 用户不在线上
1 3451 uids不能为空
1 3452 flag不能为空
心跳错误状态码(每个平台预留50个错误码)            
1 3500 心跳接口时间间隔参数有误
SDK版本升级错误状态码(每个平台预留50个错误码)            
1 3600 SDK版本不能为空
1 3601 未能检测到版本信息
用户角色对应错误状态码(每个平台预留50个错误码)            
1 3800 roleId不能为空
1 3801 roleName不能为空

3.4 附4:货币类型及对应ID

在MIS中的货币有总共十种,货币ID是没有限定位数的纯自增值

货币ID 货币名称 货币单位
1 人民币
2 美元 美分
3 日元
4 港币
5 英镑 便士
6 新加坡币
7 越南盾
8 台币
9 韩元
10 泰铢 萨当

3.5 附5:版本命名规则

游戏客户端版本命名(安卓是指androidmainfest.xml 中的versionName,IOS是指info.plist中的Bundle version),必须遵循如下规则要求:

1. 版本信息不能出现数字和小数点之外的字符,以小数点进行分割,分隔后每个分区只有一位的情况可以是零,如果是多位则首位必须是非零,正确格式如 1.0.0、4.3.2.0,非法格式如

4.0.3-23940        不能有横杠

2.0.35(58390)       不能出现括号

1.0.a            不能带字母

1.0.01            多位数字首位不能为0   

2. 版本信息从左到右按照每个分区转为Integer进行比较,如

1.1.1 > 1.0.10  (1 > 0)

1.0.9 < 1.0.10  (9 <10)

1.0.11 < 1.0.101 (11<101)

3. 后续版本信息不允许增加小数点,如:

1.0版本上线后,后续版本不可以出现1.0.1,否则会按非法版本号处理,将会强制提示更新1.0版本


3.6 附6:激活码领取错误码

状态码            说明            
21185激活码不得为空
21186发货失败
21187激活码不存在或不可用
21188激活码已过期
21189激活码未领取
21190激活码已使用
21191该用户已兑换过激活码
21192该设备已兑换过激活码
21193活动暂停中
21194激活码已经用完
21195网络异常
21196服务内部错误
21197传入的激活码有错误
21198传入的礼包ID有错误
21199用户未登录
21200兑换超过用户最大限制
21201游戏产品有误
21202策略关系不存在
21203联运渠道或推广渠道有误
21204推广渠道有误
21205机型组有误
21206语言有误
21207逻辑服策略不存在
21208逻辑服有误
23157礼包码未到生效时间