{{ errorTipText }}
此文档主要是用于在游戏及应用开发商需要接入掌趣SDK时,各个用户和计费相关的接口参考说明。
用于在游戏及应用开发商需要接入掌趣BASE SDK时,了解BASE SDK如何接入,接入过程中需注意的事项等。
此UnitySDK封装了多种设备平台的SDK,包括安卓、IOS、Windows等的SDK。并提供了统一的接口
开发环境:windows10 + DevEco Studio NEXT Developer Preview2。
鸿蒙sdk版本: 4.1.3.600
支持的项目类型: 原生鸿蒙应用、团结引擎(Unity)
其它类型的项目是否支持未经过确认,如遇到不支持的情况请反馈给我们。
接入掌趣sdk的鸿蒙平台游戏及应用的客户端开发者。
本文档主要阐述如何进行客户端sdk接入。登录的验证、充值的发货、礼包码的发货等,还需要按服务器接入文档的要求接入,处理平台的通知请求。
服务端接入:请参考 通用接入文档—> 《SDK服务端接入说明文档》
原生鸿蒙版SDK下载地址:掌趣SDK鸿蒙版
Unity项目(团结引擎)要接入鸿蒙版SDK,可以接Unity版,详见:Unity版海外通用接入说明
下载的sdk中包括了一个demo工程(ourpalm_demo_ohos)。
“ourpalm_demo_ohos\entry\libs”文件夹里有本sdk的har库,
“\ourpalm_demo_ohos\entry\src\main\resources\rawfile”文件夹里的ourpalm.cfg是demo渠道的配置文件,使用时注意替换成你们项目的。
游戏(应用)的应当有一个应用版本号和一个资源版本号,需要按要求设置。版本号会在sdk打点日志中记录。
需要在调用opsdk.Ourpalm_Init函数时,用initParams参数传入资源版本号和应用版本号。
在掌趣自动打包系统里,serviceId是区分渠道信息的标识,研发如果要识别当前游戏包属于哪个渠道,请调用获取serviceId的接口,并和技术经理匹配各个serviceId对应的渠道。
游戏需要调用GetEnableInterface这个接口,根据返回值来确认游戏是否需要启用这三个接口和相应的UI按钮展示。因为根据渠道不同会用到其中之一或者所有都不用。返回值详见GetEnableInterface接口说明。
//必须在入口EntryAbility的onWindowStageCreate函数中的windowStage.loadContent回调里调用setWindowStage接口opsdk.setWindowStage(windowStage);......//(可选接口)请在入口EntryAbility的onForeground函数中调用Ourpalm_onForeground接口.此接口的副作用是每次游戏从后台切换到前台,都会有华为账号登录提示.//此接口的功能是opsdk.Ourpalm_onForeground();//此处是unity版插件接入用的示例代码//在TuanjiePlayerAbilityIndex.ets中添加代码,为unity调用opsdk和opsdk回调unity设置桥接代码aboutToAppear() {NativeBridgeClass.SetupOpsdkModel("opsdk", opsdk);opsdk.SetGameEngineMessageListener(NativeBridgeClass.ListenerCallback);}
支付接口中的参数注意:
propName:商品名称(也可以理解为商品单位)。
propCount:商品数量。
注意:对该接口中的商品名称和商品数量2个参数具体说明。
如游戏中所卖商品在游戏界面显示为“100元宝或100金币”,当调用支付接口时,商品名称务必传“元宝或金币”,商品数量务必传“100”。切记不可商品名称传“100元宝或100金币”,商品数量传“1”;
如游戏中所卖商品在游戏界面显示为“月卡或礼包”一类,当调用支付接口时,商品名称请直接传“月卡或礼包”,商品数量传“1”。
切记 如果当前商品是某种虚拟游戏货币,商品名称中不要出现数量的概念。
将libs和rawfile文件夹放入原生鸿蒙项目中,添加好依赖。
其中,需要从gsc后台下载对应渠道的sdk配置文件,替换掉rawfile中的对应文件。
文件路径:“\entry\src\main\module.json5”
sdk集成华为账号登录功能,需要再此文件中配置渠道参数(从华为开发者后台获取):
"metadata": [ // 配置信息如下{"name": "client_id","value": "110491811"},{"name": "app_id","value": "5765880207853877411"},],
文件路径:“\entry\oh-package.json5”
添加依赖项:
"dependencies": {"ourpalm_sdk_ohos_mainland": "file:libs/ourpalm_sdk_ohos_mainland.har","@ohos/crypto-js": "file:./libs/crypto-js-2.0.3.har"}
可以视情况在“\entry\src\main\module.json5”中配置应用需要的权限。
本SDK需要的权限已经在“ourpalm_sdk_ohos_mainland.har”库中配置,一般不需要额外添加。
请在调用Prepare函数之前调用”设置回调函数接口”,用于接收sdk异步回调结果。
请参考demo工程中的代码实现自己的SdkCallback回调函数,处理sdk的回调
//设置sdk日志输出开关为开。传0则为关闭opsdk.Ourpalm_SetLogs(1);//设置回调接口函数opsdk.SetGameEngineMessageListener(this.SdkCallback);
初始化有两个阶段,分别是”Ourpalm_Prepare”和”Ourpalm_Init”接口。
这两个阶段可以传相同的参数。
游戏项目应当尽早的调用SDK的”Ourpalm_Prepare”接口,传入所需的可选参数,让sdk准备对应的数据、运行模式和资源等。
// 对应的Native函数原型public static void Ourpalm_Prepare(string jsonParams);
| 参数名称 | 是否必传 | 类型 | 说明 |
|---|---|---|---|
| gameVer | 必须 | String | 游戏程序版本号,例如:”1.0.0” |
| gameResVer | 必须 | String | 游戏资源版本号,例如:”1.0.0” |
| EnterServiceQuestionMode | 否 | string | 如果要使用系统浏览器打开客服页面,将此值设置为”use_system_browser”; 默认在应用内打开客服界面(使用webview). 当前支持平台: 鸿蒙 |
//准备初始化let initParams = JSON.stringify({gameVer: "1.0.0",gameResVer: "1.0.1",channel_name: "ohos",//EnterServiceQuestionMode: "use_system_browser" //可选参数,设置此参数后,客服界面将使用浏览器打开。});opsdk.Ourpalm_Prepare(initParams);opsdk.Ourpalm_Init(initParams);
SDK的日志内容可以通过回调事件发送给游戏项目,这样游戏项目就可以统一输出到日志文件中,自己查看sdk的日志,对问题进行初步的判断和处理.
这样可能导致这部分最终日志被输出两次,可以在初始化参数中增加开关,关闭sdk内部的输出,仅保留回调输出.
| 参数名称 | key-类型 | 说明 |
|---|---|---|
| MethodName | “Callback_SDK_Log” | 回调函数名 |
| jsonParams.success | string | 日志等级,”2”:info “1”:Warning “0”:Error |
| jsonParams.desc | string | 日志内容 |
应当在调用Ourpalm_Prepare之后调用初始化接口
只有在收到初始化回调后,才能调用其它接口,如登录和日志打点等。
/*** 初始化SDK(opsdk)**/public static void Ourpalm_Init(Hashtable initParams);// 对应的Native函数原型public static void Ourpalm_Init(string jsonParams);
| 参数名称 | 是否必传 | 类型 | 说明 |
|---|---|---|---|
| gameVer | 必须 | String | 游戏程序版本号,例如:”1.0.0” |
| gameResVer | 必须 | String | 游戏资源版本号,例如:”1.0.0” |
| EnterServiceQuestionMode | 否 | string | 如果要使用系统浏览器打开客服页面,将此值设置为”use_system_browser”; 默认在应用内打开客服界面(使用webview). 当前支持平台: 鸿蒙 |
// 初始化SDKopsdk.Ourpalm_Init(initParams);
| 参数名称 | key-类型 | 说明 |
|---|---|---|
| MethodName | “Callback_Ourpalm_Init” | 回调函数名 |
| jsonParams.success | string | 成功:”1”,失败:”0” |
| jsonParams.code | string | 结果状态说明 |
| jsonParams.desc | string | 描述 |

1 手机游戏客户端会调用掌趣sdk进行sdk初始化操作
2 掌趣sdk向掌趣用户中心服务器发起登录/注册的请求
3 掌趣用户中心服务器向掌趣sdk返回token、用户信息等等
4 掌趣sdk向游戏客户端返回登录结果,包含token和用户相关信息
5 游戏客户端上传用户信息到游戏服务器
6 服务器根据token向掌趣用户中心服务器获取用户信息
7 掌趣用户中心服务器向游戏服务器返回用户信息
8 游戏服务器向游戏客户端返回登录结果
调用第三方SDK的登陆功能。
当为官网包时会自动调用掌趣官网登陆界面。
/*** 登陆接口*/public static void Ourpalm_Login()
opsdk.Ourpalm_Login(1);
| 参数名称 | key-类型 | 说明 |
|---|---|---|
| MethodName | “Callback_Ourpalm_Login” | 回调函数名 |
| jsonParams.success | string | 成功:”1”,失败:”0” |
| jsonParams.code | string | 结果状态说明 |
| jsonParams.desc | string | 执行结果描述 |
| jsonParams.token | string | 掌趣用户中心生成的登录token,用于游戏服务器登录校验 |
| jsonParams.userId | string | 掌趣用户账号 |
| jsonParams.userName | string | 掌趣用户中心生成的用户名称 |
| jsonParams.loginType | string | 从用户中心返回的当前用户的状态,标识是注册还是登陆 |
| jsonParams.returnJson | string | 第三方用户系统返回给掌趣用户中心的数据,不同渠道返回的数据会有所不同,游戏根据情况酌情使用,不需要的话可以不取。 |
数据示例
jsonParams == {"success":"0","code":"%d","desc":"","token":"45bf7d3b-5041-451d-b660-b872ba4c831d",userId":"0101540000000000000000000000000623530796","userName":"oPlat000000001000047","loginType":"1","returnJson":{"ErrorCode":"1","ErrorDesc":"有效"}}userId:掌趣用户中心生成的用户ID,游戏应以此ID作为用户登陆的唯一标识。userName:掌趣用户中心生成的用户名称。loginType:从用户中心返回的当前用户的状态,标识是注册还是登陆returnJson:第三方用户系统返回给掌趣用户中心的数据,不同渠道返回的数据会有所不同,游戏根据情况酌情使用,不需要的话可以不取。
附表: 登录类型loginType的可能值
| 值 | 含义 |
|---|---|
| 0 | 是第三方平台注册 |
| 1 | 为官网注册 |
| 2 | 为快速注册 |
| 9 | 为其它平台登录 |
| 10 | 为官网登录 |
| 11 | 为快速登录 |
| speedyLogin | 快速登录 |
| speedyRegister | 快速注册 |
| commonLogin | 普通登录 |
| commonRegister | 普通注册 |
| phoneLogin | 手机登录 |
| phoneRegister | 手机注册 |
| thirdHiddenLogin | 第三方用户登录 |
| thirdHiddenRegister | 第三方用户注册 |
| phoneVerifyCodeLogin | 手机验证码登录 |
| phoneVerifyCodeRegister | 手机验证码注册 |
注销当前登陆账号,注销成功后会调用游戏实现功能后的注销回调接口。
客户端需要根据GetEnableInterface 返回值,判断是否需要在游戏应用内显示“注销”按钮和调用此接口
/*** 登陆注销*/public static void Ourpalm_Logout();
opsdk.Ourpalm_Logout();
| 参数名称 | key-类型 | 说明 |
|---|---|---|
| MethodName | “Callback_Ourpalm_Logout” | 回调函数名 |
| jsonParams.success | string | 成功:”1”,失败:”0” |
| jsonParams.code | string | 错误码 |
| jsonParams.desc | string | 执行结果描述 |
某些渠道SDK当登陆过一次后下次登陆会变成自动登陆,这个时候如果SDK内部没有注销或者切换账号的按钮,需要游戏调用此接口实现账号切换功能。
客户端需要根据Ourpalm_GetEnableInterface 返回值,判断是否需要在游戏应用内显示“切换账号”按钮和调用此接口
/*** 账号切换*/public static void Ourpalm_SwitchAccount();
opsdk.Ourpalm_SwitchAccount();
| 参数名称 | key-类型 | 说明 |
|---|---|---|
| MethodName | “Callback_SwitchingAccount” | 回调函数名 |
| jsonParams.success | string | 成功:”1”,失败:”0” |
| jsonParams.code | string | 错误码 |
| jsonParams.desc | string | 执行结果描述 |
| jsonParams.token | string | 掌趣用户中心生成的登录token |
| jsonParams.userId | string | 掌趣用户账号 |
| jsonParams.userName | string | 掌趣用户中心生成的用户名称 |
| jsonParams.loginType | string | 从用户中心返回的当前用户的状态,标识是注册还是登陆 |
| jsonParams.returnJson | string | 第三方用户系统返回给掌趣用户中心的数据,不同渠道返回的数据会有所不同,游戏根据情况酌情使用,不需要的话可以不取。 |
只有关联华为账号登录的账号才能调用此接口解除绑定,解绑成功后会回调解绑成功,建议游戏收到此回调后返回游戏登录主界面,此时再调用登录接口会拉起联合登录面板,允许玩家重新选择游戏的登录方式。
注意:可以通过解析登录回调接口返回的jsonParams.returnJson,要是returnJson有”teamPlayerAcct”字段,即是关联华为账号登录,此时可以调用此接口。
否则是迁移的之前华为android渠道的账号登录,此时不能调用此接口。
/*** 登陆注销*/public static void Ourpalm_UnBindAccount();
opsdk.Ourpalm_UnBindAccount();
| 参数名称 | key-类型 | 说明 |
|---|---|---|
| MethodName | “Callback_UnBindAccount” | 回调函数名 |
| jsonParams.success | string | 成功:”1”,失败:”0” |
| jsonParams.code | string | 错误码 |
成功登录并进入游戏后,游戏客户端必须调用此接口设置用户的角色信息,角色信息在其他功能接口中需要用到,如未调用则无法使用支付功能。用户首次创建或注册角色并登录时,需要调用一次注册设置(type=1)和一次登录设置(type=2);用户使用老角色登录,则只需要调用一次登录设置(type=2)。
注意:
1.游戏内没有角色注册行为的,在游戏自动给用户创建角色的时候,即认为注册。
2.用户首次创建或注册角色并登录时,需先调用注册设置(type=1),再调用登录设置(type=2)
/*** 设置游戏角色信息* @param type* 0:仅更新sdk内缓存数据,1:角色注册,2:角色登录* @param jsonParams* json字符串,包含角色信息*/public void Ourpalm_SetGameInfo(int type, string jsonParams);
//角色创建和登录let gameInfoJson = JSON.stringify({serverID : "1",roleID : "1",roleName : "rname",rolelv : "1",roleviplv : "0",gameServerName : "1",});//设置其它字段并传给opsdkif ((json.loginType as string).endsWith("Register"))opsdk.Ourpalm_SetGameInfo(1, gameInfoJson); //传入角色信息,opsdk发送打点日志opsdk.Ourpalm_SetGameInfo(2, gameInfoJson); //传入角色信息,opsdk发送打点日志
| 参数名称 | 重要性 | 类型 | 说明 |
|---|---|---|---|
| type | 必须 | int | 1表示角色注册,2表示角色登录 |
| extendParams.gameServerName | 必须 | String | 当前用户所在游戏服务器名称 |
| extendParams.serverID | 必须 | String | 当前用户所在游戏服务器ID(必须纯数字) |
| extendParams.roleName | 必须 | String | 当前角色名称(不支持富文本) |
| extendParams.roleId | 必须 | String | 当前角色ID(不可使用特殊符号) |
| extendParams.rolelv | 必须 | String | 当前角色等级,如无可传”” |
| extendParams.roleviplv | 必须 | String | 当前角色VIP等级,如无可传”” |

1 base sdk向掌趣计费中心发起支付请求;
2 掌趣计费中心生成订单号,并向base sdk返回支付结果;
3 掌趣计费中心通知游戏服务器发货;
4 游戏服务器发送虚拟物品至玩家手机游戏客户端;
5 游戏服务器向计费中心返回发货结果;
调用自有支付功能或者第三方SDK的支付功能,实现游戏中的道具购买。
注意:对该接口中的商品名称和商品数量2个参数具体说明,如游戏中所卖商品在游戏界面显示为“100元宝”,当调用支付接口时,商品名称请传“元宝”,商品数量请传“100”,切记不可商品名称传“100元宝”,商品数量传“1”。
/*调用自有支付功能或者第三方SDK的支付功能,实现游戏中的道具购买。注意:如游戏中所卖商品在游戏界面显示为“100元宝”,当调用支付接口时,商品名称请传“元宝”,商品数量请传“100”如游戏中所卖商品在游戏界面显示为“月卡“,当调用支付接口时,商品名称请传“月卡”,商品数量请传“1”如游戏中所卖“月卡”有多个,当调用支付接口时,商品名称建议传入月卡的金额。例如“30元月卡”、“50元月卡”等等,商品数量请传“1”礼包类与月卡同理,请在商品名称尽量传入礼包对应的价格,例如:“30元礼包”,“50元礼包,商品数量请传“1”。注意:掌趣官网包中支付宝等sdk支付方式,需要进行打包处理才可以支持。*/public static void Ourpalm_Pay(string propId, string chargeCash, string currencyType, string propName, string propCount,string propDes, string Gameurl, string jsonExtendParams);
注:比旧版本新增的 userId、serverId、roleId等参数
| 参数名称 | 重要性 | 类型 | 说明 |
|---|---|---|---|
| propId | 必须 | String | 游戏自定义的道具ID 必传。 |
| chargeCash | 必须 | String | 道具价格,单位为分。 |
| currencyType | 必须 | String | 货币类型(1人民币2美元3日元4港币5英镑6新加坡币7越南盾8台币9韩元) |
| propName | 必须 | String | 道具名称 |
| propCount | 必须 | String | 道具数量 |
| propDes | 必须 | String | 道具描述 |
| Gameurl | 必须 | String | 游戏发放道具服务器地址,用户支付成功后掌趣计费中心会回调此地址告知游戏进行道具发放。 |
| jsonExtendParams.userId | 必须 | String | 掌趣SDK登录成功后返回的userId |
| jsonExtendParams.roleId | 必须 | String | 玩家角色id |
| jsonExtendParams.rolelv | 必须 | String | 角色等级,请传数字,如游戏中无角色等级可以传null |
| jsonExtendParams.serverId | 必须 | String | 玩家登录的游戏服id |
| jsonExtendParams.gameServerName | 必须 | String | 玩家登录的游戏服务器名 |
| jsonExtendParams.roleviplv | 必须 | String | 角色VIP等级,请传数字,如游戏中无角色VIP等级可以传null |
| jsonExtendParams.Params | 可选 | String | 游戏自定义数据,支付成功后,计费中心会将此字段数据回传给游戏服务器。 |
| jsonExtendParams.purchaseinfo | 可选 | String | 买量BI要求的自定义数据,json字符串,需要携带礼包ID、研发生成的付费会话唯一ID、研发订单ID等,事例: |
{\”order_funnel_id\”:\”研发生成的付费会话唯一id\”,\”package_id\”:\”礼包id\”,\”dev_order_id\”:\”研发订单id\”}
或者{\”order_funnel_id\”:\”95b49366-acb8-41a1-ba94-5577bd362074\”,\”package_id\”:\”200279\”,\”dev_order_id\”:\”36291\”}|
string propId = productId; //商品IDstring chargeCash = amount; //价格(以分为单位)let extendParams:Record<string, Object> = {};extendParams["serverID"] = 1; //服务器idextendParams["roleID"] = "200000001"; //角色idextendParams["rolelv"] = "100"; //角色等级extendParams["roleviplv"] = "1"; //vip等级extendParams["roleName"] = "rname"; //角色名extendParams["gameServerName"] = "s1"; //区服名extendParams["Params"] = "s1333333220"; //订单号let extendParamsStr = JSON.stringify(extendParams);opsdk.Ourpalm_Pay(propId, chargeCash, "1", "propName", "1", "des", "url", extendParamsStr);
| 参数名称 | key-类型 | 说明 |
|---|---|---|
| MethodName | “Callback_Ourpalm_Pay” | 回调函数名 |
| jsonParams.success | string | 成功:”1”,失败:”0” |
| jsonParams.code | string | 错误码 |
| jsonParams.ssid | string | 掌趣计费中心生成的订单号,如支付失败或者用户取消支付时可能返回为空。 |
| jsonParams.channelOrderId | string | 渠道订单号 |
| jsonParams.pdid | string | 游戏传入的商品id |
游戏登录成功后,可以调用此接口,打开客服反馈页面
游戏需要提供功能的入口按钮,当用户点击此按钮时,调用接口,打开客服反馈页面。
/// <summary>/// 打开客服界面/// </summary>public static void Ourpalm_EnterServiceQuestion();
opsdk.Ourpalm_EnterServiceQuestion();
兑换礼包码
CP接入礼包码功能时,由SDK来直接提示错误提示语。
/// <summary>/// 礼包码兑换/// 此接口中需要的服务器和角色数据,必须提前使用SetGameInfo接口提供这些数据/// </summary>public static void Ourpalm_GiftExchange(string giftCode, string deleverUrl, string extendParams);
| 参数名称 | 重要性 | 类型 | 说明 |
|---|---|---|---|
| GiftCode | 必须 | String | 礼包码 |
| url | 必须 | String | 游戏发货服务器地址 |
| extendParams | 可选 | String | 透传参数,成功回调内,将会返回此参数 |
opsdk.Ourpalm_GiftExchange("用户输入的礼包码","游戏发货服务器地址","透传参数");opsdk.Ourpalm_GiftExchange("84K82JAUT4Q39M", "https://hi-login-test.tmskapp.com/pay/ourpalmlibaomazhuanfa.php?param=giftCode", "dd");
| key | key-类型 | |
|---|---|---|
| MethodName | “Callback_GiftExchange” | 回调函数名 |
| jsonParams.success | string | 成功:”1”,失败:”0” |
| jsonParams.code | string | 错误码 |
| jsonParams.packageId | string | 礼包码 |
| jsonParams.extendParams | string | 透传参数 |
删除账号
//注销账号public static void Ourpalm_CloseAccountWithUserInfo(string accountjson);
| 参数名称 | 重要性 | 类型 | 说明 |
|---|---|---|---|
| accountjson | 可选 | String | 扩展参数 |
opsdk.Ourpalm_CloseAccountWithUserInfo("");
| key | key-类型 | |
|---|---|---|
| MethodName | “Callback_CloseAccountWithUserInfo” | 回调函数名 |
| jsonParams.success | string | 成功:”1”,失败:”0” |
| jsonParams.code | string | 错误码 |
| jsonParams.desc | string | 结果状态说明 |
用户在SDK的用户中心界面操作,可以为当前账号绑定其它登录方式(账号)。比如Google、Facebook、邮箱等。
| key | key-类型 | |
|---|---|---|
| MethodName | “Callback_Ourpalm_AccountBind” | 回调函数名 |
| jsonParams.success | string | 成功:”1”,失败:”0”,取消:”2” |
| jsonParams.code | string | 错误码 |
| jsonParams.desc | string | 结果状态说明 |
| jsonParams.userId | string | 掌趣userid,成功时才有此字段 |
| jsonParams.bindType | string | 绑定类型,成功时才有此字段,可能的值: “google”, “facebook”, “vk”, “twitter”, “email”及“account” |
| jsonParams.bindPlatformJson | string | 此绑定方式可提供的额外数据,成功时才有此字段 |
不同绑定类型,bindPlatformJson对应参数值,范例如下:
facebook范例:{"token_for_business":"AbwRsy594dBTNzKJ","name":"指针","picture":{"data":{"height":600,"is_silhouette":false,"url":"https:\/\/platform-lookaside.fbsbx.com\/platform\/profilepic\/?asid=1801576980023900&gaming_photo_type=unified_picture&ext=1639723523&hash=AeSpx1PW3H4p6XbHTs4","width":600}},"id":"1801576980023900","originalProductUserId":"1801576980023900"}google 范例:{"uid":"116113243026395000456","name":"刘利男"}twitter 范例:{"userId":"1438080497515515908","name":"leecm","screen_name":"leecm_test"}vk 范例:没有返回用户名字,注意判断{"accessToken":"..."}email 范例:{"name":"liguangcai@ourpalm.com"}account 范例:{"name":"luginsssass"}
“用户中心”,“切换账号”,“登录注销”等接口必须接入。
提供此接口用来引导游戏合理使用以上三个接口。根据SDK返回的值,判断是否在相应渠道客户端中显示或隐藏UI展示,以及和是否调用以上三个接口。
比如当前渠道需要调用用户中心接口,则需要将用户中心按钮显示出来并实现其接口调用的功能,如不需要,则需要隐藏用户中心的按钮。其他功能同理。
此三个功能SDK只提供功能接口,无UI显示,所以需要游戏实现展示或者隐藏“用户中心”,“切换账号”,“登录注销”的UI按钮。根据返回值给予显示或者隐藏。
/*** 获取当前渠道游戏包是否要调用“用户中心”,“切换账号”,“登陆注销”等接口*/public static String Ourpalm_GetEnableInterface();
string json = opsdk.Ourpalm_GetEnableInterface();Debug.Log($"获取用户接口支持情况,json={json}");
{"Logout":"Disabled","SwitchAccount":"Disabled","UserCenter":"Enabled"}Enabled: 表示需要调用Disabled: 表示不需要调用例如以上返回数据说明:登陆注销接口不需要调用;切换账号接口不需要调用,进入用户中心接口需要调用。
进入第三方渠道SDK的用户中心或者论坛界面,或者进入官网SDK的用户中心界面。
客户端调用,根据第三方渠道SDK要求来决定是否调用
/// <summary>/// 进入用户中心/// </summary>public static void Ourpalm_GoCenter();
opsdk.Ourpalm_GoCenter();
调用第三方SDK的退出提示接口,如第三方SDK无退出提示接口则调用掌趣的退出 提示界面或者直接退出游戏。
/*** 调用第三方SDK退出提示页面,如果第三方SDK无退出提示页面则调用掌趣提示页面* @param tips* 是否使用掌趣SDK的退出提示界面*/public void Ourpalm_ExitGame(int tips)
| 参数名称 | 重要性 | 类型 | 说明 |
|---|---|---|---|
| tips | 必须 | int | 0 显示退出提示,1 不显示 决定是否使用掌趣SDK自带的退出提示界面, 如果第三方SDK带有退出提示界面,此参数无效 |
opsdk.Ourpalm_ExitGame(0);
调用Ourpalm_ExitGame时,sdk会弹退出弹窗,玩家在退出弹窗点确认时,会返回退出回调
| 参数名称 | key-类型 | 说明 |
|---|---|---|
| MethodName | “Callback_ExitGame” | 回调函数名 |
| jsonParams.code | string | 结果状态说明 |
| jsonParams.reason | string | |
| jsonParams.message | string |
打开后能在logcat看到SDK的日志输出,TAG为“info”和”msg”, 用于游戏接入SDK的调试阶段,出正式游戏包时请务必关闭日志输出。
/*** 是否打开日志* @param log 是否打开日志输出*/public void Ourpalm_SetLogs(int openlog)
| 参数名称 | 重要性 | 类型 | 说明 |
|---|---|---|---|
| open | 必须 | int | 是否打开日志输出,0 关闭,2 打开 |
// 设置打开日志输出opsdk.Ourpalm_SetLogs(1);
获取当前游戏包中的ServiceId。
//获取 ServiceIdpublic static string Ourpalm_GetServiceId()
string data = opsdk.Ourpalm_GetServiceId();
获取当前游戏包内打入的渠道ID。
//获取 ChannelIdpublic static string Ourpalm_GetChannelId()
string data = opsdk.Ourpalm_GetChannelId();
获取当前游戏包内打入的机型组ID。
//获取 DeviceGroupIdpublic static string Ourpalm_GetDeviceGroupId()
opsdk.Ourpalm_GetDeviceGroupId();
获取当前游戏包内打入的语言ID。
//获取 LocaleIdpublic static string Ourpalm_GetLocaleId()
string data = opsdk.Ourpalm_GetLocaleId();
获取当前游戏包内打入的OPID。
//获取 OpIdpublic static string Ourpalm_GetOpId()
string data = opsdk.Ourpalm_GetOpId();
1.需要先调用初始化接口Ourpalm_Init后 再调用 本接口获取 ServiceCode;
2.游戏研发人员 获取ServiceCode后,联系掌趣服务器端同学联调服务端日志,获取ServiceCode接入工作正式完成。
//获取 ServiceCodepublic static string Ourpalm_GetServiceCode()
string data = opsdk.Ourpalm_GetServiceCode();
不同的平台和渠道会有很多特殊需求,我们使用Ourpalm_Channel_Spreads接口来提供这些自定义功能。
/// <summary>/// 特殊功能扩展接口/// </summary>/// <param name="key"></param>/// <param name="jsonExtendParams"></param>public static string Ourpalm_Channel_Spreads(string id, string jsonExtendParams)
参数说明:
| 参数名称 | 重要性 | 类型 | 说明 |
|---|---|---|---|
| id | 必传 | String | 自定义功能的id,是由sdk定义的字符串常量 |
| jsonExtendParams | 必传 | String | json格式的字符串,包含自定义功能所需的命名参数 |
接口示例:
opsdk.Ourpalm_Channel_Spreads("getHuaweiOAID", "");opsdk.Ourpalm_Channel_Spreads("getBaseAppInfo", "");opsdk.Ourpalm_Channel_Spreads("getBaseDeviceInfo", "");
有些自定义功能是异步完成的,需要使用回调的方式通知结果
| key | key-类型 | 意义 |
|---|---|---|
| MethodName | “Callback_Ourpalm_Channel_Spreads” | 回调函数名 |
| JsonParam.id | string | 自定义功能的ID |
| JsonParam.result | string或JsonArray | 回调结果,具体内容由具体功能觉定。 这可能是单个字符串值, 可能是个jsonobject字符串。 可能是个JsonArray,如 “[‘val1’,’val2’]” |
打开指定url的web页面接口(可用于论坛、社区、活动)。
//打开指定页面(使用系统的原生WebView组件,可用于论坛、社区、活动)public static void OpenWebViewNative(string url, int w = 0, int h = 0, string bclose = "0")
| 参数名称 | 重要性 | 类型 | 说明 |
|---|---|---|---|
| url | 必须 | String | web页面url |
opsdk.OpenWebViewNative("https://www.baidu.com");
显示应用商店评分界面。用户在应用内给应用评分(星级)。
注意:应用商店对此功能有调用限制,一个用户可能只有一次显示机会。
bool ShowAppReview()
opsdk.ShowAppReview();
游戏内切换多语言时调用。
/// <summary>/// 设置语言/// </summary>/// <returns></returns>static public void SetLanguage(string locale)
| 参数名 | 重要性 | 类型 | 说明 |
|---|---|---|---|
| locale | 必传 | Locale | 设置地域语言(参见下面的地域语言参数说明) |
opsdk.SetLanguage(Locale.zh_CN);
OurpalmSDK.Locale中支持的语言
| Locale参数名 | 语言及对应的国家 |
|---|---|
| ru_RU | 俄语 |
| fr_FR | 法语 |
| de_DE | 德语 |
| es_ES | 西班牙 |
| pt_BR | 葡萄牙语 |
| en_GB | 英国英语 |
| it_IT | 意大利语 |
| zh_HK | 繁体 |
| th_TH | 泰语 |
| in_ID | 印尼 |
| ko_KR | 韩语 |
| ja_JP | 日语 |
| tr_TR | 土耳其语 |
| zh_CN | 简体中文 |
| en_PH | 英语-菲律宾 |
| en_SG | 英语-新加坡 |
| th_TH | 泰语 |
| in_ID | 印尼语 |
| zh_MY | 简体中文-马来西亚 |
| en_XX | 英语-其他国家 |
| vi_VN | 越南-越南语 |
根据google渠道要求,在欧盟及美国发行的游戏新用户首次启动需要弹隐私协议,只有玩家同意后才能进入游戏。
sdk启动后会自动检测是否需要显示隐私协议。如果玩家已同意过协议,则下次启动不会自动弹出协议界面;但如果协议内容有更新,则会再次弹出。
本接口暂时保留,用于以后在游戏内需要显示隐私协议时调用。
调用此接口,如果玩家当前ip是欧盟或美国,会拉起隐私协议弹窗。
opsdk.Ourpalm_ShowPrivacyProtocol();
隐私弹窗点击“不同意”、“同意”或不需要展示隐私协议时,游戏都会收到此回调。
游戏必须等待协议回调通知,然后才能调用登录和打点等其它sdk功能
此回调使用自定义回调”Callback_Ourpalm_Channel_Spreads”通知执行结果。
| key | key-类型 | 意义 |
|---|---|---|
| JsonParam.id | string | ShowPrivacyProtocol |
| JsonParam.result | string | 0已点击隐私弹窗同意按钮 1不用展示隐私弹窗 |
result的可选值有:
| 可选值 | 意义 | 说明 |
|---|---|---|
| 0 | 点击隐私弹窗同意按钮 | 显示弹窗并且用户点击了同意协议 |
| 1 | 不用展示隐私弹窗 | 不需要展示协议、或者用户已经同意过协议 |
| 2 | 点击隐私弹窗拒绝按钮 | 显示弹窗并且用户点击了不同意协议 |
| 3 | 隐私协议更新,并点击隐私弹窗同意按钮 | 隐私协议内容有变化,并且用户又同意了新版本的协议 |
| 4 | 该产品没有配置隐私协议功能 | 没有配置隐私协议地址,或未打开“欧盟隐私弹窗”开关 |
| 状态码 | 说明 |
|---|---|
| -1 | 未知错误 |
| -2 | SDK联网URL错误 |
| -3 | 第三方登陆验证返回失败 |
| -4 | 支付失败,未知错误 |
| -5 | 无网络 |
| 0 | 初始化失败 |
| 10 | 登陆错误,未知错误 |
| 11 | 登陆取消 |
| 12 | 登陆数据错误,账号或密码为空 |
| 13 | 登陆验证失败 |
| 14 | 登陆验证参数错误 |
| 15 | 获取系统用户名错误 |
| 16 | 单机隐式登录失败 |
| 20 | 注册失败,未知错误 |
| 21 | 注册失败,验证错误 |
| 22 | 注册数据错误,账号或密码为空 |
| 30 | 修改密码错误 |
| 31 | 修改密码错误,用户id或者密码为null或者格式错误 |
| 32 | 修改密码错误,参数错误 |
| 33 | 找回密码错误,参数错误 |
| 40 | 绑定用户信息错误 |
| 41 | 绑定用户信息错误,验证错误 |
| 42 | 绑定用户信息错误,参数错误 |
| 43 | 接口所需参数传递为空或者格式不正确 |
| 100 | 支付相关参数错误 |
| 101 | 支付成功 |
| 102 | 支付失败 |
| 103 | 支付取消 |
| 104 | 下单成功 |
| 105 | 下单失败 |
| 106 | 解析支付协议失败 |
| 107 | 当前支付方式不可用 |
| 205 | 账号封停 |
| 300 | 官网支付webview页面报错 |
| 状态码 | 说明 |
|---|---|
| 21134 | roleId格式不正确 |
| 21137 | gameServerId格式不正确 |
| 21143 | gameServerId在平台没有启用 |
| 21146 | 请求报文头格式不正确 |
| 21147 | 手机平台ID格式不正确 |
| 21148 | 设备名称格式不正确 |
| 21149 | 设备系统版本号格式不正确 |
| 21150 | 设备分辨率格式不正确 |
| 21151 | 设备UDID格式不正确 |
| 21152 | 运营商格式不正确 |
| 21153 | 设备厂商格式不正确 |
| 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 | 逻辑服有误 |
| 21227 | 用户每天兑换次数超出上限 |
| 21228 | 用户每周兑换次数超出上限 |
| 21229 | 用户每月兑换次数超出上限 |
| 23157 | 礼包码未到生效时间 |
| 23158 | 失败 |
在MIS中的货币有总共十种,货币ID是没有限定位数的纯自增值
| 货币ID | 货币名 | 币单位 |
|---|---|---|
| 1 | 人民币 | 分 |
| 2 | 美元 | 美分 |
| 3 | 日元 | 円 |
| 4 | 港币 | 分 |
| 5 | 英镑 | 便士 |
| 6 | 新加坡币 | 分 |
| 7 | 越南盾 | 盾 |
| 8 | 台币 | 元 |
| 9 | 韩元 | 分 |
| 10 | 泰铢 | 萨当 |
| 14 | 马来西亚林令吉 | 分 |
| 17 | 菲律宾币 | 仙 |
| 19 | 印尼卢比 | 卢比 |
| 21 | 柬埔寨瑞尔 | 瑞尔 |
| 122 | 缅甸元 | 分 |