xuguohong

update

1 -# **公共SDK-H5 JS接入文档** #
2 -
3 ->版本:**1.5**
4 ->
5 ->最后修改:**2020年5月8日**
6 -
7 -## **一、接入准备** ##
8 -
9 -游戏页面引入公共SDK-H5相关JS文件(防止缓存游戏可加个版本或时间戳控制)
10 -
11 -- 接入光卡的引入下面js
12 -- https://static.public.sdk.guangkatf.com/h5_sdk/guangkaH5SDK.js
13 -- 接入光卡海外版引入下面js
14 -- https://static.hk-public.sdk.guangkatf.com/h5_sdk/guangkaH5SDKHK.js
15 -- 接旧公共平台的引入下面js
16 -- https://static.public.sdk.gzyouai.com/h5_sdk/youaiH5SDK.js
17 -
18 -
19 -```
20 -注意:壳包的话需要在给定的链接上添加一个uuid参数用来传机身码(ios:传IDFA,Android:imei)
21 -例子:http://game.html?uuid=idfa
22 -```
23 -## **二、JS接口(对接可参考Demo中的game_Simulate.js中的例子)** ##
24 -
25 -1. **初始化SDK(必接)**
26 -
27 - ![Alt text](1.png)
28 -
29 - //CP在公共平台填写SDK信息后,我方会生成带有参数的游戏链接(如上图所示),例如:http://gameURL?ya_game=游戏项目代号&ya_sn=SDK代号&ya_sv=SDK客户端版本号&ya_ssv=SDK服务端版本号
30 -
31 - //设置公共sdk回调方法
32 - /**
33 - code: {
34 - INIT_SUCCESS: 1,
35 - INIT_FAIL: -1,
36 - LOGIN_SUCCESS: 10,
37 - LOGIN_FAIL: -10,
38 - LOGOUT_SUCCESS: 100,
39 - LOGOUT_FAIL: -100,
40 - SWITCH_SUCCESS: 1000,
41 - SWITCH_FAIL: -1000,
42 - PAY_SUCCESS: 2,//充值以服务端回调结果为准
43 - PAY_FAIL: -2,
44 - PAY_CANCEL:-3,//支付取消
45 - EXIT_SUCCESS: 4,//退出成功
46 - EXIT_CANCEL: -4//取消退出
47 - }
48 - @param {*} code 为youaiH5SDK.code中对应值
49 - @param {*} msg
50 - */
51 - callback: function (code, msg) {
52 - console.log(code, msg);
53 - switch (code) {
54 - case youaiH5SDK.code.INIT_SUCCESS://初始化成功 msg为描述
55 - console.log("game init success")
56 - break;
57 - case youaiH5SDK.code.LOGIN_SUCCESS://登录成功
58 - /**
59 - *custom: "test"//透传参数
60 - *openId: "x1111dc104b800724d112195b61e1ff5"
61 - *serverSign: "ccb0488a46be85b9fc1b5bd55b532376"//签名校验sign
62 - *timestamp: "1554174508038"
63 - **/
64 - console.log("game login success");
65 - console.log("openId:" + msg.openId + "custom:" + msg.custom + "serverSign:" + msg.serverSign + "timestamp:" + msg.timestamp);
66 - break;
67 - case youaiH5SDK.code.LOGOUT_SUCCESS:
68 - console.log("game logout success")
69 - //回到游戏登录入口,然后调用登录接口
70 - login();
71 - break;
72 - case youaiH5SDK.code.SWITCH_SUCCESS:
73 - console.log("game switch account success")
74 - //游戏处理切换账号成功逻辑
75 - break;
76 - case youaiH5SDK.code.PAY_SUCCESS:
77 - console.log("game pay success")
78 - break;
79 - case youaiH5SDK.code.EXIT_SUCCESS:
80 - //游戏处理退出逻辑
81 - break;
82 - }
83 - },
84 - youaiH5SDK.init(this.callback);
85 -
86 -2. **账号登录(必接)**
87 -
88 - var param = "test";//透传参数
89 - //启用账号登录接口
90 - youaiH5SDK.login(param);
91 -
92 -3. **注销账号/切换账号(必接)**
93 -
94 - //注销接口
95 - if(youaiH5SDK.hasLogout()){//判断是否存在注销接口
96 - youaiH5SDK.logout();
97 - }
98 - //切换账号接口
99 - if(youaiH5SDK.hasSwitchAccount()){//判断是否存在切换账号接口
100 - youaiH5SDK.switchAccount();
101 - }
102 -
103 - 例子:
104 - /**
105 - * youaiH5SDK.hasLogout()
106 - * youaiH5SDK.hasSwitchAccount()
107 - * 游戏可以根据上面两个接口判断是否提供切换账号接口
108 - */
109 - switchAccount: function () {
110 - if (youaiH5SDK.hasLogout()) {//存在注销接口,注销后会回调到初始化接口的注销类型的回调中
111 - youaiH5SDK.logout();
112 - }else if (youaiH5SDK.hasSwitchAccount()) {//存在切换账号接口,切换账号成功后会回调到初始化接口中的切换账号类型回调中
113 - console.log("end switch account");
114 - youaiH5SDK.switchAccount();
115 - }else{//不存在切换账号接口,游戏自己处理
116 -
117 - }
118 - }
119 -
120 -4. **提交数据信息(必接)**
121 -
122 - 在游戏中对应点根据不同的type进行调用
123 - /**
124 - * 为youaiH5SDK.type中对应类型值
125 - type: {
126 - arriveServerSelectPage: 1,//到达选服页面
127 - createRole: 2,//创建角色时调用
128 - enterGame: 3,//进入游戏时调用
129 - upRoleLevel: 4,//角色升级日志
130 - arriveEntrance: 5,//首屏日志
131 - enterServer: 6,//选服完成,点击进入对应服时
132 - arriveFirstScene: 7,//到达游戏内第一场景时调用
133 - arriveLoadingFinish: 8,//资源加载完成
134 - arriveLoadingZero: 9,//刚开始加载资源类型
135 - arriveCreateRolePage: 10//到达创建角色页面
136 - }
137 - */
138 - var submitType = youaiH5SDK.type.enterGame;//进入游戏
139 - //设置角色信息
140 - var roleInfo = {
141 - "roleId": "角色ID",
142 - "roleName": "角色名称",
143 - "roleLevel": "角色等级",
144 - "roleSex": "角色性别 1:男 0:女",
145 - "serverId": "服务器ID",
146 - "serverName": "服务器名称",
147 - "roleCTime": "角色创建时间",
148 - "partyName": "工会名字",
149 - "roleType": "角色类型",
150 - "roleChangeTime": "角色更新时间",
151 - "vipLevel": "VIP等级",
152 - "diamond": "角色金币数量",
153 - "moneyType": "商品单位",
154 - "custom": "扩展参数",
155 - "isNew":"新创建角色第一次登录进游戏为1,其他为0",
156 - "score":"战力",
157 - "roleLevelReborn":"转生等级,没有传0"
158 - };
159 - //以上信息中,游戏如没有传空值即可
160 - //启用提交信息接口
161 - youaiH5SDK.submitData(submitType, roleInfo);
162 -
163 -5. **支付(必接)**
164 -
165 - //设置订单参数
166 - var payInfo = {
167 - "serverId": "服务器ID",
168 - "serverName": "服务器名字",
169 - "playerId": "角色ID",
170 - "openId":"渠道用户ID",
171 - "playerName": "角色名字",
172 - "playerLevel": "角色等级",
173 - "postAmount": "金额",
174 - "productId": "商品ID",
175 - "productName": "商品名称",
176 - "productDesc": "商品描述",
177 - "custom": "自定义透传参数",
178 - "exchange": "游戏币与人民币(元)的兑换比例",
179 - "otherInfo": "额外信息",
180 - "timestamp": "时间戳"
181 - };
182 - //以上信息中,游戏如没有传空值即可
183 - //启用支付接口
184 - youaiH5SDK.pay(payInfo);
185 -
186 -6. **退出游戏(选接)**
187 -
188 - if(youaiH5SDK.hasShowExitDialog()){//渠道含有退出框,游戏在回调中处理退出逻辑
189 - youaiH5SDK.showExitDialog();
190 - }else{
191 - //游戏自己处理退出逻辑后调用exitGame()接口
192 - youaiH5SDK.exitGame();
193 - }
194 -
195 -7. **获取公共层参数接口(选接)**
196 -
197 - 说明:本接口通过键获取对应的参数值,需要在初始化成功后才能调用
198 - /**
199 - 获取公共层参数
200 - @param {string} key
201 - */
202 - getParamValueByKey:function (key)
203 -
204 - 例子:
205 - youaiH5SDK.getParamValueByKey("custom");//获取公共后台的自定义参数
206 - youaiH5SDK.getParamValueByKey("channelParameter1");//渠道标识1
207 - youaiH5SDK.getParamValueByKey("channelParameter2");//渠道标识2
208 - youaiH5SDK.getParamValueByKey("channelId");//渠道号
209 -
210 -8. **扩展接口(游戏可根据渠道要求看是否接入)**
211 -
212 - /**
213 - 扩展接口
214 - @param {*} type 扩展类型
215 - @param {*} data 传递数据 除特殊说明其他暂时不传)
216 - @param {*} callback 回调方法
217 - */
218 - expansionInterface: function (type, data, callback);
219 -
220 - 示例:
221 - /**
222 - * 传公共sdk扩展类型
223 - * {
224 - gameSetting: 100,//功能设置
225 - downloadMicroClent: 101,//下载微端
226 - share: 102,//分享
227 - focus: 103,//关注
228 - save2Desktop: 104,//保存到桌面
229 - realVerify: 105,//实名认证(已弃用)
230 - back2Game: 106,//返回游戏
231 - bindPhone: 107,//绑定手机有奖接口
232 - msgSecCheck: 108, //违规内容判断接口
233 - checkBalance:109, //查询余额
234 - showAd:110, //广告类型
235 - {
236 - type:1,//广告操作类型 1:显示视频广告 2:显示banner广告 -2:关闭banner广告 3:显示插屏广告
237 - style:{//type等于2时需要传style其它类型可不传
238 - left:0,//banner左上角横坐标位置
239 - top:0,//banner左上角纵坐标位置
240 - width:0,//宽度
241 - height:0//高度
242 - }
243 - }
244 - score: 111,//评分
245 - kefu: 112,//客服接口
246 - queryProductsInfo: 113,//根据sku(商品ID)查询商品信息
247 - userCenter:114,//用户中心
248 - eventTrack:115, //事件上报
249 - realNameVerify:116//新实名认证接口
250 - }
251 - */
252 - var expansion_type = youaiH5SDK.expansion_type.gameSetting;//功能设置
253 - /**
254 - * {
255 - code:0,//0:成功 其他为失败
256 - message:"success",//返回描述
257 - data:{//gameSetting时返回下面数据
258 - has_micro_client: 0, //是否有微端 0:没有,1:有,2已经在微端中
259 - is_share: 0, //是否有分享接口 0:没有,1:有
260 - is_focus: 0, //是否有关注 0:没,1:有,2:已经关注
261 - is_apple_pay: 0, //是否开启苹果支付 0:不开启 1:开启
262 - is_open_pay: 1,//1开启充值入口,其他为关闭充值入口 默认开启
263 - is_desktop: 0, //是否有保存桌面 0:没有 1:有
264 - is_switch_account: 0, //是否有切换账号 0:没有 1有
265 - is_realverify: 0, //(已弃用)是否有实名认证 0:没有 1:有 2:已认证
266 - is_real_name_verify:0,//是否有实名认证接口 -1:不存在实名功能(cp和渠道协商) 0:没有界面接口渠道内部有实名功能,1:有界面接口 2:已认证
267 - is_encrypt:0,//0:表示生日明文传递 1:表示生日密文传递(游戏将获取到的密文右移两位 eg:1990101 >> 2)
268 - birthday:"",//用户实名生日(数据是加密的,游戏将获取到的密文右移两位获取真实数据eg:1990101 >> 2) is_real_name_verify为2时才有数据
269 - is_super_kefu: 0, //是否有超级客服 0:没 1:有
270 - is_backtogame: 0, //是否有返回按钮 0:没有,1:有
271 - is_lock: 0, //是否竖屏 0:研发默认样式 1:强制竖屏
272 - is_focus_gift: 0, //关注有礼 0:关闭 1:开启
273 - is_bindphone: 0, //绑定手机 0:关闭 1:开启 2:已绑定手机
274 - is_msgseccheck: 0, //违规内容判断接口 0:没有,1:有
275 - is_checkbalance: 0,//是否有查询 0:没有,1:有
276 - is_showad: 0,//是否有广告接口 0:没有,1:有
277 - is_kefu: 0,//是否有客服 0:没有,1:有(调用对应的客服类型接口(kefu))
278 - is_score: 0,//是否有评分接口 0:没有,1:有(调用对应的评分类型接口(score))
279 - is_query_products_info: 0,//是否有查询商品信息接口 0,没有 1:有(调用对应的查询商品信息接口(queryProductsInfo))
280 - is_usercenter:0,//是否有用户中心接口 0:没有 1:有
281 - is_event_track: 0// 0:没有 1:有 是否有事件上报接口
282 - }
283 - }
284 - * @param {*} result
285 - */
286 - var expansionCallBack = function(result){
287 - }
288 - youaiH5SDK.expansionInterface(expansion_type,"",expansionCallBack);
289 -
290 -
291 -8.1. **扩展接口(商品信息查询(目前用于海外渠道显示商场))**
292 -
293 - /**
294 - 扩展接口
295 - @param {*} type youaiH5SDK.expansion_type.queryProductsInfo
296 - @param {*} data "productId1,productId2" //传入要查询的商品ID字符串,多个之前用逗号隔开
297 - @param {*} callback 回调方法
298 - */
299 - expansionInterface: function (type, data, callback);
300 -
301 - 示例:
302 -
303 - /**
304 - * {
305 - code:0,//0:成功 其他为失败
306 - message:"success",//返回描述
307 - data:{//查询商品信息返回数据(queryProductsInfo)
308 - "android.test.purchased0": {//key为商品ID
309 - "displayPrice": "₩1167.28",//显示价格
310 - "price": "₩1,167", //实际价格(去除小数点) 充值传递
311 - "priceAmountMicros": 1167284249, //数字价格
312 - "priceCurrencyCode": "KRW", //货币代码
313 - "sku": "android.test.purchased0",//商品ID
314 - "title": "名称示例"
315 - },
316 - "android.test.purchased1": {
317 - "displayPrice": "₩1167.28",
318 - "price": "₩1,167",
319 - "priceAmountMicros": 1167284249,
320 - "priceCurrencyCode": "KRW",
321 - "sku": "android.test.purchased1",
322 - "title": "名称示例"
323 - }
324 - }
325 - }
326 - * @param {*} result
327 - */
328 - var expansionCallBack = function(result){
329 - }
330 - youaiH5SDK.expansionInterface(youaiH5SDK.expansion_type.queryProductsInfo,"test1,test2,test3",expansionCallBack);
331 -
332 -
333 -8.2. **扩展接口(事件上报类型)**
334 -
335 - /**
336 - 扩展接口
337 - @param {*} type youaiH5SDK.expansion_type.eventTrack
338 - event_type: {
339 - first_month_card: 1,//首次购买月卡
340 - first_recharge: 2,//首次充值
341 - vip_to_value: 3,//vip达到某一等级上报(cp与渠道沟通)
342 - recharge_to_value: 4,//充值到某值时(cp与渠道沟通)
343 - first_join_union: 5//加入工会/联盟
344 - }
345 - @param {*} data 对应传youaiH5SDK.event_type中的类型值
346 - @param {*} callback 回调方法
347 - */
348 - expansionInterface: function (type, data, callback);
349 -
350 - 示例:
351 - var expansionCallBack = function(result){
352 - }
353 - //首次充值月卡
354 - youaiH5SDK.expansionInterface(youaiH5SDK.expansion_type.eventTrack,youaiH5SDK.event_type.first_month_card,expansionCallBack);
355 -
356 -8.3. **扩展接口(实名认证)**
357 -
358 - /**
359 - 扩展接口(根据gameSetting中获取字段is_real_name_verify为有接口时调用)
360 - @param {*} type youaiH5SDK.expansion_type.realNameVerify
361 - @param {*} data 传""
362 - @param {*} callback 回调方法
363 - {
364 - code:0,//0成功,其他失败
365 - is_encrypt:0,//0:表示生日明文传递 1:表示生日密文传递(游戏将获取到的密文右移两位 eg:1990101 >> 2)
366 - message:"",//空值不做处理
367 - data:"20190101"//用户实名生日
368 - }
369 - */
370 - expansionInterface: function (type, data, callback);
371 -
372 - 示例:
373 - var expansionCallBack = function(result){
374 - }
375 - youaiH5SDK.expansionInterface(youaiH5SDK.expansion_type.realNameVerify,"",expansionCallBack);
376 -
377 -
378 -9. **统计(大数据小组要求游戏接入)**
379 -
380 - 客户端日志接入说明
381 -
382 - 接入方式:HTTP
383 - 数据格式:JSON
384 -
385 - 格式说明:
386 - 一条完整的日志,json格式为:
387 - {
388 - “headers” : {"product" : "roh5"}, //头信息
389 - “body” : “2017-12-19 12:19:07|click|1|qd|dqd|xqd” //日志内容
390 - }
391 - 一次请求发送的格式必须是以上json的数组格式的字符串形式,如:
392 - [
393 - {
394 - “headers” : {"product" : "roh5"},
395 - “body” : “2017-12-19 12:19:07|click|1|qd|dqd|xqd”
396 - }, //发送的第一条日志
397 - {
398 - “headers” : {"product" : "roh5"},
399 - “body” : “2017-12-19 12:19:07|click|1|qd|dqd|xqd”
400 - }, //发送的第二条日志
401 - …… //第三条……
402 - ]
403 -
404 - 如果一次只发一条记录,也需要用长度为1的数组,如:
405 - [
406 - {
407 - “headers” : {"product" : "roh5"},
408 - “body” : “2017-12-19 12:19:07|click|1|qd|dqd|xqd”
409 - }
410 - ]
411 -
412 - 其他说明:
413 - Json中的headers暂时先传一个产品代号,后续有需要再扩展日志中,头两个字段是固定的,第一个字段必须是“yyyy-MM-dd HH:mm:ss”格式的时间戳,第二个字段是日志类型名称(如login,click等…),各个字段以“|”号进行分隔。
414 -
415 - 如果数据本身存在竖线,则需要使用中文竖线”丨”进行替换
416 -
417 - ---------------------------------
418 -
419 - //以上是大数据小组要的统计信息格式
420 - //设置信息
421 - var data = 统计信息,例如:[{ "headers": { "product": "roh5" }, "body": "2018-03-14 17:57:21|test|5|qd|dqd|xqd|22222|20qd|10|1050055" }];
422 - //设置统计监听
423 - var statisticsListener = {
424 - onStatisticsSuccess: function () {
425 - alert("Statistic success!");
426 - },
427 - onStatisticsFail: function () {
428 - alert("Statistic fail!");
429 - }
430 - };
431 - //启用统计接口
432 - youaiH5SDK.statistics(data, statisticsListener);
No preview for this file type