Android网游SDK接入说明

1.文档说明

1.1 功能描述

此文档主要是用于在游戏及应用开发商需要接入掌趣BASE SDK时,了解BASE SDK如何接入,接入过程中需注意的事项等。

1.2 阅读对象

接入掌趣BASE SDK的游戏及应用的android客户端开发者。

2.接入准备

服务端配置:请参考 通用接入文档—> 《SDK服务端接入说明文档》

3.特别说明

3.1 游戏版本命名

安卓包是指androidmainfest.xml中的versionName。

3.2 sdk支持的系统版本

掌趣sdk最低支持的系统版本是4.4.2, 即minSdkVersion建议设置成19。

3.3 渠道识别

在掌趣自动打包系统里,serviceId是区分渠道信息的标识,研发如果要识别当前游戏包属于哪个渠道,请调用获取serviceId的接口(13.2),并和技术经理匹配各serviceId对应的渠道。

3.4 游戏中接入第三方SDK

如果产品接入了第三方SDK,有需要根据包名、签名分配参数的情况,一定要提前通知技术经理。各个渠道包的包名、签名、证书等都不一样。自动打包将替换客户端包名、签名和证书。但不会自动替换第三方的参数。如地图、语音、推送能功能的第三方SDK。具体如何实现,需要根据具体情况操作。

4.接入BASE SDK注意事项

4.1 游戏res文件夹中资源文件命名注意事项

游戏res资源文件中,png及xml文件命名最好不好过于简单,以免和第三方渠道重复。如close.png或close.xml命名的文件,可以加上游戏名前缀,game_close.png或game_close.xml。

4.2 游戏必须接入掌趣 “用户中心”,“切换账号”,“注销”这三个接口

需要根据调用Ourpalm_GetEnableInterface这个接口的返回值来确认游戏是否需要启用这三个接口和相应的UI按钮展示,因为根据渠道不同会用到其中之一或者所有或者都不用,返回值详见Ourpalm_GetEnableInterface接口说明(6.2.7)。

4.3 游戏必须接入掌趣SDK与Activity生命周期相关的接口

  1. Ourpalm_Entry.getInstance(this).Ourpalm_onPause()
  2. Ourpalm_Entry.getInstance(this).Ourpalm_onRestart()
  3. Ourpalm_Entry.getInstance(this).Ourpalm_onResume()
  4. Ourpalm_Entry.getInstance(this).Ourpalm_onStart()
  5. Ourpalm_Entry.getInstance(this).Ourpalm_onStop()
  6. Ourpalm_Entry.getInstance(this).Ourpalm_onDestroy()
  7. Ourpalm_Entry.getInstance(this).Ourpalm_onActivityResult()
  8. Ourpalm_Entry.getInstance(this).Ourpalm_onConfigurationChanged()
  9. Ourpalm_Entry.getInstance(this).Ourpalm_onNewIntent()
  10. Ourpalm_Entry.getInstance(this).Ourpalm_onRequestPermissionsResult()

4.4 游戏接入用户隐私协议配置说明:

游戏客户端同学接入时,需要在游戏项目assets根目录下放置两个txt格式的协议文档,
ourpalm_protocol.txt 是隐私协议,ourpalm_user.txt是用户协议。
这两个协议文档和游戏发行资质有关,发行资质不同,协议内容也不一样,
具体协议文档请游戏运营同学联系掌趣技术中心技术支持团队。
另外,还需要在AndroidManifest.xml添加配置项,参见5.2.2AndroidManifest.xml必须配置项。

5.导入BASE SDK

5.1 res中资源和lib库的导入

方式一:游戏工程直接引用《Ourpalm_Android_SDK_Lib_Base_完整版本号》此lib工程,工程内已包含res中的资源和lib库,assets中资源,请自行从《资源,LIB库和配置文件》目录中复制assets文件夹中内容到游戏工程的assets目录。如何引用lib工程这里不做详细说明,如不清楚如何导入lib工程到游戏工程请上网搜索,或者咨询掌趣SDK技术人员。

方式二:直接从《资源,LIB库和配置文件》目录中复制所有资源和lib库到游戏工程的相应目录,包含res,libs,assets。

5.2 AndroidManifest.xml的配置

5.2.1 权限配置

  1. <!-- OurpalmSDK需要的权限 -->
  2. <uses-permission android:name="android.permission.INTERNET" >
  3. </uses-permission>
  4. <uses-permission android:name="android.permission.CHANGE_NETWORK_STATE" >
  5. </uses-permission>
  6. <uses-permission android:name="android.permission.CHANGE_WIFI_STATE" >
  7. </uses-permission>
  8. <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" >
  9. </uses-permission>
  10. <uses-permission android:name="android.permission.ACCESS_WIFI_STATE" >
  11. </uses-permission>
  12. <uses-permission android:name="android.permission.SYSTEM_ALERT_WINDOW" >
  13. </uses-permission>

5.2.2 其他必须配置项

  1. <!-- 用户隐私协议Activity,配置此Activity时,请将游戏原启动activity的android.intent.category.LAUNCHER修改为android.intent.category.DEFAULT, android:screenOrientation横竖屏配置可修改-->
  2. <activity
  3. android:name="ourpalm.android.account.prompt.Ourpalm_Prompt_Protocol_Activity"
  4. android:configChanges="orientation|keyboardHidden|screenSize|screenLayout"
  5. android:screenOrientation="landscape"
  6. android:theme="@android:style/Theme.NoTitleBar">
  7. <intent-filter>
  8. <action android:name="android.intent.action.MAIN" />
  9. <category android:name="android.intent.category.LAUNCHER" />
  10. </intent-filter>
  11. </activity>
  12. <!-- 客服反馈功能Activity -->
  13. <activity
  14. android:name="ourpalm.android.opservice.Ourpalm_OpService_Activity"
  15. android:configChanges="keyboardHidden|orientation|screenSize"
  16. android:theme="@android:style/Theme.Translucent.NoTitleBar" >
  17. </activity>
  18. <!-- 游戏自己的启动activity类名,需要完整路径,必须配置 -->
  19. <meta-data
  20. android:name="ourpalm_class_name"
  21. android:value="com.ourpalm.test_ourpalm_v3.Ourpalm_Demo_MainActivity" />
  22. <!-- 游戏请配置自己游戏的展示类型,竖屏游戏请配置成 portrait,横屏游戏请配置成landscape -->
  23. <meta-data
  24. android:name="ourpalm_screenOrientation"
  25. android:value="landscape" />
  26. <!-- BASE SDK中上传崩溃日志的服务 V3.2.1版本新增加 -->
  27. <service
  28. android:name="ourpalm.android.c.Ourpalm_CrashService"
  29. android:process=":ourpalmCrash" >
  30. <intent-filter>
  31. <action android:name="ourpalm.UpCrashLog" />
  32. </intent-filter>
  33. </service>

5.2.3 可选配置项

  1. <!--悬浮窗初始位置配置,1到6分别是左上 左中 左下 右上 右中 右下-->
  2. <meta-data
  3. android:name="ourplam_float_position"
  4. android:value="1" />
  5. <!-- 打开指定页面Activity V4.3.4版本新增加-->
  6. <activity
  7. android:name="ourpalm.android.view.Ourpalm_WebView_Activity"
  8. android:configChanges="keyboardHidden|orientation|screenSize"
  9. android:screenOrientation="sensor"
  10. android:theme="@android:style/Theme.Translucent.NoTitleBar" >
  11. </activity>

5.2.4 其他注意事项

  1. <!-- 如游戏本身有Application类,则需要在代码中继承
  2. ourpalm.android.channels.Info.Ourpalm_Channels_Application;如游戏本身没有
  3. Application类,则需要在此添加配置,将AndroidManifest.xml中application的名字
  4. 命名为"ourpalm.android.channels.Info.Ourpalm_Channels_Application" -->
  5. <application
  6. android:name="ourpalm.android.channels.Info.Ourpalm_Channels_Application"
  7. android:allowBackup="true"
  8. android:icon="@drawable/ic_launcher"
  9. android:label="@string/app_name"
  10. android:theme="@style/NoTitle_FullScreen" >
  11. </application>

注意:APK安装位置属性必须配置为android:installLocation=”auto”

6.注册/登录

6.1 流程介绍

注册登录流程图
1.手机游戏客户端会调用base sdk登录接口,发起登录/注册请求;
2.base sdk向掌趣用户中心服务器发起登录/注册的请求;
3.掌趣用户中心服务器向base sdk返回token、用户信息等等;
4.base sdk向游戏客户端返回登录结果,包含token和用户相关信息;
5.游戏客户端上传用户信息到游戏服务器;
6.游戏服务器根据token向掌趣用户中心服务器发起登录验证;
7.掌趣用户中心服务器向游戏服务器返回用户信息;
8.游戏服务器向游戏客户端返回登录结果;

6.2 接口介绍

6.2.1 sdk初始化接口

6.2.1.1 接口说明

游戏客户端必须在游戏主activity的onCreate生命周期接口中调用。

6.2.1.2 接口定义

  1. /**
  2. * 初始化SDK
  3. *
  4. * @param gameType
  5. * 游戏类型 1:网游;2:单机
  6. *
  7. * @param gameVer
  8. * 游戏版本号
  9. * @param gameResVer
  10. * 游戏资源版本号,无资源版本号可传""
  11. * @param listener
  12. * 回调接口
  13. */
  14. @SuppressLint("InlinedApi")
  15. public void Ourpalm_Init(String gameType, String gameVer,
  16. String gameResVer, Ourpalm_CallBackListener listener)

6.2.1.3 参数说明

