{{ errorTipText }}
接入前,需要由掌趣项目负责人完成渠道申报并在掌趣后台进行配置,从而获取到该游戏的渠道参数、掌趣配置文件。
将掌趣SDK添加到Assets目录下,如下图:
掌趣SDK主要由以下几部分构成
[1] Assets/OurpalmSDK 掌趣封装DLL库
[2] Assets/Resources 掌趣后台获取的掌趣配置文件
功能说明
执行sdk的相关业务功能
接口示例
void Update(){OPGameSDK.Update(this, System.DateTime.Now);}
功能说明
初始化第三方SDK,同时获取SDK所需要的初始化数据
接口定义
void Ourpalm_Init(string jsonParams);
参数说明
| 参数名称 | 重要性 | 类型 | 说明 |
|---|---|---|---|
| gameVer | 必填 | string | 游戏版本号 |
| gameResVer | 必填 | string | 游戏资源版本号 |
接口示例
//初始化回调函数private static void Ourpalm_GameEntryCallback(string methodName, string param){if (methodName.Equals("Callback_Ourpalm_Init")){//初始化回调}}
OPGameSDK.SetGameEngineMessageListener(Ourpalm_GameEntryCallback);Ourpalm_WebGL.Ourpalm_SetLogs(1);Hashtable initParams = new Hashtable();initParams["gameVer"] = "1.0"; // 必传initParams["gameResVer"] = "1.0"; // 必传OPGameSDK.Ourpalm_Init(MiniJSON.jsonEncode(initParams), channel);
功能说明
获取当前SDK渠道信息。
(1)获取产品ID
功能说明
获取当前游戏包中的产品ID,对应dev后台的产品ID,例如:20000078 。
OPGameSDK.Ourpalm_GetProductId()
(2)获取联运方ID
功能说明
获取当前游戏包中的联运方ID,对应dev后台渠道ID,例如:微信小游戏渠道:31144100000。
OPGameSDK.Ourpalm_GetJointOperationId()
(3)获取主渠道ID
功能说明
获取当前游戏包中的主渠道ID,对应dev后台主渠道ID,例如:微信小游戏主渠道:31144100 。
OPGameSDK.Ourpalm_GetMainChannelId()
(4)获取子渠道ID
功能说明
获取当前游戏包中的子渠道ID,对应dev后台子渠道ID,例如:微信小游戏子渠道:31144100。
OPGameSDK.Ourpalm_GetSubChannelId()
(5)获取平台ID
功能说明
获取当前游戏包中的平台id,0:android 1:ios 2:pc 6:h5 8:鸿蒙。
OPGameSDK.Ourpalm_GetPlatformId()
(6)获取业务ID
功能说明
获取当前游戏包中的ServiceId
OPGameSDK.Ourpalm_GetServiceId();
(7)获取渠道ID
功能说明
获取当前游戏包内打入的推广渠道ID
OPGameSDK.Ourpalm_GetChannelId();
(8)获取渠道名称
功能说明
获取当前游戏包中的推广渠道名称
OPGameSDK.Ourpalm_GetChannelName();
(9)获取机型组ID
功能说明
获取当前游戏包内打入的机型组ID
OPGameSDK.Ourpalm_GetDeviceGroupId();
(10)获取语言ID
功能说明
获取当前游戏包内打入的语言ID
OPGameSDK.Ourpalm_GetLocaleId();

