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:失败响应消息详情