参数名称 是否必传 类型 说明
gameType 必须 String 游戏类型,1表示网游,2表示单机。
gameVer 可选 String SDK优先读取AndroidManifest.xml里面的版本号,如未获取到则使用此参数。
gameResVer 可选 String 游戏资源版本号,如游戏无此概念则可以传null。
listener 必须 Ourpalm_CallBackListener 游戏需实现此回调中的所有接口。

6.2.1.4 接口示例

  1. // 初始化SDK
  2. Ourpalm_Entry.getInstance(this).Ourpalm_Init("1", gameVer, gameResVer, new Ourpalm_CallBackListener() {
  3. @Override
  4. public void Ourpalm_LogoutSuccess() {
  5. // TODO Auto-generated method stub
  6. // 当前渠道带有注销功能的话由游戏实现,如返回到登录界面。
  7. }
  8. @Override
  9. public void Ourpalm_LogoutFail(int code) {
  10. // TODO Auto-generated method stub
  11. // 当前渠道带有注销功能的话由游戏实现,一般情况不需要做处理。
  12. }
  13. @Override
  14. public void Ourpalm_LoginSuccess(String tokenId, String data) {
  15. // TODO Auto-generated method stub
  16. // 登录成功回调,必须实现其逻辑。
  17. }
  18. @Override
  19. public void Ourpalm_LoginFail(int code) {
  20. // TODO Auto-generated method stub
  21. // 登录失败回调,必须实现其逻辑。
  22. }
  23. @Override
  24. public void Ourpalm_InitSuccess() {
  25. // TODO Auto-generated method stub
  26. //SDK初始化成功。
  27. }
  28. @Override
  29. public void Ourpalm_InitFail(int code) {
  30. // TODO Auto-generated method stub
  31. // SDK初始化失败。
  32. }
  33. @Override
  34. public void Ourpalm_ExitGame() {
  35. // TODO Auto-generated method stub
  36. // 游戏使用掌趣SDK退出接口时必须实现此回调,在此处实现退出游戏的功能。
  37. MainActivity.this.finish();
  38. // 不建议在此回调中使用杀进程的方式,杀进程的方法可以放到生命周期的onDestroy中。
  39. }
  40. @Override
  41. public void Ourpalm_SwitchingAccount(boolean Success, String tokenId, String userInfo) {
  42. // TODO Auto-generated method stub
  43. // 当前渠道带有切换账号功能时,游戏需要实现此接口逻辑进行游戏登录。切换账号分2种情况:
  44. // 一是调用SDK的切换账号接口实现账号的切换,此类型的切换账号按钮是由游戏去实现,建议放到登录界面,切换账号成功后,登录数据会在此接口返回,游戏可执行游戏的登录流程,类似登录成功接口的回调。
  45. // 二是渠道SDK的悬浮框或者用户中心页面带有切换账号功能,如用户点击切换账号并登录成功后,登录数据会在此接口返回,但如果当前游戏场景处于游戏中,游戏正常应该先返回到登录界面,然后再通过SDK切换账号成功返回的数据执行游戏的登录流程。
  46. // Success=true表示切换成功,Success=false表示切换失败,tokenId和userInfo同登录成功接口。
  47. }
  48. @Override
  49. public void Ourpalm_PayInventorySuccess(String ssid, String pbid) {
  50. // TODO Auto-generated method stub
  51. // 此接口请忽略,不需要处理。
  52. }
  53. });

6.2.1.5 回调接口说明

  1. 登陆注销成功:public void Ourpalm_LogoutSuccess();
  2. 登陆注销失败:public void Ourpalm_LogoutFail(int code);
  3. 登陆成功:public void Ourpalm_LoginSuccess(String tokenId, String data);
  4. 登陆失败:public void Ourpalm_LoginFail(int code);
  5. 初始化成功:public void Ourpalm_InitSuccess();
  6. 初始化失败:public void Ourpalm_InitFail(int code);
  7. 退出游戏:public void Ourpalm_ExitGame();
  8. 切换账号:public void Ourpalm_SwitchingAccount(boolean Success,String tokenId, String userInfo);

以上接口中的code参数为状态码。

6.2.2 sdk登录接口

6.2.2.1 功能说明

1.联运包调起联运SDK的登录界面;
2.官网包调起掌趣官网登录界面;

6.2.2.2 接口定义

  1. /**
  2. * 登陆接口
  3. */
  4. public void Ourpalm_Login()

6.2.2.3 接口示例

  1. // 调用登录接口
  2. Ourpalm_Entry.getInstance(MainActivity.this).Ourpalm_Login();

6.2.2.4 登录成功回调接口

  1. @Override
  2. public void Ourpalm_LoginSuccess(String tokenId, String data)

此接口为初始化中回调接口之一。

6.2.2.5 登录成功回调接口参数说明

参数名称 重要性 类型 说明
tokenId 必须 String 掌趣用户中心返回的当前登录用户的tokenId,游戏客户需将此参数的值传给游戏服务器,游戏服务器需来掌趣用户中心进行登录验证,验证通过才能让用户进入游戏,详看服务器端登录验证接口。
data 必须 String 当前登录用户的用户信息数据。

6.2.2.6 登录成功返回数据说明

  1. tokenId == 96b32650291a7-4c0f-88f1-733ec09ba1b2, user data == {"userId":"0100010000000000000000000000000000170222","userPlatformId":"0001","userName":"mly012345678","palmId":"170222","nickName":"玩家170222","loginType":"phoneLogin","bindPhone":"1581124****","bindEmail":"","bindTokenId":"3d5c3d39-b34d-4d8d-b980-bfff643cf343","needBindPhone":"0","isLimit":"0","limitDesc":"","deviceId":"","loginTime":"2018-11-21 11:36:59","originalUserType":"common","currentUserType":"common","identityAuthStatus":"-1","identityAuthIdNum":"1****************6","identityAuthRealName":"孟**""status":"1","isAdult":"1"}

userId:掌趣用户中心生成的用户ID,游戏应以此ID作为用户登陆的唯一标识。
userName:掌趣用户中心生成的用户名称。
returnJson:第三方用户系统返回给掌趣用户中心的数据,不同渠道返回的数据会有所不同,游戏根据情况酌情使用,不需要的话可以不取。
loginType: 登录类型,具体值的含义请见下表
实名相关:
“status”: “1” 认证中, “2” 认证成功, “-1” 认证失败
“isAdult”: “0” 未成年, “1” 成年

loginType 含义
speedyLogin 快速登录
speedyRegister 快速注册
commonLogin 普通登录
commonRegister 普通注册
thirdHiddenLogin 第三方用户登录
thirdHiddenRegister 第三方用户注册
phoneVerifyCodeLogin 手机验证码登录
phoneVerifyCodeRegister 手机验证码注册
phoneLogin 手机登录
phoneRegister 手机注册

6.2.2.7 登录失败回调接口

  1. @Override
  2. public void Ourpalm_LoginFail(int code)

此接口为初始化中回调接口之一,code为状态码,详见状态码表(14)。

6.2.3 sdk登录注销接口

6.2.3.1 功能说明

注销当前登录账号,注销成功后会调用游戏实现功能后的注销回调接口。

6.2.3.2 接口定义

  1. /**
  2. * 登陆注销
  3. */
  4. public void Ourpalm_Logout()

6.2.3.3 接口示例

  1. Ourpalm_Entry.getInstance(MainActivity.this).Ourpalm_Logout();

6.2.3.4 注销成功回调接口

  1. @Override
  2. public void Ourpalm_LogoutSuccess()

此接口为初始化中回调接口之一,具体逻辑请游戏客户端实现。

6.2.4 sdk切换账号接口

6.2.4.1 功能说明

某些渠道SDK当登录过一次后下次登录会变成自动登录,这个时候如果SDK内部没有注销或者切换账号的按钮,需要游戏调用此接口实现账号切换功能。

6.2.4.2 接口定义

  1. /**
  2. * 账号切换
  3. */
  4. public void Ourpalm_SwitchAccount()

6.2.4.3 接口示例

  1. Ourpalm_Entry.getInstance(MainActivity.this).Ourpalm_SwitchAccount();

6.2.4.4 切换账号回调接口

  1. @Override
  2. public void Ourpalm_SwitchingAccount(boolean Success,
  3. String tokenId, String userInfo)

此接口为初始化中回调接口之一,具体逻辑请游戏客户端实现。

6.2.4.5 回调接口参数说明

参数名称 重要性 类型 说明
Success 必须 boolean true表示切换成功,false表示失败
tokenId 必须 String 掌趣用户中心返回的当前登录用户的tokenId,游戏客户需将此参数的值传给游戏服务器,游戏服务器需来掌趣用户中心进行登录验证,验证通过才能让用户进入游戏,详看服务器端登录验证接口。
userInfo 必须 String 当前登录用户的用户信息数据。

6.2.5 角色信息设置接口

6.2.5.1 功能说明

成功登录并进入游戏后,游戏客户端必须调用此接口设置用户的角色信息,角色信息在其他功能接口中需要用到,如未调用则无法使用支付功能。用户首次创建或注册角色并登录时,需要调用一次注册设置(type=1)和一次登录设置(type=2);用户使用老角色登录,则只需要调用一次登录设置(type=2)。

注意:
1.游戏内没有角色注册行为的,在游戏自动给用户创建角色的时候,即认为注册。
2.用户首次创建或注册角色并登录时,需先调用注册设置(type=1),再调用登录设置(type=2)。
3.第三方渠道角色升级时调用,其中type=3,注意type=3角色升级只支持新接渠道,具体哪些渠道支持请联系sdk平台技术。

