H5游戏
对接步骤
接入前准备
- 游戏入口地址、充值回调地址(该地址由CP方提供,并由我方运营配置在h5yun后台)
- 游戏登入接口
- 接口说明:平台会带上平台用户的标识,实现平台用户在游戏的注册(登陆),同时也是平台进入游戏入口,展示游戏界面(本接口适用于在入口地址传入用户参数的平台,而有些平台不会传入相关信息,cp方在登录接口处,不要验证用户信息,如果需要获取用户信息的话,需要从sdk中获取,下方接口SDKInterface.getUserInfo()获取)。
- 游戏登入接口
字段 | 描述 | 是否必传 |
---|---|---|
platform_id | 对接的平台id | 是 |
user_name | 平台用户账号,可作为用户标记 | 是,如果platform_id是1,则用此字段。(此字段用于乐都android、ios、h5游戏用户打通) |
yun_user_id | 云中间层用户id,可作为用户标记 | 是,如果platform_id不是1,则用此字段(用于不同平台混服) |
extra | 额外参数 | 是 |
req_time | 请求时间戳 | 是 |
sign | 签名 | 是,将以上所有参数,以字段ASCII正序排列后,按顺序以key=value,以&服号隔开,组合成一个字符串,在末尾拼接上秘钥,最后把整个字符串用md5,得到的结果就是sign。例如:sign=md5('extra=&platform_id=1&req_time=15898976&user_name=sssssss&yun_user_id=1&【SIGN_KEY】') |
- 返回值:参数无误则进入玩游戏页面,否则直接提示错误。
- 要求:需把extra原样加到游戏落地页url中
接口
SDK.prototype.login()
方法说明:登录
登录回调(需游戏方自己实现): cpLoginCallback(yun_uid,platform_user_id)
参数说明:
字段 说明 yun_uid 乐都用户id platform_user_id 平台(第三方)用户id
SDKInterface.pay(data)
- 方法说明:拉起支付流程
- 参数列表:(data为对象(Object))
字段内容 | 字段详细说明 |
---|---|
server_id | 游戏区服编号 |
role_name | 角色名称 |
money | 人名币 |
coin | 兑换的游戏币 |
item_id | 兑换的游戏道具id |
item_title | 内购商品的标题/交易标题/订单标题/订单关键字等 |
count | 兑换的道具个数 |
game_order_id | 游戏订单号(请确保该订单号在游戏内的唯一性) |
game_extra | 游戏透传参数 |
package_name | 游戏客户端包名 |
1. 支付完成后,SDK以GET形式将一下参数传递至游戏发货地址(此发货地址由cp方提供,如果之前对接过乐都h5,可以共用)
字段 | 描述 | 是否必传 |
---|---|---|
platform_id | 对接的平台id | |
platform_order_id | 平台订单号,可作为订单标记 | 是,此参数容易和平台对账,不同平台订单号可能会重复 |
yun_order_id | 云中间层订单号,可作为订单标记 | 是,订单号唯一 |
game_order_id | 游戏订单号,游戏在SDK中回传的参数 | 是 |
pay_time | 创建订单时间戳 | 是 |
platform_user_name | 平台用户标识 | 是,如果platform_id是1,则用此字段。(此字段用于乐都android、ios、h5游戏用户打通) |
yun_user_id | 云中间层用户id | 是,如果platform_id不是1,则用此字段(用于不同平台混服) |
server_id | 服务器标识,游戏在SDK中回传的参数 | 是 |
role_name | 角色名,游戏在SDK中回传的参数 | 是 |
money | 支付金额 | 是 |
coin | 兑换游戏币 | 是 |
free_coin | 赠送游戏币 | 是 |
game_extra | 游戏额外参数,游戏在SDK中回传的参数 | 是 |
extra | 扩展参数,根据游戏需求,只能包含字母(大小写),数字,部分符号 | -_,#@ |
req_time | 请求时间戳 | 是 |
sign | 签名 | 是 |
3. 发货成功返回值说明
字段 | 描述 | 举例 |
---|---|---|
error | 错误码,字符串 | 1000成功其他情况见附录,如果附录里没有请按错误码范围自定义 |
msg | 文字提示信息 | |
res | 数据,可为数组 |
- SDKInterface.getUserInfo()
- 方法说明:获取用户信息
- 接口返回字段内容
字段名 | 字段类型 | 字段内容 | 字段说明 |
---|---|---|---|
yun_uid | 字符串 | 平台用户id | |
platform | 字符串 | 平台,2-IOS,1-安卓 | |
platform_user_id | 字符串 | 各个平台的open_id | |
nickname | 字符串 | 用户昵称 | 并非全部渠道都会提供该字段,但在需要用户设置游戏内角色名时,请判定并调用该字段设置为默认角色名。 |
- SDKInterface.report(data)
- 方法说明:游戏上报数据接口,各个接口共有字段
字段 | 字段说明 |
---|---|
op_type | 提交的不同接口数据类型,1:登录,2:创角,3:支付,4:用户信息(在进入服之后提交) |
role_id | 角色id |
server_id | 区服id,由cp自定义 |
level | 角色等级 |
- 个别上报接口附加字段说明:
- 支付上报接口
提交字段 | 字段说明 |
---|---|
cp_order_id | 商品订单号 |
ware_id | 发货商品id |
money | 商品金额(单位:元) |
coin | 兑换的游戏币数量 |
2. 角色数据
提交字段 | 字段说明 |
---|---|
power | 战斗力数值 |
- SDKInterface.logout()
- 方法说明:登出并拉起重新登录流程(部分渠道不提供类似方法)
- SDKInterface.showShare()
- 方法说明:显示分享引导(部分渠道不提供类似方法)
- SDKInterface.showFocus()
- 方法说明:显示关注二维码遮罩层(部分渠道不提供类似方法)
- SDKInterface.desktop()
- 方法说明:将游戏图标放置到用户桌面
- SDKInterface.forum()
- 方法说明:跳转到游戏论坛
- SDKInterface.reload() 4. 方法说明:提供cp方刷新游戏的功能
- SDKInterface.download() 4. 方法说明:提供cp方下载游戏的功能
部分需游戏实现的回调接口
- 登录回调(部分平台无需用到): 2. 接口: cpLoginCallback(yun_uid) 3. 参数说明: yun_uid :用户id
- 充值回调(部分平台无需用到): 3. cpPayCallback(state) 4. 参数说明:state:充值状态,1000为成功,其他都为失败
对接玩吧结合版必接项
详情参看
- 添加桌面图标 a. 接口: SDKInterface.desktop(params) b. 参数说明
名称 | 类型 | 必选 | 描述 |
---|---|---|---|
params | Object | 是 | 调用参数。 |
参数params
名称 | 类型 | 必选 | 描述 |
---|---|---|---|
action | String | 是 | 点击桌面快捷方式后,是用什么动作响应操作,目前只支持web打开方式。 |
title | String | 是 | 标题,缺省的话就取当前页面的title |
icon | String | 是 | 快捷方式图标,可以缺省,使用手Q默认icon |
url | String | 是 | 点击快捷方式跳转的目标url,不可缺省 |
callback(argus) | Function | 否 | 回调web端用到的关键字 |
extras | Object|String | 否 | 需要透传给web端的数据,可缺省 |
回调 callback(argus) IOS not support >= android 5.8
名称 | 类型 | 必选 | 描述 |
---|---|---|---|
argus | Object | 是 | 返回值 |
返回值 argus
名称 | 类型 | 必选 | 描述 |
---|---|---|---|
result | Number | 是 | 设置结果 |
resultData | Object|String | 是 | extras透传的数据 |
message | String | 是 | 错误提示 |
设置结果 result
名称 | 类型 | 描述 |
---|---|---|
0 | Number | 创建桌面快捷方式成功 |
-1 | Number | url字段为空 |
-2 | Number | 终端拿到的json格式解析出错 |
-3 | Number | icon字段下载到的数据为空,或者下载到的不是图片数据 |
- 添加分享按钮
- 接口:SDKInterface.showShare(data,cb)
- 参数说明:
名称 | 类型 | 描述 |
---|---|---|
data | Object | 必选:是 说明:参数 |
callback(result) | Function | 必选:是 说明:回调 |
参数:data
名称 | 类型 | 必选 | 描述 |
---|---|---|---|
title | String | 是 | 必填,消息标题,最长8字节,建议为游戏名称。 |
desc | String | 是 | 必填,消息摘要,最长24字节。 |
image_url | String | 是 | 消息左侧缩略图url。图片推荐使用正方形,宽高不够时等比例撑满,不会变形。建议为游戏logo。 |
回调:cb(result)
名称 | 类型 | 必选 | 描述 |
---|---|---|---|
result | Object | 是 | 返回对象 |
回调参数:result
名称 | 类型 | 必选 | 描述 |
---|---|---|---|
retCode | Number | 是 | 返回码:0 -- 用户点击发送,完成整个分享流程 1 -- 用户点击取消,中断分享流程 |
- 推送消息接口
- 接口:SDKInterface.sendMsg(data,callback)
- 参数说明:
- 接口:SDKInterface.sendMsg(data,callback)
名称 | 类型 | 描述 |
---|---|---|
data | Object | 必选:是 说明:参数 |
callback(result) | Function | 必选:是 说明:回调 |
参数:data
名称 | 类型 | 必选 | 描述 |
---|---|---|---|
frd | 是 | string | 好友openid |
msgtype | 是 | int | 消息类型,1-pk消息,2-送心消息,3-自定义消息 |
content | 是 | string | 自定义消息内容 |
2. 回调参数:result说明
1000:成功
2000:后端接口错误
2001:参数错误
2002:鉴权错误
2003:频率打击
- 注册数据上报(我方实现)
- 礼包功能(礼包配置由运营配置)
- VIP礼包以及特权(需参看 http://wiki.qzone.qq.com/join/tasks/vip)
- 获取gift_id接口
- 接口: SDKInterface.getGiftId()
- 返回gift_id
- VIP礼包接口
- 接口:SDKInterface.giftExchange(data,callback)
- 参数说明:
- 接口:SDKInterface.giftExchange(data,callback)
- 获取gift_id接口
名称 | 类型 | 描述 |
---|---|---|
data | Object | 必选:是 说明:参数 |
callback(result) | Function | 必选:是 说明:注册回调 |
1. 参数:data
名称 | 类型 | 必选 | 描述 |
---|---|---|---|
gift_id | 是 | string | 积分礼包或者vip礼包id |
1. 回调参数:result说明:
1000 成功
2000 系统繁忙
2001 参数错误
2002 拉取礼包数据出错
2003 礼包兑换达到上限
2004 非积分兑换礼包及VIP礼包,无需校验
2005 积分不足,无法兑换积分礼包
2006 用户非VIP,无法兑换VIP礼包
2007 用户VIP等级与VIP礼包等级不符,无法兑换
2008 礼包已过期
2009 单用户兑换礼包次数限制
8. VIP特权接口
1. 接口:SDKInterface.getVipLevel(callback)
1. 参数说明:
名称 | 类型 | 描述 |
---|---|---|
callback(result) | Function | 必选:是 说明:注册回调 |
- 回调参数:result说明:
参数名称 | 类型 | 描述 |
---|---|---|
ret | number | 返回码 |
msg | number | 如果错误,返回错误信息。 |
score | number | 当前VIP成长值 |
level | number | 当前VIP等级 |
score_begin | number | 当前等级所需VIP成长值 |
score_next | number | 下一等级升级所需VIP成长值 |
score_persent | number | 升级百分比 |
is_vip | number | 是否点亮VIP图标 |
pay_fee_min | number | 当前等级每月点亮VIP图标所需消费 |
pay_fee_mon | number | 当月消费 |
- 完成客服QQ准备(提供客服QQ号)
特殊接口
以下接口比较特殊,往往是小部分渠道的需求
SDKInterface.getAppFriend(callback)
方法说明:获取已安装了应用的好友列表。
接口返回字段内容:
字段名 | 字段类型 | 字段内容 | 字段说明 |
---|---|---|---|
callback | 函数 | 回调函数 | 该接口不需要CP提供用户信息,在完成后我们回传用户好友列表的 |
回调参数:result(Object类型)
名称 | 类型 | 必选 | 描述 |
---|---|---|---|
code | Number | 是 | 返回码:0 -- 好友列表成功返回 其余情况-- 获取失败,具体原因 |
yun_uid | 字符串 | 是 | 用户的云id |
Items | 数组 | 是 | 用户好友的openid |
例:
- SDKInterface.getMultiInfo(params,callback)
- 方法说明:批量获取多个用户的基本信息,包括昵称、头像等。本接口只返回安装了该应用的openid的详细信息。如果传入的fopenids中某个openid并没有安装该应用,则对应的详细信息为空。 params为CP传递的参数,callback则是回调函数。
- CP需要传入的参数 params为对象(Object)
字段名 | 字段类型 | 必选 | 字段说明 |
---|---|---|---|
fopenids | 字符串 | 是 | 需要获取数据的openid列表,中间以_隔开,每次最多100个。例:08B9999CACFBE0D9F57CAB4E7D8BDBF0_83A390F6A8E66BA800829ECD6032A6DE |
3. 接口返回字段内容
callback|函数|回调函数|回调函数由CP方提供,在完成后我们回传批量的用户信息
回调参数:result(Object类型)
名称 | 类型 | 必选 | 描述 |
---|---|---|---|
code | Number | 是 | 返回码:0 -- 好友列表成功返回 其余情况-- 获取失败 |
yun_uid | 字符串 | 是 | 用户的云id |
Items | 数组 | 是 | 批量的用户的信息 |
---上面两个接口只有玩吧才能实现
该接口为服务端请求:
用以获取用户在游戏中创建的角色,等级及所在区服等信息。
请求格式(GET方式):
playInfoUrl?userid=xxx&username=xxx&platform=xxx&time=xxx&sign=xxx(playInfoUrl 有cp提供)
参数 | 类型 | 说明 | 是否参与签名 |
---|---|---|---|
userid | string | 用户唯一标示 | 是 |
username | string | 用户平台名 | 是 |
platform | int | 平台id,例如:1000006 | 是 |
time | int | 时间戳 | 是 |
sign | string | 签名 | 否 |
游戏方返回数据:
名称 | 类型 | 说明 | 是否必填 |
---|---|---|---|
platform | int | 平台id | 是 |
username | string | 用户唯一标示 是 | |
serverID | int | 所在区服ID | 是 |
serverName | int | 区服名称 | 是 |
roleName | string | 角色名称 | 是 |
roleLevel | int | 角色等级 | 是 |
fightPower | int | 角色战斗力 | 是 |
chargeMoney | int | 该区充值金额 | 是 |
上述所列为一条数据所包含的信息,如果该玩家在游戏中不同区服中创建了多个角色则返回多条,返回数据格式为JSON。
查询返回数据样例:
[{"platform ":1000006,"username ":”shshshh”,"server":"1131",serverName:"万剑归宗","roleName":"佼兴庆","roleLevel":155,"fightPower":56071925,"chargeMoney":325},
{"platform ":1000006,"username ":"shshshh”,"server":"1136",serverName:"独步天下","roleName":"八度空间","roleLevel":176,"fightPower":256071925,"chargeMoney":678}]
查询用户接口请求失败响应消息结构体例:
{"code": -5,"msg": "验证签名失败"}
code定义:
错误码 | 描述 |
---|---|
-1 | 请求参数为空 |
-2 | 请求参数无效(服务器内部签名有效时间5分钟) |
-5 | 签名参数sig校验失败 |
-100 | 其它错误信息 |
msg:失败响应消息详情