Showing
2 changed files
with
0 additions
and
432 deletions
公共js接入文档.md
deleted
100644 → 0
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 | -  | ||
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); |
公共js接入文档.pdf
0 → 100644
No preview for this file type
-
Please register or login to post a comment