6.2.5.2 接口定义

  1. /**
  2. * 设置游戏角色信息
  3. *
  4. * @param type
  5. * 1:角色注册,2:角色登陆,3:角色升级
  6. * @param gameservername
  7. * 当前角色所属服务器名称
  8. * @param gameserverid
  9. * 当前角色所属服务器ID(必须纯数字)
  10. * @param rolename
  11. * 当前角色名字(不支持富文本)
  12. * @param roleid
  13. * 当前角色ID(不可使用特殊符号)
  14. * @param rolelv
  15. * 当前角色等级,无等级可传""
  16. * @param roleviplv
  17. * 当前角色VIP等级,无VIP等级可传""
  18. *
  19. */
  20. public void Ourpalm_SetGameInfo(final int type,
  21. final String gameservername, final String gameserverid,
  22. final String rolename, final String roleid, final String rolelv,
  23. final String roleviplv)

6.2.5.3 参数说明

参数名称 重要性 类型 说明
type 必须 Int 1:角色注册,2:角色登陆 ,3:角色升级
gameservername 必须 String 当前角色所在游戏服务器名称
gameserverid 必须 String 当前角色所在游戏服务器ID (必须纯数字)
rolename 必须 String 角色名称 (不支持富文本)
roleId 必须 String 角色ID (不可使用特殊符号)
rolelv 必须 String 角色等级,无等级可传””
roleviplv 必须 String 角色VIP等级,无等级可传””

6.2.5.4 接口示例

  1. Ourpalm_Entry.getInstance(MainActivity.this).Ourpalm_SetGameInfo(1, ServerName,
  2. ServerId, rolename, roleid,RoleLv, RoleVipLv);

6.2.6 进入用户中心

6.2.6.1 功能说明

进入第三方渠道SDK的用户中心或者论坛界面,或者进入官网SDK的用户中心界面。

6.2.6.2 接口定义

  1. /**
  2. * 进入用户中心接口,如果是用官网登陆的则进入官网的用户中心
  3. */
  4. public void Ourpalm_GoCenter()

6.2.6.3 接口示例

  1. Ourpalm_Entry.getInstance(MainActivity.this).Ourpalm_GoCenter();

6.2.7 判断是否使用“登录注销”,“切换账号”,“用户中心”接口

6.2.7.1 功能说明

“用户中心”,“切换账号”,“登录注销”等接口必须接入。提供此接口用来引导游戏合理使用以上三个接口。根据SDK返回的值,判断是否在相应渠道客户端中显示或隐藏UI展示,以及和是否调用以上三个接口。
比如当前渠道需要调用用户中心接口,则需要将用户中心按钮显示出来并实现其接口调用的功能,如不需要,则需要隐藏用户中心的按钮。其他功能同理。
此三个功能SDK只提供功能接口,无UI显示,所以需要游戏实现展示或者隐藏“用户中心”,“切换账号”,“登录注销”的UI按钮。根据返回值给予显示或者隐藏。

6.2.7.2 接口定义

  1. /**
  2. * 获取当前渠道游戏包是否要调用“用户中心”,“切换账号”,“登陆注销”等接口
  3. */
  4. public String Ourpalm_GetEnableInterface()

6.2.7.3 接口示例

  1. String enable = Ourpalm_Entry.getInstance(MainActivity.this).Ourpalm_GetEnableInterface();
  2. Logs.i("info", "enable == " + enable);

返回数据如下,JSON格式:

  1. {"Logout":"Disabled","SwitchAccount":"Disabled","UserCenter":"Enabled"}

Enabled: 表示需要调用
Disabled: 表示不需要调用

例如以上返回数据说明:登陆注销接口不需要调用;切换账号接口不需要调用,进入用户中心接口需要调用。

7.充值/发货流程

7.1 流程介绍

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

7.2 接口介绍

7.2.1 支付接口

7.2.1.1 功能说明

调用自有支付功能或者第三方SDK的支付功能,实现游戏中的道具购买。
注意:
如游戏中所卖商品在游戏界面显示为“100元宝”,当调用支付接口时,商品名称请传“元宝”,商品数量请传“100”
如游戏中所卖商品在游戏界面显示为“月卡“,当调用支付接口时,商品名称请传“月卡”,商品数量请传“1”
如游戏中所卖“月卡”有多个,当调用支付接口时,商品名称建议传入月卡的金额。例如“30元月卡”、“50元月卡”等等,商品数量请传“1”
礼包类与月卡同理,请在商品名称尽量传入礼包对应的价格,例如:“30元礼包”,“50元礼包,商品数量请传“1”。
注意:掌趣官网包中支付宝等sdk支付方式,需要进行打包处理才可以支持。

7.2.1.2 接口定义

  1. /**
  2. *
  3. * @param propId
  4. * 游戏自定义的商品ID
  5. * @param chargeCash
  6. * 价格(以分为单位)
  7. * @param currencyType
  8. * 货币类型(1人民币2美元3日元4港币5英镑6新加坡币7越南盾8台币9韩元10泰铢)
  9. * @param propName
  10. * 商品名称
  11. * @param propCount
  12. * 商品数量
  13. * @param propDes
  14. * 商品描述
  15. * @param Gameurl
  16. * 游戏发货地址
  17. * @param ExtendParams
  18. * 扩展参数
  19. * @param callBack
  20. * 支付回调接口
  21. * @param rolelv
  22. * 角色等级
  23. * @param roleviplv
  24. * 角色VIP等级
  25. */
  26. public void Ourpalm_Pay(final String propId, final String chargeCash,
  27. final String currencyType, final String propName,
  28. final String propCount, final String propDes, final String Gameurl,
  29. final String ExtendParams, final Ourpalm_PaymentCallBack callBack,
  30. final String rolelv, final String roleviplv)

7.2.1.3 参数说明

参数名称 重要性 类型 说明
propId 必须 String 游戏自定义的商品ID,必传。
chargeCash 必须 String 商品价格,单位为分。
currencyType 必须 String 货币类型(1人民币2美元3日元4港币5英镑6新加坡币7越南盾8台币9韩元10泰铢)
propName 必须 String 商品名称
propCount 必须 String 商品数量
propDes 必须 String 商品描述
Gameurl 必须 String 游戏发放道具服务器地址,用户支付成功后掌趣计费中心会回调此地址告知游戏进行道具发放。
ExtendParams 可选 String 游戏自定义数据,支付成功后,计费中心会将此字段数据回传给游戏服务器。
callback 必须 Ourpalm_PaymentCallBack 客户端回调接口。
rolelv 必须 String 角色等级,请传数字,如游戏中无角色等级可以传null。
roleviplv 必须 String 角色VIP等级,请传数字,如游戏中无角色VIP等级可以传null。

currencyType说明:

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

7.2.1.4 接口示例

  1. Ourpalm_Entry.getInstance(this).Ourpalm_Pay("商品ID", "100", "1", "商品名称", "1", "商品描述", "回调地址", "我是扩展参数",
  2. new Ourpalm_PaymentCallBack() {
  3. @Override
  4. public void Ourpalm_PaymentSuccess(int code, String ssid, String pbid) {
  5. // TODO Auto-generated method stub
  6. Logs.i("info", "Ourpalm_PaymentSuccess ssid == " + ssid + " , pbid = " + pbid);
  7. Toast.makeText(mContext, "花钱成功了。。。*_*", Toast.LENGTH_SHORT).show();
  8. }
  9. @Override
  10. public void Ourpalm_PaymentFail(int code, String ssid, String pbid) {
  11. // TODO Auto-generated method stub
  12. Logs.i("info", "Ourpalm_PaymentFail code = " + code + "ssid == " + ssid + " , pbid = " + pbid);
  13. Toast.makeText(mContext, "支付失败了", Toast.LENGTH_SHORT).show();
  14. }
  15. @Override
  16. public void Ourpalm_OrderSuccess(int code, String ssid, String pbid) {
  17. // TODO Auto-generated method stub
  18. Toast.makeText(mContext, "下单成功了", Toast.LENGTH_SHORT).show();
  19. }
  20. }, RoleLv, RoleVipLv);

7.2.1.5 回调接口说明

支付成功:

  1. public void Ourpalm_PaymentSuccess(int code, String ssid, String pbid);

支付失败:

  1. public void Ourpalm_PaymentFail(int code, String ssid, String pbid);

下单成功:

  1. public void Ourpalm_OrderSuccess(int code, String ssid, String pbid)

注:”下单成功”表示当前订单已经成功提交,但用户是否进行支付,以计费中心服务器的 通知为准。 “下单成功”代表支付流程结束。”下单成功”回调触发以后不会在有 支付成功和支付失败的回调了,游戏需要根据服务器通知为准。

7.2.1.6 回调接口参数说明

参数名称 重要性 类型 说明
code 必须 Int 结果状态码。
ssid 必须 String 掌趣计费中心生成的订单号,支付失败或者用户取消支付时可能返回为空。
pbid 必须 String 游戏自定义商品ID。

注:1、Android端和iOS端返回错误码不一致。2、Android返回参数key为小写{String ssid, String pbid},iOS端返回json中的key为小驼峰{ “desc”:成功描述,”propId”:”道具ID”,”reset”:”120”,”ssId”:”订单号}

8.客服反馈相关

8.1 功能说明

游戏登录成功后,调用此接口,打开客服反馈界面。
游戏需要自己设计UI按钮,当用户点击此按钮时,调用接口,打开客服反馈界面。
可以通过客服回复查询接口查询是否有新的回复。

8.2 接口介绍

8.2.1 打开客服反馈接口

8.2.1.1 接口定义

  1. /**
  2. * 进入客服反馈页面
  3. */
  4. public void EnterServiceQuestion()

8.2.1.2 接口示例

  1. Ourpalm_OpService_Entry.getInstance().EnterServiceQuestion();

8.2.2 查询客服是否有新的回复接口

8.2.2.1 接口定义

  1. /**
  2. * 查看是否有新的问题回复
  3. * @param listener 回调接口
  4. */
  5. public void GetNewReplyInfo(final OurpalmOpServiceCallBack opServiceListener)

