更新日期:2024-03-15H5游戏上架安卓越狱渠道接入文档
	
QuickSDK-H5 是一套建立在H5手游和游戏渠道之间的接入中间件,用以统一各H5渠道、Android渠道、iOS渠道的差异化,游戏研发只需接入QuickSDK即可和本地游戏一样直接上线所有Andorid渠道、iOS渠道.
	
 
区别与H5网页版接入方式,此种接入方式因为最终调用的登录支付为渠道的安卓、iOS代码故需要打包后方可运行,不能直接在PC浏览器上运行.
	
 
QuickSDK的工作流程如下:
	
· 在QuickSDK后台创建对应平台的产品。
· 添加键名为 "H5GameUrl" 的产品自定义参数(参见《如何创建使用自定义参数》).
· 游戏研发同学按照本文档接入登录、支付、服务器通知等接口
· 运营同学在QuickSDK后台添加配置各渠道参数,各渠道中的H5GameUrl参数即为该渠道实际的游戏地址.
· 运营同学使用QuickSDK打包工具一健打出Android各渠道的apk包。
QuickSDK登录流程如下:
· 游戏加载完成后,调用QuickSDK.login(callback) 方法,此方法会调起各渠道的登录界面。
· 用户完成登录后,游戏传入的callback回调方法会被调用,调用时QuickSDK会传入用户信息对象。
· 游戏获取对象的用户UID等信息,完成对用户的授权
QuickSDK支付流程如下:
· 当用户在游戏点击购买,游戏可调用QuickSDK.pay(orderInfo,callback)方法调起各自渠道的支付页面.
· 当用户完成购买够,QuickSDK会向游戏事前配置的发送地址POST数据.
· 游戏服务器接收到QuickSDK服务器通知后,根据通知内容向用户发送道具.
· 游戏客户端也可以从callback中渠道支付通知,但此通知仅做UI展示,不能作为发货依据.
	
	
 
	
在游戏页面引入QuickSDK的JS类库
http://h5.sdk.quicksdk.net/static/lib/libQuickSDKH5_To_Client.js
或 https://sdkapi02.quicksdk.net/static/lib/libQuickSDKH5_To_Client.js
	
 
	
游戏应调用QuickSDK的init接口,同时传入QuickSDK后台分配给游戏的参数.
代码示例:
var productCode = '05425578266356246482673853629430'; //QuickSDK后台自动分配 var productKey = '98253036'; //QuickSDK后台自动分配 QuickSDK.init(productCode,productKey,true);
	
	
针对H5投放平台,QuickSDK会默认生成游客帐号,登录不是必须的,游戏可根据自身情况调用登录接口要求用户完成登录.
针对Android/iOS平台,由于受渠道审核限制,游戏必须在游戏开始时自动调用登录接口。
调用QuickSDK的login方法示例如下:
QuickSDK.login(function(callbackData){
  var message;
  if(callbackData.status){
      message = 'GameDemo:QuickSDK登录成功: uid=>' + callbackData.data.uid;
  }else{
    message = 'GameDemo:QuickSDK登录失败:' + callbackData.message;
  }
    document.getElementById('loginMessage').innerHTML = message;
  });
	
调用后,会触发回调函数.
回调的callbackData对象类型如下:
| 字段 | 
					 类型  | 
				说明 | 
| 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”:”登录成功”}
	
除主动调用登录后,游戏同时需处理切换帐号的回调通知.注册切换帐号的回调方法如下:
QuickSDK.setSwitchAccountNotification(function(callbackData){
});
	
此回调回在玩家切换帐号后触发,参数格式和登录回调一致,游戏需重新完成玩家信息认证操作.
	
用户点击购买时,游戏可调用pay方法传入orderInfo对象调起支付页面.
调用示例如下:
var orderInfo = new Object();
orderInfo.productCode = “05425578266356246482673853629430”;
orderInfo.uid = “uid”;
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 = '';
orderInfo.count = 60;
orderInfo.quantifier = '个';
       
var orderInfoJson = JSON.stringify(orderInfo);
QuickSDK.pay(orderInfoJson,function(payStatusObject){
   console.log('GameDemo:下单通知' + JSON.stringify(payStatusObject));
});
	
支付后,可触发回调函数,函数中可获取是否支付成功,但需要注意,此结果仅仅作为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服务器对接文档》
	
	
调用退出接口调用示例:
QuickSDK.logout(function(logoutObject){console.log('Game:成功退出游戏');})
logoutObject对象包含status和message属性.
注册退出接口示例:
QuickSDK.setLogoutNotification(function(logoutObject){console.log('Game:玩家点击注销帐号');})
	
此回调会在玩家主动在渠道SDK中点击注销或切换帐号时触发
	
	
游戏需要在玩家登录或角色发生变化调用此接口.
调用示例如下:
function uploadGameRoleInfo(){ var roleInfo = new Object(); roleInfo.isCreateRole = true; roleInfo.roleCreateTime = 1490598150; roleInfo.uid = 12; 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){ if(response.status){ document.getElementById('uploadMessage').innerHTML = '提交信息成功'; }else{ document.getElementById('uploadMessage').innerHTML = response.message; } }); }
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 | 选传 | 角色好友列表 | 
注:选传的字段值可以为空,但是对象必须包含此属性.
1.QuickSDK.getChannelType(); 获取渠道ID
2.QuickSDK.getExtrasConfig(key); 获取后台配置的产品自定义参数
3.QuickSDK.setOnResumeNotification(callback) ; 注册恢复home键时通知
4.QuickSDK.setOnStopNotification(callback); 注册按下home键时通知
	
 
	
 
	浏览器打开超链接    channelcode为渠道号
举例吊起渠道号为134的H5转安卓包:
打开134号渠道包 
 
	
	
	
另附H5游戏上架Android渠道后台配置流程:https://www.quicksdk.com/doc-213.html
	
李先生:13880511661
QQ:48157910
赵先生:15390049857
QQ:1077535763
孙女士:13551010407
QQ:1799614139
QQ群:698731538