跳到主要内容

H5游戏

对接步骤

接入前准备

  1. 游戏入口地址、充值回调地址(该地址由CP方提供,并由我方运营配置在h5yun后台)
    1. 游戏登入接口
      1. 接口说明:平台会带上平台用户的标识,实现平台用户在游戏的注册(登陆),同时也是平台进入游戏入口,展示游戏界面(本接口适用于在入口地址传入用户参数的平台,而有些平台不会传入相关信息,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】')
  1. 返回值:参数无误则进入玩游戏页面,否则直接提示错误。
  2. 要求:需把extra原样加到游戏落地页url中

接口

  1. SDK.prototype.login()

    1. 方法说明:登录

    2. 登录回调(需游戏方自己实现): cpLoginCallback(yun_uid,platform_user_id)

    3. 参数说明:

      字段说明
      yun_uid乐都用户id
      platform_user_id平台(第三方)用户id
  2. SDKInterface.pay(data)

    1. 方法说明:拉起支付流程
    2. 参数列表:(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数据,可为数组
  1. SDKInterface.getUserInfo()
    1. 方法说明:获取用户信息
    2. 接口返回字段内容
字段名字段类型字段内容字段说明
yun_uid字符串平台用户id
platform字符串平台,2-IOS,1-安卓
platform_user_id字符串各个平台的open_id
nickname字符串用户昵称并非全部渠道都会提供该字段,但在需要用户设置游戏内角色名时,请判定并调用该字段设置为默认角色名。
  1. SDKInterface.report(data)
    1. 方法说明:游戏上报数据接口,各个接口共有字段
字段字段说明
op_type提交的不同接口数据类型,1:登录,2:创角,3:支付,4:用户信息(在进入服之后提交)
role_id角色id
server_id区服id,由cp自定义
level角色等级
  1. 个别上报接口附加字段说明:
    1. 支付上报接口
提交字段字段说明
cp_order_id商品订单号
ware_id发货商品id
money商品金额(单位:元)
coin兑换的游戏币数量
2. 角色数据
提交字段字段说明
power战斗力数值
  1. SDKInterface.logout()
    1. 方法说明:登出并拉起重新登录流程(部分渠道不提供类似方法)
  2. SDKInterface.showShare()
    1. 方法说明:显示分享引导(部分渠道不提供类似方法)
  3. SDKInterface.showFocus()
    1. 方法说明:显示关注二维码遮罩层(部分渠道不提供类似方法)
  4. SDKInterface.desktop()
    1. 方法说明:将游戏图标放置到用户桌面
  5. SDKInterface.forum()
    1. 方法说明:跳转到游戏论坛
  6. SDKInterface.reload() 4. 方法说明:提供cp方刷新游戏的功能
  7. SDKInterface.download() 4. 方法说明:提供cp方下载游戏的功能

部分需游戏实现的回调接口

  1. 登录回调(部分平台无需用到): 2. 接口: cpLoginCallback(yun_uid) 3. 参数说明: yun_uid :用户id
  2. 充值回调(部分平台无需用到): 3. cpPayCallback(state) 4. 参数说明:state:充值状态,1000为成功,其他都为失败

对接玩吧结合版必接项

详情参看

  1. 添加桌面图标 a. 接口: SDKInterface.desktop(params) b. 参数说明
名称类型必选描述
paramsObject调用参数。

参数params

名称类型必选描述
actionString点击桌面快捷方式后,是用什么动作响应操作,目前只支持web打开方式。
titleString标题,缺省的话就取当前页面的title
iconString快捷方式图标,可以缺省,使用手Q默认icon
urlString点击快捷方式跳转的目标url,不可缺省
callback(argus)Function回调web端用到的关键字
extrasObject|String需要透传给web端的数据,可缺省
    回调 callback(argus) IOS not support >= android 5.8
名称类型必选描述
argusObject返回值
    返回值 argus

名称类型必选描述
resultNumber设置结果
resultDataObject|Stringextras透传的数据
messageString错误提示
    设置结果 result

名称类型描述
0Number创建桌面快捷方式成功
-1Numberurl字段为空
-2Number终端拿到的json格式解析出错
-3Numbericon字段下载到的数据为空,或者下载到的不是图片数据
  1. 添加分享按钮
    1. 接口:SDKInterface.showShare(data,cb)
    2. 参数说明:
名称类型描述
dataObject必选:是 说明:参数
callback(result)Function必选:是 说明:回调
    参数:data

名称类型必选描述
titleString必填,消息标题,最长8字节,建议为游戏名称。
descString必填,消息摘要,最长24字节。
image_urlString消息左侧缩略图url。图片推荐使用正方形,宽高不够时等比例撑满,不会变形。建议为游戏logo。
    回调:cb(result)

名称类型必选描述
resultObject返回对象
    回调参数:result

名称类型必选描述
retCodeNumber返回码:0 -- 用户点击发送,完成整个分享流程 1 -- 用户点击取消,中断分享流程
  1. 推送消息接口
    1. 接口:SDKInterface.sendMsg(data,callback)
      1. 参数说明:
名称类型描述
dataObject必选:是 说明:参数
callback(result)Function必选:是 说明:回调
            参数:data
名称类型必选描述
frdstring好友openid
msgtypeint消息类型,1-pk消息,2-送心消息,3-自定义消息
contentstring自定义消息内容
              2. 回调参数:result说明
1000:成功
2000:后端接口错误
2001:参数错误
2002:鉴权错误
2003:频率打击
  1. 注册数据上报(我方实现)
  2. 礼包功能(礼包配置由运营配置)
  3. VIP礼包以及特权(需参看 http://wiki.qzone.qq.com/join/tasks/vip)
    1. 获取gift_id接口
      1. 接口: SDKInterface.getGiftId()
      2. 返回gift_id
    2. VIP礼包接口
      1. 接口:SDKInterface.giftExchange(data,callback)
        1. 参数说明:
名称类型描述
dataObject必选:是 说明:参数
callback(result)Function必选:是 说明:注册回调
            1. 参数:data

名称类型必选描述
gift_idstring积分礼包或者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必选:是 说明:注册回调
  1. 回调参数:result说明:
参数名称类型描述
retnumber返回码
msgnumber如果错误,返回错误信息。
scorenumber当前VIP成长值
levelnumber当前VIP等级
score_beginnumber当前等级所需VIP成长值
score_nextnumber下一等级升级所需VIP成长值
score_persentnumber升级百分比
is_vipnumber是否点亮VIP图标
pay_fee_minnumber当前等级每月点亮VIP图标所需消费
pay_fee_monnumber当月消费
  1. 完成客服QQ准备(提供客服QQ号)

特殊接口

以下接口比较特殊,往往是小部分渠道的需求

  1. SDKInterface.getAppFriend(callback)

    1. 方法说明:获取已安装了应用的好友列表。

    2. 接口返回字段内容:

字段名字段类型字段内容字段说明
callback函数回调函数该接口不需要CP提供用户信息,在完成后我们回传用户好友列表的

回调参数:result(Object类型)

名称类型必选描述
codeNumber返回码:0 -- 好友列表成功返回 其余情况-- 获取失败,具体原因
yun_uid字符串用户的云id
Items数组用户好友的openid

例:

  1. SDKInterface.getMultiInfo(params,callback)
    1. 方法说明:批量获取多个用户的基本信息,包括昵称、头像等。本接口只返回安装了该应用的openid的详细信息。如果传入的fopenids中某个openid并没有安装该应用,则对应的详细信息为空。 params为CP传递的参数,callback则是回调函数。
    2. CP需要传入的参数 params为对象(Object)
字段名字段类型必选字段说明
fopenids字符串需要获取数据的openid列表,中间以_隔开,每次最多100个。例:08B9999CACFBE0D9F57CAB4E7D8BDBF0_83A390F6A8E66BA800829ECD6032A6DE
3. 接口返回字段内容

callback|函数|回调函数|回调函数由CP方提供,在完成后我们回传批量的用户信息

回调参数:result(Object类型)

名称类型必选描述
codeNumber返回码:0 -- 好友列表成功返回 其余情况-- 获取失败
yun_uid字符串用户的云id
Items数组批量的用户的信息

---上面两个接口只有玩吧才能实现

  1. 该接口为服务端请求:

    用以获取用户在游戏中创建的角色,等级及所在区服等信息。

    请求格式(GET方式):

    playInfoUrl?userid=xxx&username=xxx&platform=xxx&time=xxx&sign=xxx(playInfoUrl 有cp提供)

参数类型说明是否参与签名
useridstring用户唯一标示
usernamestring用户平台名
platformint平台id,例如:1000006
timeint时间戳
signstring签名

游戏方返回数据:

名称类型说明是否必填
platformint平台id
usernamestring用户唯一标示 是
serverIDint所在区服ID
serverNameint区服名称
roleNamestring角色名称
roleLevelint角色等级
fightPowerint角色战斗力
chargeMoneyint该区充值金额

上述所列为一条数据所包含的信息,如果该玩家在游戏中不同区服中创建了多个角色则返回多条,返回数据格式为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:失败响应消息详情