8.2.2.2 接口示例

  1. Ourpalm_OpService_Entry.getInstance().GetNewReplyInfo(new OurpalmOpServiceCallBack() {
  2. @Override
  3. public void Ourpalm_OpServiceResult(int resultcode) {
  4. // TODO Auto-generated method stub
  5. Logs.i("info", "GetNewReplyInfo Result ="+resultcode);
  6. if (resultcode == 0) {
  7. Toast.makeText(MainActivity.this, "您在客服提的问题有回复了,请查看",
  8. Toast.LENGTH_SHORT).show();
  9. Logs.i("info", "GetNewReplyInfo Success");
  10. } else if (resultcode == 1) {
  11. Logs.i("info", "GetNewReplyInfo fail");
  12. } else {
  13. Logs.i("info", "GetNewReplyInfo error");
  14. }
  15. }
  16. });

8.2.2.3 回调接口参数说明

参数名称 类型 说明
resultcode Int 0:有新的问题回复
1:没有新的问题回复
2:网络请求异常

9.礼包码兑换

9.1 功能说明

通过礼包码来兑换游戏中对应的礼包。

9.2 接口介绍

9.2.1 礼包码兑换接口

9.2.1.1 接口定义

  1. /**
  2. * 礼包码兑换接口
  3. *
  4. * @param GiftCode
  5. * 礼包码
  6. * @param url
  7. * 发货地址
  8. * @param extendParams
  9. * 扩展参数
  10. * @param mListener
  11. * 回调
  12. */
  13. public void Ourpalm_GiftExchange(String GiftCode, String url,
  14. final String extendParams,
  15. final Ourpalm_GiftExchangeCallBack mListener)

9.2.1.2 参数说明

参数名称 重要性 类型 说明
GiftCode 必须 String 发给玩家的礼包码
url 必须 String 兑换成功后,掌趣计费中心会通知此地址发货。(游戏服发货地址)
extendParams 可选 String 游戏透传参数,通知发货时会原样返回。
mListener 必须 Ourpalm_GiftExchangeCallBack 客户端回调接口。

9.2.1.3 接口示例

  1. Ourpalm_Entry.getInstance(Ourpalm_Entry_Model.mActivity).Ourpalm_GiftExchange("礼包码",
  2. "http://xxxxxxxxx/xxxxxxxx","透传参数",
  3. new Ourpalm_GiftExchangeCallBack() {
  4. @Override
  5. public void Ourpalm_Success(String packageId, String extendParams) {
  6. // TODO Auto-generated
  7. // method stub
  8. Toast.makeText(Ourpalm_Demo_MainActivity.mMainActivity, "兑换成功", Toast.LENGTH_SHORT).show();
  9. }
  10. @Override
  11. public void Ourpalm_Fail(int code) {
  12. // TODO Auto-generated
  13. // method stub
  14. Logs.i("info", " 礼包码 兑换失败 code = " + code);
  15. }
  16. });

9.2.1.4 回调接口说明

兑换成功:

  1. @Override
  2. public void Ourpalm_Success(String packageId, String extendParams)

packageId:礼包码归属的礼包ID。
extendParams:透传参数。

兑换失败:

  1. @Override
  2. public void Ourpalm_Fail(int code)

code:错误码。

10. 推送功能相关

10.1 功能说明

1、sdk初始化成功后,调用此接口,用于获取推送Token,
此接口成功回调中会返回推送Token,游戏客户端将这个值传给游戏服务端。
2、游戏服务端拿到推送token后(对应服务端的deviceUniqueId ),联系掌趣服务器端同学联调服务端推送功能即可。
3、支持信鸽本地推送。

10.2 接口介绍

10.2.1 获取推送token

10.2.1.1 接口定义

  1. /**
  2. * 获取推送token
  3. *
  4. * @param callbasck
  5. * 回调游戏推送token
  6. *
  7. * @author shuo 2017年5月17日 上午11:23:52
  8. */
  9. public void Ourpalm_GetPushToken(Ourpalm_PushCallBack callbasck)

10.2.1.2 接口示例

  1. // 获取推送token
  2. Ourpalm_Entry.getInstance(mMainActivity).Ourpalm_GetPushToken(new Ourpalm_PushCallBack() {
  3. @Override
  4. public void Success(String value) {
  5. // TODO Auto-generated method stub
  6. JSONObject pushJson;
  7. String PushToken = null;
  8. try {
  9. pushJson = new JSONObject(value);
  10. PushToken = pushJson.getString("pushtoken");
  11. } catch (JSONException e) {
  12. // TODO Auto-generated catch block
  13. e.printStackTrace();
  14. }
  15. Toast.makeText(mMainActivity, "推送token: " + PushToken, Toast.LENGTH_SHORT).show();
  16. }
  17. @Override
  18. public void Fail(String msg) {
  19. // TODO Auto-generated method stub
  20. Toast.makeText(mMainActivity, "推送获取失败 ", Toast.LENGTH_SHORT).show();
  21. }
  22. });

10.2.1.3 回调接口说明

获取成功:

  1. @Override
  2. public void Success(String value)

pushJson = new JSONObject(value);
PushToken = pushJson.getString(“pushtoken”);

获取失败:

  1. @Override
  2. public void Fail(String msg)

msg:错误原因。

10.2.2 信鸽本地推送(选接)

10.2.2.1接口说明

base包中,按照下面接口调用规范接入后,用打包工具二次打入信鸽推送sdk后,
测试信鸽本地推送功能。

10.2.2.1接口调用范例

  1. HashMap<String, Object> value = new HashMap<String, Object>();
  2. value.put("key", "sendLocalNotification");//本地推送key
  3. value.put("type", "1");//固定传1
  4. value.put("title", notititle);//推送标题
  5. value.put("content", notitcontent);//推送内容
  6. value.put("date", notidate);//触发日期(格式为:20180704)
  7. value.put("hour", notihour);//触发小时数(24小时制)
  8. value.put("min", notimin);//触发分钟数(05代表05分)
  9. Ourplam_Push_Entry.getInstance(MainActivity.mMainActivity).Channel_Spreads(value);
参数名称 参数类型 描述
key 固定参数 本地推送key
本接口为:sendLocalNotification
type 固定参数 固定传”1”
title 动态参数 本地推送标题
content 动态参数 本地推送内容
date 动态参数 触发日期(格式为:20180704)
hour 动态参数 触发小时数(24小时制)
min 动态参数 触发分钟数(05代表05分)

11. Activity生命周期相关接口的调用

11.1 功能说明

因为某些第三方SDK需要用到生命周期中的某些方法,所以游戏客户端Activity中必须调用掌趣SDK中定义的生命周期方法,否则可能会出现不可预估的问题。

11.2 接口介绍

11.2.1 onStart调用示例

  1. @Override
  2. protected void onStart() {
  3. // TODO Auto-generated method stub
  4. super.onStart();
  5. Logs.i("info", "onStart");
  6. Ourpalm_Entry.getInstance(this).Ourpalm_onStart();
  7. }

11.2.2 onRestart调用示例

  1. @Override
  2. protected void onRestart() {
  3. // TODO Auto-generated method stub
  4. super.onRestart();
  5. Logs.i("info", "onRestart");
  6. Ourpalm_Entry.getInstance(this).Ourpalm_onRestart();
  7. }

11.2.3 onResume调用示例

  1. @Override
  2. protected void onResume() {
  3. // TODO Auto-generated method stub
  4. super.onResume();
  5. Logs.i("info", "onResume");
  6. Ourpalm_Entry.getInstance(this).Ourpalm_onResume();
  7. }

11.2.4 onPause调用示例

  1. @Override
  2. protected void onPause() {
  3. // TODO Auto-generated method stub
  4. super.onPause();
  5. Logs.i("info", "onPause");
  6. Ourpalm_Entry.getInstance(this).Ourpalm_onPause();
  7. }

11.2.5 onStop调用示例

  1. @Override
  2. protected void onStop() {
  3. // TODO Auto-generated method stub
  4. super.onStop();
  5. Logs.i("info", "onStop");
  6. Ourpalm_Entry.getInstance(this).Ourpalm_onStop();
  7. }

11.2.6 onDestroy调用示例

  1. @Override
  2. protected void onDestroy() {
  3. // TODO Auto-generated method stub
  4. super.onDestroy();
  5. Logs.i("info", "onDestroy");
  6. Ourpalm_Entry.getInstance(this).Ourpalm_onDestroy();
  7. }

11.2.7 onActivityResult调用示例

  1. @Override
  2. protected void onActivityResult(int requestCode, int resultCode, Intent data) {
  3. // TODO Auto-generated method stub
  4. super.onActivityResult(requestCode, resultCode, data);
  5. Logs.i("info", "onActivityResult");
  6. Ourpalm_Entry.getInstance(this).Ourpalm_onActivityResult(requestCode, resultCode, data);
  7. }

11.2.8 onConfigurationChanged调用示例

  1. @Override
  2. public void onConfigurationChanged(Configuration newConfig) {
  3. // TODO Auto-generated method stub
  4. super.onConfigurationChanged(newConfig);
  5. Logs.i("info", "onConfigurationChanged");
  6. Ourpalm_Entry.getInstance(this).Ourpalm_onConfigurationChanged(newConfig);
  7. }

11.2.9 onNewIntent调用示例

  1. @Override
  2. protected void onNewIntent(Intent intent) {
  3. super.onNewIntent(intent);
  4. Logs.i("info","onNewIntent");
  5. Ourpalm_Entry.getInstance(MainActivity.this).Ourpalm_onNewIntent(intent);
  6. }