1.手机游戏客户端会调用掌趣sdk进行sdk初始化操作
2.掌趣sdk向掌趣用户中心服务器发起登录/注册的请求
3.掌趣用户中心服务器向掌趣sdk返回token、用户信息等等
4.掌趣sdk向返回游戏客户端登录结果和用户信息
5.游戏客户端上传用户信息到游戏服务器
6.服务器根据token向掌趣用户中心服务器获取用户信息
7.掌趣用户中心服务器向游戏服务器返回用户信息
8.游戏服务器向游戏客户端返回登录结果
功能说明
登录掌趣用户中心。游戏客户端调用登录接口(RegisterLogin)前,需要通过设置登录回调接口(RegisterLoginCallBack)将回调函数指针传给SDK,登录成功后,掌趣SDK会通过回调函数通知游戏客户端。
接口定义
void Ourpalm_Login();
接口示例
void Ourpalm_GameEntryCallback(string methodName,string param){if (strcmp(methodName, "Callback_Ourpalm_Login") == 0) {//登录回调}}//登录接口Ourpalm_Login();
返回的JSON数据格式说明
登录成功时
{"userId":"掌趣平台分配的用户唯一id,区分大小写","tokenId":"掌趣分配的tokenId",}
登录失败时
{"desc":"失败描述","reset":"状态码","status":"1"}
注意:
1.返回失败时,SDK会弹出提示框!对于请求超时(状态码为101),不会弹出提示框,游戏可自动重新连接或自己添加提示框。
2.用户ID区分大小写,相同字母和数字、大小写不同的用户ID代表的是两个不同的用户账号。因此,游戏在使用和存储掌趣用户ID时,务必要严格区分大小写,以免造成游戏内账号和角色的混乱等问题。
3.如果游戏有自己的用户ID,必须和掌趣用户中心的用户ID一一对应,不得出现一对多或者多对一的情况。也不得根据其他条件,组合生成新的用户ID,否则将会出现账号丢失的情况。
功能说明
当游戏角色注册(登录)成功时设置游戏角色注册(登录)信息。
注:
1、游戏角色注册成功后,调用该接口设置角色注册信息。
2、游戏角色登录成功后,调用该接口设置角色登录信息,否则无法计费。
接口定义
void Ourpalm_SetGameInfo(int type,string jsonParams);
接口定义
| 参数名称 | 重要性 | 类型 | 说明 |
|---|---|---|---|
| type | 必须 | int | 用户标识游戏角色注册登录状态注册:1 登录:2 |
| jsonParams | 必须 | string | 角色信息 |
接口示例
Json::Value gameInfo;gameInfo["roleID"] = "123"; //角色idgameInfo["roleName"] = gameRoleName; //角色名gameInfo["serverID"] = "9999"; //游戏服idgameInfo["gameServerName"] = "s1"; //游戏服名称gameInfo["rolelv"] = "1"; //角色等级gameInfo["roleviplv"] = "1"; //角色vip等级Json::FastWriter fast_writer;string jsonParams = fast_writer.write(gameInfo);//角色注册OPGameSDK.Ourpalm_SetGameInfo(1, jsonParams);//角色登录OPGameSDK.Ourpalm_SetGameInfo(2, jsonParams);

1.掌趣sdk向掌趣计费服务器发起支付请求
2.掌趣计费服务器生成订单号,并向sdk返回支付结果
3.掌趣计费服务器通知游戏服务器发货
4.游戏服务器发送虚拟物品至玩家手机游戏客户端
5.游戏服务器向计费服务器返回发货结果
功能说明
游戏客户端通过调用计费接口,实现游戏中的道具购买。
接口定义
void Ourpalm_Pay(string propId, string chargeCash, string currencyType, string propName,string propCount, string propDes, string Gameurl, string jsonExtendParams);
参数说明
| 参数名称 | 重要性 | 类型 | 说明 |
|---|---|---|---|
| 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\”:\”95b49366-acb8-41a1-ba94-5577bd362074\”,\”package_id\”:\”200279\”,\”dev_order_id\”:\”36291\”} |
接口示例
void Ourpalm_GameEntryCallback(string methodName,string param){if (strcmp(methodName, "Callback_Ourpalm_Pay") == 0) {//支付回调}}void OPSDK::pay(){//消耗性string propId = "com.fingerfun.coc.ios.diamond_1";string chargeCash = "99";string currencyType = "2";string propName = "Handful of Diamonds";string propCount = "1";string propDes = "Handful of Diamonds";string Gameurl = "http://pay.gamebean.net/OurPalm_Pay_Accept/ResponseDeliver?ssid=2013030715493703719999";Hashtable extendParams = new Hashtable();extendParams["Params"] = "Params";//游戏自定义参数,选填,透传参数extendParams["serverID"] = "9999";//游戏服ID,必填extendParams["roleID"] = "1000000";//角色ID,必填extendParams["rolelv"] = "rolelv";//角色等级extendParams["roleviplv"] = "roleviplv";//角色VIP等级extendParams["roleName"] = "roleName";//角色名称extendParams["gameServerName"] = "gameServerName";//游戏服名称Hashtable purchaseInfo = new Hashtable();purchaseInfo["package_id"] = "礼包ID";purchaseInfo["order_funnel_id "] = "研发生成的付费会话唯一id";purchaseInfo["dev_order_id "] = "研发订单号id";extendParams["purchaseInfo"] = purchaseInfo;//选填string jsonExtendParams= ToolsUtils.MiniJSON.jsonEncode(extendParams);Ourpalm_Pay(propId, chargeCash, currencyType, propName, propCount, propDes, Gameurl, jsonExtendParams);}
数据示例:
{"channelOrderId": "2000000399537533",//第三方订单号"code": "200", //购买成功"desc": "","pdid": "buy1", //商品id"ssId": "","success": "1"}
此接口用于发送游戏自定义日志,以及广告统计打点日志
函数原型
void Ourpalm_SendGameInfoLog(string logID, string logKey, string json);
函数原型
| 参数名 | 类型 | 用途 | 注解 |
|---|---|---|---|
| logID | string | 日志id | 由平台定义,游戏自定义为”1003” |
| logKey | string | 日志关键字 | 游戏自定义为”role-act” |
| json | string | 日志内容 | json格式字符串。根据具体用途自定义包含哪些字段 |
注意事项
- 这些参数值和结构,由平台定义,研发需按平台要求的结构传。- 注意1,确保启动游戏的时候正常调用了PCSDK初始化方法后,再调用发日志接口;启动游戏时调用的PCSDK初始化方法有别于安装时调用的方法,无须设置 disable_sdk_act_log 这个参数。- 注意2,actId 为事件ID,只支持字母,数字,下划线命名,不支持中文。- 注意3,actName 为事件名称,支持中文。- 注意4,detail 为需要随本次发生事件一并记录的额外信息,可以是普通字符串,也可以是json字符串,不要包含竖线 | ,总长度不要超过 1000 个字符。
代码示例
//发送游戏日志-->登陆场景加载成功Hashtable event_paras = new Hashtable();event_paras["roleLevel"] = "0";event_paras["roleVipLevel"] = "0";event_paras["actId"] = "LoginSceneLoaded";event_paras["actName"] = "登陆场景加载成功";event_paras["detail"] = "begin";string json= ToolsUtils.MiniJSON.jsonEncode(event_paras);OPGameSDK.Ourpalm_SendGameInfoLog("1003", "role-act", json);
logId和LogKey对应表
| logId | Logkey | 描述 |
|---|---|---|
| 8 | role-credit | 玩家充值日志 |
| 9 | role-item-update | 玩家虚拟物品变更 |
| 10 | role-prop-update | 玩家属性变更 |
| 1001 | role-task | 任务 |
| 1002 | role-stage | 副本,场景 |
| 1003 | role-act | 自定义事件 |
| 2001 | role-interact | 自定义交互事件 |
| 状态码 | 说明 |
|---|---|
| 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 | 下单成功 |
货币ID是没有限定位数的纯自增值,详情:货币类型详情列表
| 货币ID | 货币名 | 货币单位 |
|---|---|---|
| 1 | 人民币 | 分 |
| 2 | 美元 | 美分 |
| 3 | 日元 | 円 |
| 4 | 港币 | 分 |
| 5 | 英镑 | 便士 |
| 6 | 新加坡币 | 分 |
| 7 | 越南盾 | 盾 |
| 8 | 台币 | 元 |
| 9 | 韩元 | 分 |
| 10 | 泰铢 | 萨当 |
| 14 | 马来西亚林令吉 | 分 |
| 17 | 菲律宾币 | 仙 |
| 19 | 印尼卢比 | 卢比 |
| 21 | 柬埔寨瑞尔 | 瑞尔 |
| 22 | 加拿大元 | 分 |
| 28 | 巴西雷亚尔 | 分 |
| 29 | 智利比索 | 分 |
| 32 | 欧元 | 分 |
| 67 | 墨西哥比索 | 分 |
| 70 | 秘鲁新索尔 | 分 |
| 93 | 哥斯达黎加科朗 | 分 |
| 95 | 俄罗斯卢布 | 戈比 |
| 110 | 巴拉圭瓜尼 | 分 |
| 122 | 缅甸元 | 分 |
| 125 | 哥伦比亚比索 | 分 |