更新日期:2024-10-11H5游戏接入文档(微端和网页)
1.H5游戏通过js API接入QuickSDK后,可直接用于上架H5、Android、iOS全平台渠道。需要注意的是,接完QuickSDKH5文档后的母链地址不能直接进行测试,需要配置好渠道,用渠道提供的链接或者包来测试。H5渠道最终是使用渠道给出的URL地址进行测试;Android、iOS渠道则需使用QuickSDK提供的打包工具打出apk或ipa渠道包进行测试
2.上架H5渠道需要将游戏地址配置到QuickSDK后台渠道参数列表上方的"H5游戏地址"里,其后QuickSDK将附带一些参数生成一个新的游戏地址(此地址可通过QuickSDK后台"渠道回调地址"栏目查看),运营需将此地址配置到渠道后台,然后使用渠道给出的地址测试。渠道给出的游戏地址会以iFrame加载游戏真实地址,若加载游戏地址后,游戏地址发生跳转或重定向,则新地址需原样保存被iframe加载的游戏地址上渠道所附加的URL参数
3.Android、iOS渠道需将游戏地址配置到QuickSDK后台对应渠道参数"H5GameUrl"里,启用打包工具,工具识别到游戏平台为H5时不需要提供母包,直接出包即可,然后用打出的渠道包进行测试
注意:开发者应仔细阅读以上3点内容,若游戏不按照此步骤配置测试,在调用SDK时将出现跨域错误
1.游戏开发者在游戏主页引入QuickSDK js类库
2.引入类库后 调用类库中的初始化方法
3.在初始化完成的回调中,调用登录方法,从登录方法的回调中获取用户uid和token
4.将js端取到的uid和token传回游戏服务器,游戏服务器调用QuickSDK用户验证的服务器API,验证用户
5.验证结果返回1,标示信息通过,游戏使用此uid完成登录。验证结果为0,则标示信息有误,游戏应给出登录失败的提示
https://qkh5api.quickapi.net/static/lib/libQuickSDK_v2.js
注意: 游戏应原样引入此JS,不能随意变更协议为http或在后面附加时间戳(如是要转出安卓或越狱渠道的包,则js必须在html的script里进行引用,不能动态加载)
游戏应调用QuickSDK的init接口,同时传入QuickSDK后台分配给游戏的参数.
var productCode = '05425578266356246482673853629430'; //QuickSDK后台自动分配 var productKey = '98253036'; //QuickSDK后台自动分配 QuickSDK.init(productCode,productKey,true,function(){ console.log("init success"); })
注意如果是要转出安卓渠道的包,游戏需要按如下方式进行初始化:
//申请权限 第3个参数 传true QuickSDK.init(productCode,productKey,true,function(){ console.log("init success"); }) //不申请权限 第3个参数 传false QuickSDK.init(productCode,productKey,false,function(){ console.log("init success"); })
QuickSDK.login(function(callbackData){ var message; if(callbackData.status){ console.log('GameDemo:QuickSDK登录成功: uid=>' + callbackData.data.uid); }else{ console.log('GameDemo:QuickSDK登录失败:' + callbackData.message); } })
从回调函数中可获取用户关键信息
注意:若游戏收到失败回调,判断message为cancel时,应再次调用登录接口.
回调范例:
字段 | 类型 | 说明 |
status | bool |
是否登录成功,true成功,false失败 |
data | uid | 渠道uid |
username | 渠道username | |
token |
token 游戏服务器需通过v2/checkUserInfo接口(参见服务器接口文档)验证token和UID的正确性 |
|
isLogin |
是否游客,登录后此值为true |
|
channelId | 渠道ID | |
message |
status为false时,此字段为Failed表示登录失败,为cancel表示玩家取消登录 |
JSON范例
{“status”:true,”data”:{“uid”:”123”,”username”:”quicksdk”,”token”:””,”isLogin”:true},”message”:””}
获取回调信息中的uid和token发回游戏服务器,游戏服务器按 《服务器接入文档》 调用用户验证接口
除主动调用登录后,游戏同时需处理切换帐号的回调通知。注册切换帐号的回调方法如下:
QuickSDK.setSwitchAccountNotification(function(callbackData){ });
注意:一般Android、iOS渠道会收到此回调,H5渠道绝大部分渠道没有此回调
当用户点击购买时,游戏可调用pay方法传入orderInfo对象调起各渠道的支付页面。调用示例如下:
orderInfo = new Object(); orderInfo.productCode = “05425578266356246482673853629430”; orderInfo.uid = 'uid'; orderInfo.username = 'username'; orderInfo.userRoleId = 'roleId1'; orderInfo.userRoleName = '小朋友'; orderInfo.serverId= 1; orderInfo.userServer = '内测1区'; orderInfo.userLevel = 1; orderInfo.cpOrderNo = 'cpOrderNo000001'; orderInfo.amount = '0.01'; orderInfo.subject = '大袋钻石'; orderInfo.desc = '一大袋钻石60个'; orderInfo.callbackUrl = ''; orderInfo.extrasParams = ''; orderInfo.goodsId = 'goods'; orderInfo.count = 60; orderInfo.quantifier = '个'; var orderInfoJson = JSON.stringify(orderInfo); QuickSDK.pay(orderInfoJson,function(payStatusObject){ console.log('GameDemo:下单通知' + JSON.stringify(payStatusObject)); //H5渠道基本没有此回调返回,游戏发货要以服务器通知为准 })
注:UID为渠道的UID
支付后,部分渠道可触发回调函数,函数中可获取是否支付成功,但需要注意,此结果仅仅作为UI展示(或完全不用),发货应以服务器通知为准
orderInfo对象如下:
字段
类型
说明
productCode
必传
QuickSDK后台自动分配的参数
uid
必传
渠道UID
username
必传
渠道username
userRoleId
必传
游戏内角色ID
userRoleName
必传
游戏角色
serverId
必传
角色所在区服ID
userServer
必传
角色所在区服
userLevel
必传
角色等级
cpOrderNo
必传
游戏内的订单,服务器通知中会回传
amount
必传
购买金额(元)
count
必传
购买商品个数
quantifier
必传
购买商品单位,如,个
subject
必传
道具名称
desc
必传
道具描述
callbackUrl
选传
服务器通知地址
extrasParams
选传
透传参数,服务器通知中原样回传
goodsId
必传
商品ID
注:选传的字段值可以为空,但是对象必须包含此属性
回调函数payStatusObject对象中status为true时为支付成功
服务器通知接口参见《QuickSDK服务器对接文档》
游戏需要在玩家登录或角色发生变化调用此接口.
调用示例如下:
var roleInfo = new Object(); roleInfo.isCreateRole = true; roleInfo.roleCreateTime = 1490598150; roleInfo.uid = 12; roleInfo.username = 'username'; roleInfo.serverId = 1; roleInfo.serverName = '内测1区'; roleInfo.userRoleName = '小朋友'; roleInfo.userRoleId = 'roleId1'; roleInfo.userRoleBalance = 1000; roleInfo.vipLevel = 1; roleInfo.userRoleLevel = 1; roleInfo.partyId = 1; roleInfo.partyName = '行会名称'; roleInfo.gameRoleGender = '男'; roleInfo.gameRolePower = 100; roleInfo.partyRoleId = 1; roleInfo.partyRoleName = '会长'; roleInfo.professionId = '1'; roleInfo.profession = '武士'; roleInfo.friendlist =''; var roleInfoJson = JSON.stringify(roleInfo); QuickSDK.uploadGameRoleInfo(roleInfoJson,function(response){ }); }
roleInfo对象字段如下
字段
类型
说明
isCreateRole
必传
仅创建角色时传true,更新信息时传false
roleCreateTime
必传
角色创建时间
uid
必传
渠道UID
username
必传
渠道username
serverId
必传
区服ID
serverName
必传
区服名称
userRoleId
必传
游戏内角色ID
userRoleName
必传
游戏角色
userRoleBalance
必传
角色游戏内货币余额
vipLevel
必传
角色VIP等级
userRoleLevel
必传
角色等级
partyId
必传
公会/社团ID
partyName
必传
公会/社团名称
gameRoleGender
选传
角色性别
gameRolePower
选传
角色战力
partyRoleId
选传
角色在帮派中的ID
partyRoleName
选传
角色在帮派中的名称
professionId
选传
角色职业ID
profession
选传
角色职业名称
friendlist
选传
角色好友列表
注:选传的字段值可以为空,但是对象必须包含此属性
6.1 注销接口调用示范(一般不需要调用此接口,当游戏自己需要做注销账号功能时才调用)
QuickSDK.logout(function(logoutObject){ console.log('Game:成功退出游戏'); })
6.2 注销回调调用示例(注销回调必须接入)
QuickSDK.setLogoutNotification(function(logoutObject){ console.log('Game:玩家点击注销帐号'); })
注意:一般Android、iOS渠道会返回此回调,H5绝大部分渠道没有此回调(一些渠道切换账号返回的是注销成功的回调而不是切换账号的回调,所以游戏一定要接好此回调,在收到注销成功回调后,需要清除当前的角色信息,然后重新进行初始化登录,或者直接reload)
H5渠道有返回实名认证信息的,将通过这个接口返回给游戏
params是自定义参数,游戏可以随便传递,后面是回调函数,数据会在回调里进行返回
注:realName表示是否实名,值为1或者0;age表示是否已经成年,10为未成年,18为成年人;extra为扩展字段
QuickSDK.getExtendsVal(params, function(data){})
8.1 QuickSDK.getChannelType(); 获取渠道ID
8.2 QuickSDK.getExtrasConfig(key); 获取后台配置的产品自定义参数
8.3 QuickSDK.setOnResumeNotification(callback) ; 注册恢复home键时通知
8.4 QuickSDK.setOnStopNotification(callback); 注册按下home键时通知
8.5 QuickSDK.getExtendsVal("getScreenType",function(data){ }); 获取当前屏幕类型,data为JSON格式数据,true表示为刘海屏或者水滴屏,反之则不是。(此方法H5转安卓微端支持;为了适配刘海屏,苹果对HTML的viewport meta标签做了扩展处理,转iOS渠道的包游戏可参看此文档进行处理https://www.jianshu.com/p/bc87d1e25702)
8.6 QuickSDK.getExtendsVal("getRealNameMsg",function(data){ }); 获取当前渠道实名信息&防沉迷信息,data为JSON格式数据,如:
{"uid":"jc453530202","resumeGame":true,"realName":false,"other":"","age":-1} (此方法仅H5转安卓微端支持,但目前渠道基本都做了实名跟防沉迷,游戏无需再调此接口来获取实名信息做防沉迷限制)
8.7 QuickSDK.getExtendsVal("getDeviceId",function(data){ }); 获取QuickSDK生成的设备ID,data为JSON格式数据,如:
{"status":"yes","data":{"deviceId":"ADE41EC04DA7C54A074242EEB78509D9"}}
8.8 QuickSDK.callExtFunction("exit",{}) ; 退出游戏接口
8.9 打开游戏传入的url
QuickSDK.callUrl(url) ; 使用浏览器打开url
QuickSDK.openUrlInApp(url) ; 在游戏内打开url
注意:iOS需要更新打包工具到3.1.4或者以上版本,才可以实现打开游戏传入的url
先在QuickSDK后台,添加自定义参数为:deeplinkCode,值配置为对应渠道的code,然后浏览器打开超链接
举例吊起渠道号为134的H5转安卓包:
9.1 先在后台点击 自定义Meta参数,添加deeplinkCode
9.2 在渠道参数配置页面,将添加的deeplinkCode参数值配置为134
9.3 重新出渠道包
打开134号渠道包
10.接入代码demo地址
https://gameyt.quicksdk.net/demo.php
再次提醒,接完此文档后的游戏地址不能直接用于测试,一定要配置好渠道,用渠道方提供的链接或者打出的渠道包进行测试!!!
另附:
H5游戏上架H5渠道后台配置流程:https://www.quicksdk.com/doc-214.html
H5游戏上架Android或越狱渠道后台配置流程:https://www.quicksdk.com/doc-213.html
李先生:13880511661
QQ:48157910
赵先生:15390049857
QQ:1077535763
孙女士:13551010407
QQ:1799614139
QQ群:698731538