11.2.10 onSaveInstanceState调用示例

  1. @Override
  2. protected void onSaveInstanceState(Bundle outState) {
  3. // TODO Auto-generated method stub
  4. super.onSaveInstanceState(outState);
  5. Logs.i("info", "onSaveInstanceState");
  6. // 必须调用
  7. Ourpalm_Entry.getInstance(this).onSaveInstanceState(outState);
  8. }

11.2.11 onBackPressed调用示例

  1. @Override
  2. public void onBackPressed() {
  3. // TODO Auto-generated method stub
  4. super.onSaveInstanceState();
  5. Ourpalm_Entry.getInstance(this).Ourpalm_onBackPressed();
  6. }

11.2.12 attachBaseContext调用示例

  1. @Override
  2. protected void attachBaseContext(Context newBase) {
  3. // TODO Auto-generated method stub
  4. super.attachBaseContext(newBase);
  5. Ourpalm_Entry.getInstance(this).Ourpalm_attchBassContext(newBase);
  6. }

11.2.13 onRequestPermissionsResult调用示例

  1. public void onRequestPermissionsResult(int requestCode,
  2. String[] permissions, int[] grantResults)
  3. {
  4. super.onRequestPermissionsResult(requestCode, permissions, grantResults);
  5. Ourpalm_Entry.getInstance(MainActivity.this).Ourpalm_onRequestPermissionsResult(requestCode,
  6. permissions, grantResults);
  7. }

12.退出游戏

12.1 功能说明

调用第三方SDK的退出提示接口,如第三方SDK无退出提示接口则调用掌趣的退出提示界面或者直接退出游戏。

12.2 接口定义

  1. /**
  2. * 调用第三方SDK退出提示页面,如果第三方SDK无退出提示页面则调用掌趣提示页面
  3. *
  4. * @param usetip
  5. * 是否使用掌趣SDK的退出提示界面
  6. */
  7. public void Ourpalm_ExitGame(boolean usetip)

12.3接口示例

  1. @Override
  2. public boolean onKeyDown(int keyCode, KeyEvent event) {
  3. // TODO Auto-generated method stub
  4. if (keyCode == KeyEvent.KEYCODE_BACK) {
  5. Ourpalm_Entry.getInstance(this).Ourpalm_ExitGame(true);
  6. return true;
  7. }
  8. return super.onKeyDown(keyCode, event);
  9. }

13.其他接口

13.1 开启SDK日志输出

13.1.1 功能说明

打开后能在logcat看到SDK的日志输出,TAG为“info”和msg”, 用于游戏接入SDK的调试阶段,出正式游戏包时请务必关闭日志输出。

13.1.2 接口示例

  1. // 设置打开日志输出
  2. Ourpalm_Entry.getInstance(this).SetLogs(true);

true为打开,false为关闭。

13.2 获取ServiceId

13.2.1 功能说明

获取当前游戏包中的ServiceId。

13.2.2 接口示例

  1. Ourpalm_Entry.getInstance(this).getServiceId();

13.3 获取ChannelId

13.3.1 功能说明

获取当前游戏包中的ChannelId。

13.3.2 接口示例

  1. Ourpalm_Entry.getInstance(this).getChannelId();

13.4 获取DeviceGroupId

13.4.1 功能说明

获取当前游戏包中的DeviceGroupId。

13.4.2 接口示例

  1. Ourpalm_Entry.getInstance(this).getDeviceGroupId();

13.5 获取LocaleId

13.5.1 功能说明

获取当前游戏包中的LocaleId。

13.5.2 接口示例

  1. Ourpalm_Entry.getInstance(this).getLocaleId();

13.6 获取OpId

13.6.1 功能说明

获取当前游戏包中的OpId。

13.6.2 接口示例

  1. Ourpalm_Entry.getInstance(this).getOpId();

13.7 获取ServiceCode

13.7.1 功能说明

游戏服务端统计日志需要设置产品业务信息及设备信息,需要游戏客户端调用sdk的接口,获取ServiceCode(包含掌趣41位特征串及设备相关信息),具体接入流程如下:
1、接入前,游戏产品经理联系掌趣项目负责人配置 ourpalm.cfg,ourpalm.cfg文件放到assets根目录下。
2、如果游戏已接入掌趣base sdk,需要先调用base sdk初始化接口Ourpalm_Init后,再调用本接口获取ServiceCode,如果没有接入掌趣base sdk,直接调用本接口获取ServiceCode就行;
3、游戏客户端人员获取ServiceCode后,传给游戏服务器端,游戏服务端同学联系掌趣统计服务器端同学
联调服务端统计日志,获取ServiceCode接入工作正式完成。

13.7.2 参数说明

参数名称 重要性 类型 说明
gameResVer 可选 String 游戏资源版本号,如游戏无此概念则可以传””。

13.7.3 接口示例

  1. Ourpalm_ServiceCode_Entry.getInstance(this).Ourpalm_getServiceCode("");

13.8 打开指定页面(可用于论坛、社区、活动)

13.8.1 功能说明

打开指定url的web页面接口(可用于论坛、社区、活动)。

13.8.2 接口定义

  1. /**
  2. * 加载指定URL的Web页面
  3. *
  4. * @param webUrl
  5. * 页面URL
  6. *
  7. * @author lgc 2018年04月11日 上午11:17:52
  8. */
  9. public void Ourpalm_OpenSpecificWebView(String webUrl)

13.8.3 参数说明

参数名称 重要性 类型 说明
webUrl 必须 String web页面url

13.8.4 接口示例

  1. Ourpalm_Entry.getInstance(MainActivity.mMainActivity).
  2. Ourpalm_OpenSpecificWebView(
  3. "http://www.baidu.com");

13.9 手机端扫码登录

13.9.1 功能说明

1、手机端扫码功能暂时只支持官网渠道,需要先登录官网账号后再调用此接口。
2、接入时,需要先从sdk网站下载手机端扫码登录sdk,接入完成后需要和游戏PC端的扫码功能一起联调,
pc扫码接入方法请参考线上pc扫码接入文档。
3、AndroidManifest.xml中需配置如下内容:

  1. <!-- 扫码需要的配置信息 -->
  2. <uses-permission android:name="android.permission.VIBRATE" />
  3. <uses-permission android:name="android.permission.FLASHLIGHT" />
  4. <uses-permission android:name="android.permission.CAMERA" />
  5. <uses-feature
  6. android:name="android.hardware.camera.autofocus"
  7. android:required="false" />
  8. <uses-feature
  9. android:name="android.hardware.camera.flash"
  10. android:required="false" />
  11. <!-- 扫码登录Activity -->
  12. <activity
  13. android:name="ourpalm.qrcode.core.OurpalmScanActivity"
  14. android:configChanges="keyboardHidden|orientation|screenSize"
  15. android:theme="@android:style/Theme.Translucent.NoTitleBar" >
  16. </activity>
  17. <!-- 处理扫码登录Activity -->
  18. <activity
  19. android:name="ourpalm.android.qrcode.Ourpalm_QrCode_Activity"
  20. android:configChanges="keyboardHidden|orientation|screenSize"
  21. android:theme="@android:style/Theme.Translucent.NoTitleBar" >
  22. </activity>

13.9.2 接口示例

  1. Ourpalm_QrCode_Entry.getInstance().Ourpalm_QrCode_Login();

14.状态码表

14.1 SDK客户端状态码表

状态码 状态描述
-1 未知错误
-2 URL错误
-3 请求用户中心失败
-4 支付失败,其他错误
-5 无网络
-6 用户中心返回数据解析失败
0 初始化失败
10 登录错误,其他错误
11 登录取消
12 登录时,用户输入信息错误
13 登录验证错误
14 登录验证参数错误
15 获取系统用户名错误
17 第三方SDK登录错误,目前只针对华为
18 登录状态失效,目前只针对百度
20 账号注册错误,其他错误
21 账号注册错误,验证失败
22 注册时,用户输入信息格式错误
30 修改账号密码错误
31 修改密码参数错误
32 修改密码验证失败
33 找回密码参数错误
40 绑定账号错误
41 绑定账号错误,验证错误
42 绑定账号错误,参数错误
100 支付相关参数错误
101 支付成功
102 支付失败
103 支付取消
104 下单成功
105 下单失败
106 解析支付协议失败
107 当前支付方式不可用
111 兑换礼包码,礼包码未输入
112 兑换礼包码,发货地址为空
113 兑换礼包码,数据解析错误
401 用户中心绑定手机失败

14.2 服务器用户中心状态码表

