{{ errorTipText }}
接入前,需要由掌趣项目负责人完成渠道申报并在掌趣后台进行配置,从而获取到该游戏的渠道参数、掌趣配置文件。
掌趣sdk,如下图:
引入sdk
const opgamesdk = require('./OurpalmSDK/opgamesdk.js')const ourpalmcfg = require('./OurpalmSDK/ourpalm.commonjs.js')
掌趣SDK主要由以下几部分构成
[1] opgamesdk.js 掌趣封装JS库
[2] ourpalm.commonjs.js 掌趣后台获取的掌趣配置文件
功能说明
初始化第三方SDK,同时获取SDK所需要的初始化数据
接口定义
void Ourpalm_Init(initInfo);
参数说明
| 参数名称 | 重要性 | 类型 | 说明 |
|---|---|---|---|
| gameVer | 必填 | string | 游戏版本号 |
| gameResVer | 必填 | string | 游戏资源版本号 |
| cfg | 必填 | object | ourpalmcfg对象 |
| debugModel | 非必填 | bool | 是否开启测试模式 |
接口示例
//初始化回调函数Ourpalm_GameEntryCallback(methodName, param) {if (methodName === "Callback_Ourpalm_Init") {//初始化回调}}
Ourpalm_Init() {opgamesdk.SetGameEngineMessageListener(this.Ourpalm_GameEntryCallback);const initInfo = {gameVer: "1.0",gameResVer: "1.0.0",cfg: ourpalmcfg,debugModel: true,};const channelType = "wxxyx"//必填opgamesdk.Ourpalm_Init(initInfo, channelType);}

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

1.掌趣sdk向掌趣计费服务器发起支付请求
2.掌趣计费服务器生成订单号,并向sdk返回支付结果
3.掌趣计费服务器通知游戏服务器发货
4.游戏服务器发送虚拟物品至玩家手机游戏客户端
5.游戏服务器向计费服务器返回发货结果
功能说明
游戏客户端通过调用计费接口,实现游戏中的道具购买。
接口定义
Ourpalm_Pay(propId, chargeCash, currencyType, propName, propCount, propDes, Gameurl, jsonExtendParams);
参数说明
| 参数名称 | 重要性 | 类型 | 说明 |
|---|---|---|---|
| propId | 必须 | string | 游戏自定义的道具ID 必传。 |
| chargeCash | 必须 | string | 道具价格,单位为分。 |
| currencyType | 必须 | string | 货币类型 1人民币 |
| propName | 必须 | string | 道具名称 |
| propCount | 必须 | string | 道具数量 |
| propDes | 必须 | string | 道具描述 |
| Gameurl | 必须 | string | 游戏发放道具服务器地址,用户支付成功后掌趣计费中心会回调此地址告知游戏进行道具发放。 |
| jsonExtendParams.userId | 必须 | string | 掌趣SDK登录成功后返回的userId |
| jsonExtendParams.roleId | 必须 | string | 玩家角色id |
| jsonExtendParams.rolelv | 必须 | string | 角色等级,请传数字,如游戏中无角色等级可以传空字符串 |
| jsonExtendParams.serverId | 必须 | string | 玩家登录的游戏服id |
| jsonExtendParams.gameServerName | 必须 | string | 玩家登录的游戏服务器名 |
| jsonExtendParams.roleviplv | 必须 | string | 角色VIP等级,请传数字,如游戏中无角色VIP等级可以传空字符串 |
| 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\”} |
接口示例
Ourpalm_GameEntryCallback(methodName,param){if (methodName === "Callback_Ourpalm_Pay") {//支付回调}}void OPSDK::pay(){let propId = "Cash_1"let chargeCash = "100"let propName = "1元商品"let currencyType = "1";let propCount = "1";let propDes = "";let Gameurl = "https://pay-test.0708.com/billingcenter2.0/success.do"let extendParams = {};extendParams.Params = "游戏自定义参数";//游戏自定义参数,选填,透传参数extendParams.serverID = "101";//游戏服ID,必填extendParams.roleID = "12345";//角色ID,必填extendParams.rolelv = "5";//角色等级extendParams.roleviplv = "1";//角色VIP等级extendParams.roleName = "天策丶心有猛虎";//角色名称extendParams.gameServerName = "觉醒之力14服";//游戏服名称let purchaseInfo = {};purchaseInfo.package_id = "1001";//礼包IDextendParams.purchaseInfo = purchaseInfo;//选填let jsonExtendParams = JSON.stringify(extendParams)opgamesdk.Ourpalm_Pay(propId, chargeCash, currencyType, propName, propCount, propDes, Gameurl, jsonExtendParams);}
数据示例:
{"channelOrderId": "2000000399537533",//第三方订单号"code": "200", //购买成功"desc": "","pdid": "buy1", //商品id"ssId": "","success": "1"}
opgamesdk.Ourpalm_Channel_Spreads("OpenCustomerServicePage");
此接口用于发送游戏自定义日志,以及广告统计打点日志
函数原型
Ourpalm_SendGameInfoLog(logID, logKey, 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 个字符。
代码示例
Ourpalm_SendGameInfoLog() {var log = { 'roleLevel': '0', 'roleVipLevel': '0', 'actId': 'LoginSceneLoaded', 'actName': '登陆场景加载成功', 'detail': 'begin' };var logString = JSON.stringify(log);opgamesdk.Ourpalm_SendGameInfoLog("1003", "role-act", logString);}
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 | 自定义交互事件 |
功能说明
腾讯广告打点事件,用于广告推广,游戏客户端发货时发送支付成功日志
接口定义
Ourpalm_SendPayEvent(){var params = {roleId:'121212',price:'100',propId:'1',propName:'1元商品',ssId:'23423423423'//掌趣订单号}opgamesdk.Ourpalm_SendPayEvent(params)}
| 参数名称 | 重要性 | 类型 | 说明 |
|---|---|---|---|
| roleId | 必须 | string | 角色ID |
| propId | 必须 | string | 商品ID |
| price | 必须 | string | 商品价格ID,单位为分 |
| propName | 必须 | string | 商品名称 |
| ssId | 必须 | string | 掌趣订单号 |
功能说明
腾讯广告打点事件,用于广告推广,在用户收藏小游戏的时候上报,包括收藏、添加到我的小程序、添加到桌面以及小游戏自己定义的收藏逻辑。
接口定义
Ourpalm_SendAddToWishListEvent(){//wishType 类型枚举值:普通收藏(default)/添加到我的小程序(my)/添加到桌面(desktop)/其他(others)opgamesdk.Ourpalm_SendAddToWishListEvent("default")}
功能说明
腾讯广告打点事件,用于广告推广,在用户分享小游戏的时候上报,需区分是【转发给朋友】还是【分享到朋友圈】。
接口定义
Ourpalm_SendShareEvent(){//shareType 分享类型枚举:转发给朋友(APP_MESSAGE) / 分享到朋友圈(TIME_LINE)opgamesdk.Ourpalm_SendShareEvent("APP_MESSAGE")}
功能说明
用于GameClub(游戏圈)数据
接口定义
opgamesdk.Ourpalm_Channel_Spreads("WxDecryptData",GameClubData)
| 参数名称 | 重要性 | 类型 | 说明 |
|---|---|---|---|
| GameClubData | 必须 | object | GameClub数据对象 |
接口定义
Ourpalm_GameEntryCallback(methodName, param) {if (methodName === "Callback_wxDecryptData") {if (param.success === "1") {//获取游戏圈数据解密成功} else {//获取游戏圈数据解密失败}}}opgamesdk.Ourpalm_Channel_Spreads("WxDecryptData",GameClubData)
| 状态码 | 说明 |
|---|---|
| 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 | 哥伦比亚比索 | 分 |