用户中心错误码 信息
01010001 成功
01010002 次数已经达到上限,请12小时后再发送
01010003 该用户没有绑定手机
01010004 原密码不正确
01010005 没有找到该用户信息
01010006 令牌验证错误
01010007 验证码不正确
01010008 验证码超时
01010009 该用户已经绑定手机
01010010 用户昵称不存在
01010011 昵称已存在,请重新输入
01010012 该账号已存在
01010013 Email不存在,请重新输入Email
01010014 发送验证码失败
01010014 繁体-发送验证码失败
01010015 失败
01010016 邮箱验证失败
01010017 邮箱验证成功
01010018 密码修改失败
01010019 密码修改成功
01010020 昵称修改失败
01010021 昵称修改成功
01010022 手机验证码发送失败
01010023 手机验证码发送成功
01010024 发送未绑定手机验证码失败
01010025 发送未绑定手机验证码成功
01010026 用户绑定失败
01010027 用户绑定成功
01010028 手机绑定失败
01010029 手机绑定成功
01010030 邮箱绑定失败
01010031 邮箱绑定成功
01010032 手机验证码验证失败
01010033 手机验证码验证成功
01010034 重置密码失败
01010035 重置密码成功
01010036 获取用户信息失败
01010037 获取用户信息成功
01010038 该用户暂未绑定手机
01010039 该手机号已被绑定,请更换手机号
01010040 用户名不能是手机号
01010041 用户名不能是邮箱
01010043 邮箱绑定失败
01010044 密码修改失败,新密码与原密码相同
01010045 用户密码为空
01010046 登录密码不正确
01010047 手机解绑失败
01010048 第三方用户已绑定
01010049 账号为6-18位,数字、字母、”_”
01010050 密码为6-14位,数字、字母组合
01010051 该账号不存在
01010052 昵称不合法
01010053 接口参数不正确,请确认
01010054 输入的身份证号码格式有误
01010055 当前用户已做过验证
01010056 真实姓名格式有误
01010057 角色信息参数有误
01010058 参数不全或不完整
01010059 用户名未作更改
01010060 未获取到用户信息
01010061 游戏服Id不得为空
01010062 用户Id不能为空
01010063 产品接口未配置
01010064 调用查询角色接口出错
01010065 未查询到角色
01020001 成功
01020002 密码错误,请重试
01020003 密码错误,请重试
01020004 注册失败
01020005 失败
01020006 该账号已存在
01020007 账号为6-18位,数字、字母、”_”
01020008 限制登录
01020009 限制首登
01020010 限制初始化
01020011 当前玩家的手持设备的IP地址已经被游戏封停
01020012 玩家的手持设备已经被游戏封停
01020013 当前玩家账号已经被游戏封停
01020014 没有找到该用户信息
01020015 查询激活信息失败
01020016 激活的tokenId不正确
01020017 用户激活失败
01020018 激活码无效
01020019 密码为6-14位,数字、字母组合
01020020 请使用已激活的账号登录
01020021 激活码已经被使用
01020022 您已经激活过其他设备,不能在多台设备上激活
01020023 用户密码不能为空
01020024 该账号不存在
01020025 内测阶段,暂不支持第三方登录
01020026 您的账号存在安全隐患,请联系客服:4000688900
01020027 没有该用户信息
01020028 设备信息获取失败
01020029 验证码有误
01020030 验证码已过期
01020031 注册手机号不能为空
01020032 验证码不能为空
01020033 该手机号已被绑定,请更换手机号
01020034 登录失败,请使用账号密码重试!
01030000 心跳处理成功
01030001 心跳处理失败
01030002 sessionId为空
01030003 session已过期
01040000 成功
03010000 已经被激活
03010001 角色查询参数不全
03010002 参数不全
03010003 角色已注册
03010004 注册发生错误

14.3 服务器计费中心状态码表

计费 错误码 信息
21000 成功
21001 请求的json串格式不正确
21002 json对象格式不正确
21003 json字符串转换为对象错误
21004 道具格式不正确
21005 返回bean格式不正确
21006 没有筛出计费点
21007 驱动格式不正确
21099 全局异常错误
21100 common节点格式不正确
21101 options节点格式不正确
21102 common中interfaceId不能为空
21103 tokenId格式不正确
21104 serviceId格式不正确
21105 deviceGroupId格式不正确
21106 localeId格式不正确
21107 pCode格式不正确
21108 netSource格式不正确
21120 device格式不正确
21121 mac格式不正确
21122 手机号码错误
21123 发货地址格式不正确
21130 批价ID格式不正确
21131 道具ID格式不正确
21132 sdkVersion格式不正确
21133 userId格式不正确
21134 roleId格式不正确
21135 roleName格式不正确
21136 gameType格式不正确
21137 gameServerId格式不正确
21138 gameClientVersion格式不正确
21139 当前业务下没有该道具
21140 计费点ID格式不正确
21141 充值金额格式不正确
21142 货币类型格式不正确
21143 gameServerId在平台没有启用,需要在平台配置游戏服ID
21144 游戏产品不存在
21145 平台操作失败.
21146 请求报文头格式不正确
21147 手机平台ID格式不正确
21148 设备名称格式不正确
21149 设备系统版本号格式不正确
21150 设备分辨率格式不正确
21151 设备UDID格式不正确
21152 运营商格式不正确
21153 设备厂商格式不正确
21154 手机号格式不正确
21155 用户ID格式不正确
21156 代计费功能同步渠道异常
21157 超过用户日最大计费金额
21158 超过用户月最大计费金额
21159 黑名单用户
21160 充值失败
21161 超过计费点日最大计费金额
21162 超过计费点月最大计费金额
21163 道具名称不能为空
21164 通知发货成功
21165 计费失败
21166 等待支付结果
21167 指令错误
21168 已经订购,无需重复订购(包月)
21169 黑名单用户
21170 虚拟货币单位格式不正确
21171 虚拟货币数量格式不正确
21172 虚拟货币单位非法
21173 虚拟货币数量非法
21174 货币格式非法
21175 发货地址在mis上没有配置
21176 SDK同步_验签失败
21177 SDK同步_订单缓存不存在
21178 SDK同步_签名信息格式不正确
21179 官网_订单号格式不正确
21180 官网_订单缓存不存在
21181 官网_充值卡号格式不正确
21182 官网_充值卡类型格式不正确
21183 官网_充值卡密码格式不正确
21184 官网_银行类型格式不正确
21185 官网_计费点ID格式不正确
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 逻辑服有误
21209 已配置回调地址,sdk同步数据不予处理
21210 官网充值支付类型格式不正确
21211 官网充值支付校验类型格式不正确
21212 官网充值支付校验码格式不正确
21213 官网充值支付角色不存在
21214 官网_用户ID格式不正确
21215 官网_查询起始时间格式不正确
21216 官网_查询起结束时间式不正确
21217 官网_分页信息格式不正确
21218 官网_分页信息每页数量信息格式不正确
21219 官网_分页信息当前页参数格式不正确
21220 官网_分页信息当前日期范围不正确
21221 手机同步订单号和计费点ID不能同时为空
21222 游戏奖励活动不存在
21223 游戏奖励活动状态未开启
21224 不在游戏活动有效期
21225 用户已领取活动奖励
21226 未查询到玩家活动充值记录
21227 用户天兑换次数超出上限
21228 用户周兑换次数超出上限
21229 用户月兑换次数超出上限
23153 官网_第三方订单号不能为空
23152 官网_实际支付金额不能为空
23154 签名不能为空
23155 该笔订单已发货
23156 离线计费缓存为空
23157 礼包码未到生效时间
22000 app_product_id格式不正确
22050 cmcc_pay_code格式不正确
22100 googlePlay_pay_code格式不正确
22150 mmpaycode格式不正确
22200 世纪佳缘接口game_partner_id游戏合作ID格式不正确
22201 世纪佳缘接口game_jf_id游戏计费点编号格式不正确
22202 世纪佳缘接口game_id游戏id格式不正确
22203 世纪佳缘接口game_cost金额格式不正确
22204 世纪佳缘接口mobile充值手机号格式不正确
22205 世纪佳缘接口game_pay_type支付类型格式不正确
22206 世纪佳缘接口param短信上行自定义内容格式不正确
22207 世纪佳缘接口sign加密格式不正确
22208 世纪佳缘接口签名数据不符
22209 世纪佳缘接口game_partner_id与计费点上参数不符
22210 世纪佳缘接口game_jf_id与计费点上参数不符
22211 世纪佳缘接口game_id与计费点上参数不符
22212 世纪佳缘接口根据指令没有相关代计费配置
22250 根据指令没有相关代计费配置
22251 itemId_短信上行自定义内容格式不正确
22252 transactionId_内容格式不正确
22253 serviceId_内容格式不正确
22254 spId_内容格式不正确
22255 serviceType_内容格式不正确
22256 feeType_内容格式不正确
22257 serviceId与计费点上参数不符
22258 spId与计费点上参数不符
22259 serviceType与计费点上参数不符
22260 feeType与计费点上参数不符
22262 success_内容格式不正确
22263 checkcode_内容不正确
22304 联通时科外放接口Mobile充值手机号格式不正确
22305 联通时科外放接口sms_msg外放代码格式不正确
22306 联通时科外放接口ret计费结果格式不正确
22307 联通时科外放接口message计费错误信息格式不正确
22308 联通时科外放接口sec
22309 联通时科外放接口签名数据不符
22310 联通时科外放接口没有相关代计费配置
22311 联通时科外放接口传入订单号格式不正确
22354 微米外放接口mobile充值手机号格式不正确
22355 微米外放接口Price金额格式不正确
22356 微米外放接口ExData上行自定义内容格式不正确
22357 微米外放接口paramWIMIPOST上传的参数无效
22358 微米外放接口没有相关代计费配置
22359 微米外放接口【POST】-回传的XML报文未成功获取
22400 联动优势外放接口mobileId充值手机号码格式不正确
22401 联动优势外放接口goodsId短信上行商品号指令格式不正确
22402 联动优势外放接口没有相关代计费配置
22403 联动优势外放接口merId商户号格式不正确
22404 联动优势外放接口amtType货币类型格式不正确
22405 联动优势外放接口bankType货币类型格式不正确
22406 联动优势外放接口version版本号格式不正确
22407 联动优势外放接口sign签名格式不正确
22408 联动优势外放接口orderId商户订单号格式不正确
22409 联动优势外放接口merDate商户日期格式不正确
22410 联动优势外放接口payDate平台支付日期格式不正确
22411 联动优势外放接口amount商品金额格式不正确
22412 联动优势外放接口transType交易类型格式不正确
22413 联动优势外放接口settleDate账务清算日期格式不正确
22414 联动优势外放接口merPriv商户私有信息格式不正确
22415 联动优势外放接口retCode返回码格式不正确
22416 联动优势外放接口平台向用户下订单时签名验证不成功
22417 联动优势外放接口平台向用户同步信息时签名验证不成功
22418 联动优势外放接口平台向商户下订单金额超过当前计费点的实际金额
22419 联动优势外放接口当前计费点不满足计费限额,订单状态更新为异常。
22450 IVR外放接口没有相关代计费配置
22451 IVR外放接口开始计费时间格式不正确
22452 IVR外放接口结束计费时间格式不正确
22453 IVR外放接口呼叫号码格式不正确
22454 IVR外放接口被叫号码格式不正确
22455 IVR外放接口没有找到相关计费点配置
22500 Official官网SMS计费回调接口sign签名验证不通过
22501 Official官网SMS计费回调接口订单不存在
22550 downloadjoySDK计费回调接口result返回结果验证不通过
22551 downloadjoySDK计费回调接口money返回结果验证不通过
22512 downloadjoySDK计费回调接口mid返回结果验证不通过
22513 downloadjoySDK计费回调接口time返回结果验证不通过
22514 downloadjoySDK计费回调接口signature返回结果验证不通过
22515 downloadjoySDK计费回调接口ext返回结果验证不通过
22516 downloadjoySDK计费回调接口签名验证不通过
22600 duokuSDK计费回调接口amount返回结果验证不通过
22601 duokuSDK计费回调接口cardtype返回结果验证不通过
22602 duokuSDK计费回调接口orderId返回结果验证不通过
22603 duokuSDK计费回调接口result返回结果验证不通过
22604 duokuSDK计费回调接口timetamp返回结果验证不通过
22605 duokuSDK计费回调接口client_secret返回结果验证不通过
22606 duokuSDK计费回调接口签名验证不通过
22650 I4SDK计费回调接口amount返回结果验证不通过
22651 I4SDK计费回调接口order_id返回结果验证不通过
22652 I4SDK计费回调接口billno返回结果验证不通过
22653 I4SDK计费回调接口account返回结果验证不通过
22654 I4SDK计费回调接口status返回结果验证不通过
22655 I4SDK计费回调接口app_id返回结果验证不通过
22656 I4SDK计费回调接口role返回结果验证不通过
22657 I4SDK计费回调接口zone返回结果验证不通过
22658 I4SDK计费回调接口sign返回结果验证不通过
22659 I4SDK计费回调接口签名验证不通过
22700 本月已订购
22701 用户未登录
22702 手机号有误
22703 token不能为空
22704 计费点不能为空
22705 跳转地址不能为空
22706 该协议只支持短订单号指令,请检查配置是否正确
22750 安智回调接口第三方订单ID不存在
22751 安智回调接口订单金额不存在
22752 安智回调接口回调信息用户自定义参数不存在
22753 安智回调接口回传状态不存在
22754 安智回调接口实际支付金额不存在
22800 步步高下单失败
22801 步步高回调验签失败
22802 步步高回调支付失败
22850 获取access_token值返回错误
22851 下单失败
22900 签名错误
22901 支付状态错误
22902 支付状态错误
22950 上行内容格式不正确
22951 代计费配置错误
22952 手机号码格式不正确
22953 处理结果格式不正确
22954 流水号格式不正确
22955 上行号码格式不正确
23000 上行内容格式不正确
23001 产品内容格式不正确
23002 手机号码格式不正确
23003 流水号格式不正确
23004 签名格式不正确
23005 签名错误
23050 编码异常
23051 订单提交失败
23100 签名格式不正确
23101 签名错误
23102 交易状态格式不正确
23150 向盛付通下单失败
23151 字符编码异常
23201 facId格式不正确
23202 facMerId格式不正确
23203 cardId格式不正确
23204 oProjNo格式不正确
23205 cardKind格式不正确
23206 cardPoint格式不正确
23207 returnMsgNo格式不正确
23208 hash格式不正确
23209 hash验证错误
23210 facTradeSeq格式不正确
23211 tradeSeq格式不正确
23212 差异报表查询参数格式不正确
23213 FactorySeq格式不正确
23214 OTP格式不正确
23251 ERPC验证错误
26000 展示的错误信息
26001 orderId为空
24000 请求缺少相关参数
24001 userSign不能为空
24002 要添加的userSign个数超过设定容量
24003 userSign个数已超过设定容量
24004 userSign剩余容量不足以添加要添加数据
24005 userSign格式有误

15.渠道特殊接口

15.1 应用宝论坛接口

15.1.1 功能说明

此功能为应用宝渠道选接功能,是否接入需要商务先和应用宝商务沟通,普通产品无需接入。
接口接入方法:
游戏base包中,先判断渠道id,如果是应用宝渠道才需要展示应用宝论坛按钮,
点击按钮时调用此接口,接入完成后,需要用打包工具二次打包测试。

15.1.2 调用示例

  1. Ourpalm_Entry.getInstance(this).Ourpalm_Channel_Spreads("TencentBBS");

15.1.3 调用注意事项

1、此接口需要登录成功后调用。
2、根据应用宝要求,需要使用应用宝logo+”社区”字样。应用宝logo文件制作完成后,
需提交整个游戏页面的效果图供审核。功能才能使用。

应用宝原文档地址:
http://wiki.open.qq.com/index.php?title=%E7%A4%BE%E5%8C%BA%E6%8E%A5%E5%85%A5&oldid=46346

15.2 应用宝V+特权接口

15.2.1 功能说明

此功能为应用宝渠道选接功能,是否接入需要商务先和应用宝商务沟通,普通产品无需接入。
接口接入方法:
游戏base包中,先判断渠道id,如果是应用宝渠道才需要展示应用宝V+特权按钮,
点击按钮时调用此接口,接入完成后,需要用打包工具二次打包测试。

15.2.2 调用示例

  1. Ourpalm_Entry.getInstance(this).Ourpalm_Channel_Spreads("TencentVplayer");

15.2.3 调用注意事项

1、此接口需要登录成功后调用。
2、V+特权功能和应用宝社区论坛功能类似,需要使用应用宝logo+”V+特权”字样。应用宝logo文件制作完成后,
需提交整个游戏页面的效果图供审核。功能才能使用。

应用宝原文档地址(和应用宝论坛地址一样):
http://wiki.open.qq.com/index.php?title=%E7%A4%BE%E5%8C%BA%E6%8E%A5%E5%85%A5&oldid=46346

15.3 应用宝截图分享回调接口

15.3.1 功能说明

应用宝截图分享功能属于应用宝游戏内场景接入的一个子功能,
游戏内场景接入属于应用宝渠道选接功能,是否接入需要商务先和应用宝商务沟通,普通产品无需接入。
接入权限开通后,登录成功后,会出现sdk悬浮框按钮,进入点击截图即可分享游戏截图,
如果游戏需要通过分享结果决定是否发放奖励,需要接入此回调接口,否则不需要接入此回调接口。
接入完成后,需要用打包工具二次打包测试。

15.3.1 分享结果回调

  1. Ourpalm_Entry.getInstance(this).Ourpalm_SetSpreadsCallBack(new Ourpalm_SpreadsCallBack() {
  2. @Override
  3. public void Ourpalm_Spreads(String id, String... arg) {
  4. // TODO Auto-generated method stub
  5. if (id.equals("Tencent_ScreenCapturerShare")) {
  6. if (arg[0].equals("0")) {
  7. Toast.makeText(MainActivity.this, "应用宝分享成功",
  8. Toast.LENGTH_LONG).show();
  9. } else if (arg[0].equals("1")) {
  10. Toast.makeText(MainActivity.this, "应用宝分享失败",
  11. Toast.LENGTH_LONG).show();
  12. } else if (arg[0].equals("2")) {
  13. Toast.makeText(MainActivity.this, "应用宝分享取消",
  14. Toast.LENGTH_LONG).show();
  15. }
  16. } else if (id.equals("Tencent_SetScreenCapturer")) {
  17. Logs.i("info", "Tencent screen capturer image path =" + arg[0]);
  18. String screenPath = arg[0];
  19. saveScreenImageToSd(screenPath);
  20. }
  21. }
  22. });

15.3.2 接口参数说明

参数名称 类型 说明
id String 接口id: 判断是那个接口返回的回调
分享结果接口:Tencent_ScreenCapturerShare
游戏截图保存到指定存储路径接口:Tencent_SetScreenCapturer
arg[0] String 0 分享成功
1 分享失败,未知错误
2 分享失败,用户取消分享
接口id是Tencent_SetScreenCapturer时, 对应截图存储路径

15.3.3 调用注意事项

1、Tencent_SetScreenCapturer回调接口必须实现,游戏客户端需要根据各自游戏引擎实现截图功能,
将截图数据保存到sdk指定的jpg文件中。
2、如果游戏需要获取分享结果,需要实现Tencent_ScreenCapturerShare回调接口
3、应用宝游戏内场景接入原始文档地址 如下:
http://wiki.open.qq.com/wiki/%E6%B8%B8%E6%88%8F%E5%86%85%E5%9C%BA%E6%99%AF%E6%8E%A5%E5%85%A5

15.4 动网QQ互联购买QQ会员接口

15.4.1 功能说明

此功能为动网QQ互联渠道选接功能,是否接入需要商务先和动网运营同学沟通。

接口接入方法:
客户端:
游戏base包中,先判断渠道id,如果是动网QQ互联渠道,同时是QQ登录时,
才需要展示购买QQ会员按钮,点击按钮时调用此接口。
接入完成后,需要用打包工具二次打包测试。

注意,登录成功返回的数据中,loginUserType字段可以区分用户是优玩平台登录还是qq登录。
另附 QQ会员信息读取说明文档,这些信息在登录成功返回的数据中都有。

字段参数 说明
uid 用户ID
token 验证传递过来的token
loginUserType 登录用户类型(0:uwan平台; 1:qq用户)
is_qq_vip 标识是否QQ会员(0:不是; 1:是)
qq_vip_level QQ会员等级
is_qq_year_vip 标识是否为年费QQ会员(0:不是; 1:是)

服务端:
游戏内购买QQ会员支付成功后,动网服务端会通知游戏服务端支付成功,
游戏服务端进行响应礼包赠送。
需要游戏服务端提供回调url,具体回调参数文档请联系动网运营同学。

15.4.2 调用示例

  1. Ourpalm_Entry.getInstance(this).Ourpalm_Channel_Spreads("UwanBuyQQVip",
  2. "1", "svip", "1");

15.4.3 接口参数说明

参数名称 重要性 类型 说明
month 必须 String 购买会员月数
vip 必须 String 购买VIP类型(vip:QQ会员; svip:超级会员)
screenOrientation 必须 String 屏幕方向(0:横屏; 1:竖屏; 2:支持用户旋转屏幕)

15.4.4 调用注意事项

参数vip 购买VIP类型传什么值请咨询一下运营同学,一般传入 “svip”。

15.5 Oppo游戏中心社区接口

15.5.1 功能说明

此功能为Oppo渠道选接功能,是否接入需要商务先和Oppo商务沟通,普通产品无需接入。
接口接入方法:
游戏base包中,先判断渠道id,如果是Oppo渠道才需要展示Oppo社区按钮,
点击按钮时调用此接口,接入完成后,需要用打包工具二次打包测试。

15.5.2 调用示例

  1. Ourpalm_Entry.getInstance(this).Ourpalm_Channel_Spreads("OppoGetForumUr");

15.5.3 Oppo社区结果回调

  1. Ourpalm_Entry.getInstance(this).Ourpalm_SetSpreadsCallBack(
  2. new Ourpalm_SpreadsCallBack() {
  3. @Override
  4. public void Ourpalm_Spreads(String id,final String... arg) {
  5. if (id.equals("OppoGetForumUr")) {
  6. if (arg[0].equals("1")) {
  7. Toast.makeText(MainActivity.this, "oppo GetForumUr success",
  8. Toast.LENGTH_LONG).show();
  9. } else if (arg[0].equals("0")) {
  10. Toast.makeText(MainActivity.this, "oppo GetForumUr fail",
  11. Toast.LENGTH_LONG).show();
  12. }
  13. }
  14. }
  15. });

15.6 Oppo渠道判断是否从oppo游戏中心启动游戏

15.6.1 功能说明

此功能为Oppo渠道选接功能,是否接入需要商务先和Oppo商务沟通,普通产品无需接入。
接口接入方法:
游戏base包中,先判断渠道id,如果是Oppo渠道才需要调用此接口,接入完成后,需要用打包工具二次打包测试。

15.6.2 调用示例

  1. Ourpalm_Entry.getInstance(this).Ourpalm_Channel_Spreads("OppoIsFromGameCenter");

15.6.3 判断是否从oppo游戏中心启动游戏结果回调

  1. Ourpalm_Entry.getInstance(this).Ourpalm_SetSpreadsCallBack(
  2. new Ourpalm_SpreadsCallBack() {
  3. @Override
  4. public void Ourpalm_Spreads(String id,final String... arg) {
  5. if (id.equals("OppoIsFromGameCenter")) {
  6. if (arg[0].equals("1")) {
  7. Toast.makeText(MainActivity.this, "oppo OppoIsFromGameCenter success",
  8. Toast.LENGTH_LONG).show();
  9. } else if (arg[0].equals("0")) {
  10. Toast.makeText(MainActivity.this, "oppo OppoIsFromGameCenter fail",
  11. Toast.LENGTH_LONG).show();
  12. }
  13. }
  14. }
  15. });

15.7 Oppo渠道启动oppo游戏中心接口

15.7.1 功能说明

此功能为Oppo渠道选接功能,是否接入需要商务先和Oppo商务沟通,普通产品无需接入。
接口接入方法:
游戏base包中,先判断渠道id,如果是Oppo渠道才需要调用此接口,接入完成后,需要用打包工具二次打包测试。

15.7.2 调用示例

  1. Ourpalm_Entry.getInstance(this).Ourpalm_Channel_Spreads("OppoLaunchGameCenter");

15.8 游戏内手机号收集功能

15.8.1 检查当前账号是否已经绑定手机号

  1. //检查当前账号是否已经绑定手机号
  2. /**
  3. * 判断当前玩家是否绑定过手机号
  4. *
  5. * @param con
  6. * @param listener
  7. */
  8. public void isBindPhone(final Context con,
  9. Ourpalm_BindphoneCallBackListener listener)
  10. 调用示例:
  11. Ourpalm_BindPhone_Entry.getInstance().isBindPhone(MainActivity.this,
  12. new Ourpalm_BindphoneCallBackListener() {
  13. @Override
  14. public void callback(String result) {
  15. // TODO Auto-generated method stub
  16. Log.i("info", "isBindPhone result == " + result);
  17. }
  18. });

查询返回数据:isBindPhone result == {“data”:{“phoneNum”:”1581124XXXX”,”isCollected”:”1”},”errorCode”:”01020001”,”errorDesc”:”成功”,”status”:”1”}

注意:游戏只需要先判断status,status=1代表接口请求成功,status=其他数值代表接口请求失败;如请求成功请再判断isCollected,isCollected=1代表已收集过此用户手机号并绑定成功,isCollected=其他数值表示未收集过此用户的手机号。

15.8.2 发送验证码

  1. //发送验证码
  2. /**
  3. * 获取验证码接口
  4. *
  5. * @param con
  6. * @param phonenumber
  7. * @param listener
  8. */
  9. public void getVerifyCode(Context con, String phonenumber,
  10. Ourpalm_BindphoneCallBackListener listener)
  11. 调用示例:
  12. Ourpalm_BindPhone_Entry.getInstance().getVerifyCode(MainActivity.this,phonenumber,new Ourpalm_BindphoneCallBackListener() {
  13. @Override
  14. public void callback(String result) {
  15. // TODO
  16. // Auto-generated
  17. // method stub
  18. Log.i("info","getVerifyCode result == " + result);
  19. }
  20. });

发送验证码返回数据:getVerifyCode result == {“data”:{},”errorCode”:”01010025”,”errorDesc”:”发送未绑定手机验证码成功”,”status”:”1”}

注意:游戏只需要判断status,status=1代表发送成功,status=其他数值代表发送失败

15.8.3 收集手机号

  1. /收集手机号
  2. /**
  3. * 收集当前玩家的手机号
  4. *
  5. * @param con
  6. * @param phonenumber
  7. * @param verifycode
  8. * @param listener
  9. */
  10. public void collectUserPhoneNumber(Context con, String phonenumber,
  11. String verifycode, Ourpalm_BindphoneCallBackListener listener)
  12. 调用示例:
  13. Ourpalm_BindPhone_Entry.getInstance().collectUserPhoneNumber(MainActivity.this,phonenumber,verifycode,new Ourpalm_BindphoneCallBackListener() {
  14. @Override
  15. public void callback(
  16. String result) {
  17. // TODO
  18. // Auto-generated
  19. // method stub
  20. Log.i("info","collectUserPhoneNumber result == "
  21. + result);
  22. }
  23. });

收集手机号返回数据:collectUserPhoneNumber result == {“data”:{},”errorCode”:”01020001”,”errorDesc”:”成功”,”status”:”1”}

注意:游戏只需要判断status,status=1代表收集成功,status=其他数值代表收集失败

16 数数统计sdk接入说明

16.1 接入必读

数数统计sdk包及数数appid请联系掌趣BI张宇获取,
数数统计sdk提供的所有发送日志的接口都需要在掌趣SDK初始化之后调用。

16.2 AndroidManifest配置说明

  1. <meta-data
  2. android:name="cn.thinkingdata.android.MainProcessName"
  3. android:value="ourpalm_package_name" />
  4. <service
  5. android:name="cn.thinkingdata.android.TDQuitSafelyService$TDKeepAliveService"
  6. android:exported="false"
  7. android:stopWithTask="false" />
  8. <!-- 分配给游戏的数数appid,将appid填写到value -->
  9. <meta-data
  10. android:name="thinkingdata_appid"
  11. android:value="" />

16.3 获取数数DistinctId接口

  1. Ourpalm_ThinkingAnalytics_Entry.getDistinctId();

16.4 发送普通日志接口

  1. try {
  2. JSONObject properties = new JSONObject();
  3. properties.put("event1","value1");
  4. properties.put("event2","value2");
  5. properties.put("event3","value3");
  6. Ourpalm_ThinkingAnalytics_Entry.track("test_event", properties);
  7. } catch (JSONException e) {
  8. e.printStackTrace();
  9. }

16.5 发送带时长的日志接口

  1. 事件开始调用:
  2. Ourpalm_ThinkingAnalytics_Entry.timeEventStart("test_event");
  3. 事件结束调用:
  4. try {
  5. JSONObject properties = new JSONObject();
  6. properties.put("event1","value1");
  7. properties.put("event2","value2");
  8. properties.put("event3","value3");
  9. Ourpalm_ThinkingAnalytics_Entry.timeEventEnd("test_event", properties);
  10. } catch (JSONException e) {
  11. e.printStackTrace();
  12. }

16.6 设置accountid接口

accountid要求游戏服id和角色id用下划线拼接,serverid_roleid

  1. Ourpalm_ThinkingAnalytics_Entry.login(serverid_roleid);

16.7 清除accountid接口

  1. Ourpalm_ThinkingAnalytics_Entry.logout();

16.8 数数其它接口说明

如需使用其他接口,请参考数数SDK原始文档,
并通过Ourpalm_ThinkingAnalytics_Entry.getThinkingAnalyticsSDK()获取当前数数SDK的对象,再去调用其他接口。

原始文档地址:https://doc.thinkingdata.cn/ta-manual/latest/installation/installation_menu/client_sdk/android_sdk_installation/android_sdk_installation.html#%E4%B8%80%E3%80%81%E5%88%9D%E5%A7%8B%E5%8C%96-sdk