Commit 12e5925fadbbcddf789ef4fc6875ccaaaf959e23

Authored by 宋庆平
1 parent f76f173b

支付宝版本sdk

sdk/Analytics.ts
1 -import TAMgr from "../../framework/ta/TAMgr";  
2 -import { SDKLogLevel } from "../../framework/wxsdk/service/LogService";  
3 -import WXSDK from "../../framework/wxsdk/WXSDK";  
4 - 1 +import { LogLevel } from "../wxsdk/service/LogService";
  2 +import WXSDK from "../wxsdk/WXSDK";
5 3
6 4
7 export class Analytics { 5 export class Analytics {
8 private static _instance: Analytics; 6 private static _instance: Analytics;
9 - private systemType: number; 7 + private systemType: number
10 static get I(): Analytics { 8 static get I(): Analytics {
11 return this._instance || (this._instance = new Analytics); 9 return this._instance || (this._instance = new Analytics);
12 } 10 }
@@ -22,14 +20,8 @@ export class Analytics { @@ -22,14 +20,8 @@ export class Analytics {
22 20
23 // 游戏打点 21 // 游戏打点
24 dot(dot_type: string, data: any = {}) { 22 dot(dot_type: string, data: any = {}) {
25 - if (typeof wx == 'undefined'&&typeof my == 'undefined') {  
26 - console.log("dot", dot_type, data);  
27 - return  
28 - }  
29 - // 数数  
30 - if (['receive_reward', 'button','merge_item','addToTempStore','talk','fund','mail','milktea','mail','activity_welcome','activity_raffle','activity_bp','piggy','invite','apple_tree','energy_cost','gem_cost','gold_cost','dress_cost','gem_output','gold_output','energy_output','exp_output','dress_output'].indexOf(dot_type) == -1) {// 排除部分key  
31 - TAMgr.Ins.dot(dot_type, data);  
32 - } 23 + if (typeof my == 'undefined') return
  24 + // wx.aldSendEvent(dot_type, data); //阿拉丁打点,没需求注释即可
33 return WXSDK.stat.dot(dot_type, data); 25 return WXSDK.stat.dot(dot_type, data);
34 } 26 }
35 27
@@ -52,7 +44,9 @@ export class Analytics { @@ -52,7 +44,9 @@ export class Analytics {
52 * @param stagename 关卡名称,格式:"xx模式-第x关" 44 * @param stagename 关卡名称,格式:"xx模式-第x关"
53 * @param pattern 模式名称,格式:"xx模式" 45 * @param pattern 模式名称,格式:"xx模式"
54 */ 46 */
55 - levelStart(stageid, stagename, pattern) { 47 + levelStart(stageid, stagename?, pattern?) {
  48 + if (!stagename) stagename = `第${stageid}关`
  49 + if (!pattern) pattern = '普通模式'
56 return WXSDK.stat.levelStart(stageid, stagename, pattern) 50 return WXSDK.stat.levelStart(stageid, stagename, pattern)
57 } 51 }
58 /** 52 /**
@@ -67,6 +61,8 @@ export class Analytics { @@ -67,6 +61,8 @@ export class Analytics {
67 * @param params_desc 道具描述 61 * @param params_desc 道具描述
68 */ 62 */
69 levelRunning(stageid, stagename, pattern, event, params_id, params_name, params_count, params_desc?) { 63 levelRunning(stageid, stagename, pattern, event, params_id, params_name, params_count, params_desc?) {
  64 + if (!stagename) stagename = `第${stageid}关`
  65 + if (!pattern) pattern = '普通模式'
70 return WXSDK.stat.levelRunning(stageid, stagename, pattern, event, params_id, params_name, params_count, params_desc) 66 return WXSDK.stat.levelRunning(stageid, stagename, pattern, event, params_id, params_name, params_count, params_desc)
71 } 67 }
72 /** 68 /**
@@ -78,8 +74,10 @@ export class Analytics { @@ -78,8 +74,10 @@ export class Analytics {
78 * @param times 时间 74 * @param times 时间
79 * @param perc 失败时的完成进度 (浮点数) 75 * @param perc 失败时的完成进度 (浮点数)
80 */ 76 */
81 - async levelEnd(stageid, stagename, pattern, event, times, perc?) {  
82 - return WXSDK.stat.levelEnd(stageid, stagename, pattern, event, times, perc) 77 + async levelEnd(stageid, stagename, pattern, event, times, perc?, valence = 0) {
  78 + if (!stagename) stagename = `第${stageid}关`
  79 + if (!pattern) pattern = '普通模式'
  80 + return WXSDK.stat.levelEnd(stageid, stagename, pattern, event, times, perc,valence)
83 } 81 }
84 82
85 83
@@ -90,7 +88,7 @@ export class Analytics { @@ -90,7 +88,7 @@ export class Analytics {
90 * @param level 日志等级 88 * @param level 日志等级
91 * @returns 89 * @returns
92 */ 90 */
93 - clientLog(content, level = SDKLogLevel.debug) { 91 + clientLog(content, level = LogLevel.debug) {
94 return WXSDK.stat.clientLog(content, level) 92 return WXSDK.stat.clientLog(content, level)
95 } 93 }
96 /** 94 /**
@@ -103,18 +101,14 @@ export class Analytics { @@ -103,18 +101,14 @@ export class Analytics {
103 consume(id: number, typ: number, nums: number, gsne: string) { 101 consume(id: number, typ: number, nums: number, gsne: string) {
104 return WXSDK.stat.consume(id, typ, nums, gsne) 102 return WXSDK.stat.consume(id, typ, nums, gsne)
105 } 103 }
106 - /**  
107 - * loading上报  
108 - * @param typ 1开始加载、2加载进行中、3加载结束  
109 - * @param stageid 加载id  
110 - * @param stagename 加载内容  
111 - * @param event complete:成功 fail:失败  
112 - * @param times 加载消耗时间 单位毫秒  
113 - * @param perc 完成度  
114 - */  
115 - loading(typ: string, stageid: string, stagename: string, event: string, times: string, perc?: number) {  
116 - return WXSDK.stat.loading(typ, stageid, stagename, event, times, perc)  
117 - }  
118 104
119 105
120 -}  
121 \ No newline at end of file 106 \ No newline at end of file
  107 +}
  108 +export enum EventKey {
  109 + toggleScene = 'toggleScene',
  110 + recoverGame = 'recoverGame',
  111 + replayGame = 'replayGame',
  112 + settingClose = 'settingClose',
  113 + updateLvUI = 'updateLvUI',
  114 +
  115 +}
sdk/GameServicePlus.ts
@@ -1,377 +0,0 @@ @@ -1,377 +0,0 @@
1 -import DataService from "../../framework/wxsdk/service/DataService";  
2 -import GameService from "../../framework/wxsdk/service/GameService";  
3 -import WxPay from "../../framework/wxsdk/wx/WxPay";  
4 -import SDKApiPlus from "./SDKApiPlus";  
5 -  
6 -  
7 -  
8 -export default class GameServicePlus extends GameService {  
9 - memberSave(content: string, params: any = {}) {  
10 - return SDKApiPlus.memberSave({ uid: DataService.I.UserId, token: DataService.I.Token, content, ...params });  
11 - }  
12 -  
13 - memberGet() {  
14 - return SDKApiPlus.memberGet({ uid: DataService.I.UserId, token: DataService.I.Token });  
15 - }  
16 - memberSesetAup() {  
17 - return SDKApiPlus.memberSesetAup({ uid: DataService.I.UserId, token: DataService.I.Token });  
18 - }  
19 -  
20 - memberClear() {  
21 - return SDKApiPlus.memberClear({ uid: DataService.I.UserId, token: DataService.I.Token });  
22 - }  
23 -  
24 - getGameNotice() {  
25 - return SDKApiPlus.notice();  
26 - }  
27 -  
28 - mail() {  
29 - return SDKApiPlus.mail({ uid: DataService.I.UserId, token: DataService.I.Token });  
30 - }  
31 -  
32 - /**  
33 - * 改变邮件状态  
34 - * @param id id为0或不传id时为 一键领取、一键删除  
35 - * @param status 1已读 2领取 3删除。如同时修改多个状态格式:1,2  
36 - * @returns  
37 - */  
38 - updateMailStatus(id: number, status: string) {  
39 - return SDKApiPlus.mailStatus({ id, status, uid: DataService.I.UserId, token: DataService.I.Token });  
40 - }  
41 -  
42 - getQRcode() {  
43 - return SDKApiPlus.QRcode();  
44 - }  
45 -  
46 - convertCDkey(cdkey: string) {  
47 - return SDKApiPlus.cdkey({ uid: DataService.I.UserId, token: DataService.I.Token, cdkey: cdkey });  
48 - }  
49 -  
50 - clearData() {  
51 - return SDKApiPlus.clearData({ uid: DataService.I.UserId, token: DataService.I.Token });  
52 - }  
53 -  
54 - goodsList() {  
55 - return SDKApiPlus.goodsList({ uid: DataService.I.UserId, token: DataService.I.Token });  
56 - }  
57 -  
58 - createOrder(goodid: string) {  
59 - return SDKApiPlus.createOrder({ uid: DataService.I.UserId, token: DataService.I.Token, goodid });  
60 - }  
61 -  
62 - queryOrder(no: string) {  
63 - return SDKApiPlus.queryOrder({ uid: DataService.I.UserId, token: DataService.I.Token, no });  
64 - }  
65 -  
66 - confirmOrder(no: string) {  
67 - return SDKApiPlus.confirmOrder({ uid: DataService.I.UserId, token: DataService.I.Token, no });  
68 - }  
69 -  
70 - /**  
71 - * 支付  
72 - * @param params  
73 - * @param opts  
74 - * @returns  
75 - */  
76 - pay(params: { payid: string, goodid: string, money: number; orderid: string }, opts: any = {}) {  
77 - return WxPay.I.pay(params, opts);  
78 - }  
79 - /**  
80 - * 订单查询  
81 - */  
82 - orderQuery(source) {  
83 - return SDKApiPlus.orderQuery({  
84 - ...this.buildParams(),  
85 - source  
86 - });  
87 - }  
88 - /**  
89 - * 订单查询  
90 - */  
91 - preorder(goodid: string, orderid: string) {  
92 - return SDKApiPlus.preorder({  
93 - ...this.buildParams2(),  
94 - token: DataService.I.Token,  
95 - goodid, orderid  
96 - });  
97 - }  
98 -  
99 - /**  
100 - * 获取玩家历史存档  
101 - * @param uid  
102 - * @param token  
103 - */  
104 - getUserHistory(uid: string, token: string) {  
105 - return SDKApiPlus.getUserHistory({ uid: uid, token: token });  
106 - }  
107 -  
108 - /**  
109 - * 获取玩家历史存档  
110 - * @param data //需要包含uid,token  
111 - */  
112 - saveUserHistory(data: any) {  
113 - return SDKApiPlus.saveUserHistory(data);  
114 - }  
115 -  
116 - /**  
117 - * 重置GM标识  
118 - */  
119 - setAup(typ: number = 0) {  
120 - return SDKApiPlus.setAup({ uid: DataService.I.UserId, token: DataService.I.Token, typ });  
121 - }  
122 -  
123 - /**  
124 - * 获取分享图片  
125 - * @param items 2,1,0|3,1,1|3,1,1|3,1,1|3,1,1格式:2,1,0(类型,id,领取状态)领取状态:1已领取0未领取  
126 - * @param zoom 图片缩放比例  
127 - * @returns  
128 - */  
129 - getShareImage(items: string, zoom: number = 1) {  
130 - return SDKApiPlus.getShareImg({ uid: DataService.I.UserId, token: DataService.I.Token, items, zoom });  
131 - }  
132 -  
133 - /**  
134 - * 获取我的今日分享  
135 - * @param refresh 是否刷新  
136 - */  
137 - getShare(refresh?: number) {  
138 - let req = { uid: DataService.I.UserId, token: DataService.I.Token };  
139 - if (refresh) {  
140 - req['refresh'] = refresh;  
141 - }  
142 - return SDKApiPlus.getShare(req);  
143 - }  
144 -  
145 - /**  
146 - * 获取好友分享详情  
147 - * @param id 分享id  
148 - * @param date 分享日期 格式:20220524  
149 - */  
150 - getShareInfo(id: number, date: string) {  
151 - return SDKApiPlus.getShareInfo({ uid: DataService.I.UserId, token: DataService.I.Token, id, date });  
152 - }  
153 -  
154 - /**  
155 - * 领取好友分享  
156 - * @param id 分享id  
157 - * @param date 分享日期 格式:20220524  
158 - * @param itemid 分享选项ID  
159 - */  
160 - getShareReward(id: number, date: string, itemid: number) {  
161 - return SDKApiPlus.receiveShare({ uid: DataService.I.UserId, token: DataService.I.Token, id, date, itemid });  
162 - }  
163 -  
164 - /**  
165 - * 领取额外进度奖励  
166 - * @param id 分享id  
167 - * @param date 分享日期 格式:20220524  
168 - */  
169 - getProgressReward(id: number, date: string) {  
170 - return SDKApiPlus.getProgressReward({ uid: DataService.I.UserId, token: DataService.I.Token, id, date });  
171 - }  
172 -  
173 - saveStory(key: string, data: string) {  
174 - // return SDKApiPlus.saveStory({  
175 - // id: UserManager.I.curStory.id,  
176 - // lv: UserManager.I.curStory.lv,  
177 - // fbid: UserManager.I.curStory.fbid,  
178 - // fbindex: UserManager.I.curStory.fbindex,  
179 - // data,  
180 - // uid: DataService.I.UserId,  
181 - // token: DataService.I.Token,  
182 - // });  
183 - }  
184 -  
185 - /**  
186 - * 我的邀请详情  
187 - * @returns  
188 - */  
189 - getInviteInfo() {  
190 - return SDKApiPlus.getInviteInfo({ uid: DataService.I.UserId, token: DataService.I.Token });  
191 - }  
192 -  
193 - /**  
194 - * 领取邀请奖励  
195 - * @param id 挡位id  
196 - */  
197 - receiveInvite(id: number) {  
198 - return SDKApiPlus.receiveInvite({ uid: DataService.I.UserId, token: DataService.I.Token, id });  
199 - }  
200 -  
201 - /**  
202 - * 心跳  
203 - */  
204 - beatheart() {  
205 - return SDKApiPlus.heartbeat({ uid: DataService.I.UserId, token: DataService.I.Token });  
206 - }  
207 - /**  
208 - * 周卡/月卡列表  
209 - */  
210 - recCardList() {  
211 - return SDKApiPlus.recCardList({ uid: DataService.I.UserId, token: DataService.I.Token });  
212 - }  
213 -  
214 - /**  
215 - * 领取周卡/月卡奖励  
216 - * @param typ 第几天 week周 month月  
217 - */  
218 - recCardReward(typ: string) {  
219 - return SDKApiPlus.recCardReward({ uid: DataService.I.UserId, token: DataService.I.Token, typ });  
220 - }  
221 -  
222 - /**  
223 - * 领取基金列表  
224 - */  
225 - recGrowthList() {  
226 - return SDKApiPlus.recGrowthList({ uid: DataService.I.UserId, token: DataService.I.Token });  
227 - }  
228 -  
229 - /**  
230 - * 领取基金列表  
231 - * @param goodid 购买的基金商品ID  
232 - * @param level 等级  
233 - */  
234 - recGrowthReward(goodid: string, level: number) {  
235 - return SDKApiPlus.recGrowthReward({ uid: DataService.I.UserId, token: DataService.I.Token, goodid, level });  
236 - }  
237 -  
238 - /**  
239 - * 获取无尽礼包数据  
240 - */  
241 - recEndlessList(groupId: string) {  
242 - return SDKApiPlus.recEndlessList({ uid: DataService.I.UserId, token: DataService.I.Token, group_id: groupId });  
243 - }  
244 -  
245 - /**  
246 - * 领取无尽礼包  
247 - */  
248 - recEndlessReward(groupId: string, id: string, date: string) {  
249 - return SDKApiPlus.recEndlessReward({ uid: DataService.I.UserId, token: DataService.I.Token, group_id: groupId, id, date });  
250 - }  
251 -  
252 - /**  
253 - * 获取新手礼包数据  
254 - */  
255 - getNewbieGiftData() {  
256 - return SDKApiPlus.getNewbieGiftData({ uid: DataService.I.UserId, token: DataService.I.Token });  
257 - }  
258 -  
259 - /**  
260 - * 领取新手礼包  
261 - * @param days 第几天  
262 - */  
263 - recNewbieGift(days: string) {  
264 - return SDKApiPlus.recNewbieGift({ uid: DataService.I.UserId, token: DataService.I.Token, days });  
265 - }  
266 -  
267 -  
268 - /**  
269 - * 订阅消息  
270 - * @param tmplId 订阅ID  
271 - * @param message 订阅内容  
272 - * @param sendtime 订阅发送时间s二选一参数  
273 - * @param times 订阅延迟时间s二选一参数  
274 - * @param status 1取消以前相同模板信息,默认为0不取消  
275 - */  
276 - async sendSubScribe(tmplId: string, message: string, sendtime: number, times: number = 0, status: number = 1) {  
277 - let uid = +DataService.I.UserId;  
278 - let token = DataService.I.Token + '';  
279 - let openid = DataService.I.OpenId + '';  
280 -  
281 - let data = {  
282 - uid,  
283 - token,  
284 - openid,  
285 - status,  
286 - message: encodeURIComponent(message),  
287 - temid: tmplId  
288 - };  
289 - if (times) {  
290 - data["times"] = times;  
291 - } else {  
292 - data["sendtime"] = Math.floor(sendtime);  
293 - }  
294 - let back = await SDKApiPlus.sendsubscribe(data)  
295 - return back;  
296 - }  
297 -  
298 -  
299 - /**  
300 - * 取消订阅消息  
301 - * @param tmplId 订阅ID  
302 - */  
303 - async cancelSubscribe(tmplId: string) {  
304 - let uid = +DataService.I.UserId;  
305 - let token = DataService.I.Token + '';  
306 - let openid = DataService.I.OpenId + '';  
307 -  
308 - let data = {  
309 - uid,  
310 - token,  
311 - openid,  
312 - temid: tmplId  
313 - };  
314 - let back = await SDKApiPlus.cancelSubscribe(data)  
315 - return back;  
316 - }  
317 - /**  
318 - * 自定义活动  
319 - * @param id 活动ID(后台的ID)  
320 - */  
321 - activityCustom(id?: string) {  
322 - return SDKApiPlus.activityCustom({ id });  
323 - }  
324 -  
325 - /**  
326 - * 添加排行榜  
327 - * @param typ 游戏端自定义排行标识  
328 - * @param fraction 分数 如果上报的分数小于以前上报的分数,则不会更新  
329 - * @param rankData 扩展字段  
330 - * @returns  
331 - */  
332 - rankAddV2(typ: string, fraction: number, rankData?: string) {  
333 - return SDKApiPlus.rankAddV2({ typ, fraction, rankData, uid: DataService.I.UserId, token: DataService.I.Token });  
334 - }  
335 - /**  
336 - * 排行榜列表  
337 - * @param percent percent等于1 的时候会返回排行榜总人数和自己的当前排名  
338 - */  
339 - rankListV2(typ: string, percent: number = 0) {  
340 - return SDKApiPlus.rankListV2({ typ, percent, uid: DataService.I.UserId, token: DataService.I.Token });  
341 - }  
342 - /**  
343 - * 活动排行榜配置  
344 - * @param name 游戏端自定义排行标识  
345 - */  
346 - activityRankConfig(name: string) {  
347 - return SDKApiPlus.activityRankConfig({ name, uid: DataService.I.UserId, token: DataService.I.Token });  
348 - }  
349 - /**  
350 - * 活动排行榜添加分数  
351 - * @param name 游戏端自定义排行标识  
352 - * @param score 分数  
353 - * @param extend 扩展  
354 - */  
355 - activityRankAdd(name: string, score: number, extend: string) {  
356 - return SDKApiPlus.activityRankAdd({ name, score, extend, uid: DataService.I.UserId, token: DataService.I.Token });  
357 - }  
358 - /**  
359 - * 活动排行榜  
360 - * @param name 游戏端自定义排行标识  
361 - */  
362 - activityRankList(name: string) {  
363 - return SDKApiPlus.activityRankList({ name, uid: DataService.I.UserId, token: DataService.I.Token });  
364 - }  
365 - /**  
366 - * 活动排行榜奖励  
367 - * @param name 游戏端自定义排行标识  
368 - */  
369 - activityRankReward(name: string) {  
370 - return SDKApiPlus.activityRankReward({ name, uid: DataService.I.UserId, token: DataService.I.Token });  
371 - }  
372 -  
373 - static instance: GameServicePlus;  
374 - static get I(): GameServicePlus {  
375 - return this.instance || (this.instance = new GameServicePlus());  
376 - }  
377 -}  
378 \ No newline at end of file 0 \ No newline at end of file
sdk/Ge.ts
@@ -1,50 +0,0 @@ @@ -1,50 +0,0 @@
1 -import { sys } from "cc";  
2 -import { GAMEDATA } from "../../framework/wxsdk/base/SDKConst";  
3 -import { SDKToolsPlus } from "./SDKToolsPlus";  
4 -  
5 -  
6 -  
7 -export class Ge {  
8 - private static _instance: GravityAnalyticsAPI;  
9 - static get I(): GravityAnalyticsAPI {  
10 - return this._instance;  
11 - }  
12 - constructor() {  
13 - }  
14 -  
15 - public static init() {  
16 - // console.log("ge初始化")  
17 - const config = {  
18 - accessToken: "ihcpiWLHTqDs5oZEGsnyxCrFXBaSeoju", // 项目通行证,在:网站后台-->管理中心-->应用列表中找到Access Token列 复制(首次使用可能需要先新增应用)  
19 - clientId: SDKToolsPlus.openId, // 用户唯一标识,如微信小程序的openid  
20 - autoTrack: {  
21 - appLaunch: true, // 自动采集 $MPLaunch  
22 - appShow: true, // 自动采集 $MPShow  
23 - appHide: true, // 自动采集 $MPHide  
24 - },  
25 - name: "ge", // 全局变量名称  
26 - // debugMode: "debug", // 是否开启测试模式,开启测试模式后,可以在 网站后台--管理中心--元数据--事件流中查看实时数据上报结果。(测试时使用,上线之后一定要关掉,改成none或者删除)  
27 - };  
28 - let ge = new GravityAnalyticsAPI(config);  
29 - ge.init();  
30 - let isFirst = sys.localStorage.getItem('tt_register');  
31 - if (!isFirst) {  
32 - // 首次注册  
33 - let arr = GAMEDATA.version.split(".");  
34 - let version = +(arr[0] + arr[1] + arr[2]);  
35 - ge.register({  
36 - name: SDKToolsPlus.uid,  
37 - version,  
38 - wx_openid: SDKToolsPlus.openId,  
39 - wx_unionid: "",  
40 - }).then((success) => {  
41 - // console.log("注册成功", success);  
42 - sys.localStorage.setItem('tt_register', "1")  
43 - }).catch((fail) => {  
44 - // console.error("注册失败", fail)  
45 - })  
46 - }  
47 - this._instance = ge;  
48 - }  
49 -  
50 -}  
51 \ No newline at end of file 0 \ No newline at end of file
sdk/SDKApiPlus.ts
@@ -1,144 +0,0 @@ @@ -1,144 +0,0 @@
1 -import { SDKApi } from "../../framework/wxsdk/http/SDKApi";  
2 -import DataService from "../../framework/wxsdk/service/DataService";  
3 -import SDKHttpPlus from "./SDKHttpPlus";  
4 -  
5 -export default class SDKApiPlus extends SDKApi {  
6 - //公告  
7 - public static notice = (...args) => SDKHttpPlus.httpPost(DataService.I.GameApi, HostKeysPlus.notice, ...args);  
8 - //订阅  
9 - public static sendsubscribe = (...args) => SDKHttpPlus.httpPost(DataService.I.GameApi, HostKeysPlus.sendsubscribe, ...args);  
10 - //取消订阅  
11 - public static cancelSubscribe = (...args) => SDKHttpPlus.httpPost(DataService.I.GameApi, HostKeysPlus.cancelSubscribe, ...args);  
12 - //邮件  
13 - public static mail = (...args) => SDKHttpPlus.httpPost(DataService.I.GameApi, HostKeysPlus.mail, ...args);  
14 - //邮件状态修改  
15 - public static mailStatus = (...args) => SDKHttpPlus.httpPost(DataService.I.GameApi, HostKeysPlus.mailStatus, ...args);  
16 - //群二维码  
17 - public static QRcode = (...args) => SDKHttpPlus.httpPost(DataService.I.GameApi, HostKeysPlus.QRcode, ...args);  
18 - //兑换码  
19 - public static cdkey = (...args) => SDKHttpPlus.httpPost(DataService.I.GameApi, HostKeysPlus.cdkey, ...args);  
20 - //删除存档  
21 - public static clearData = (...args) => SDKHttpPlus.httpPost(DataService.I.GameApi, HostKeysPlus.clearData, ...args);  
22 - //商品列表  
23 - public static goodsList = (...args) => SDKHttpPlus.httpPost(DataService.I.GameApi, HostKeysPlus.goodsList, ...args);  
24 - //生成订单  
25 - public static createOrder = (...args) => SDKHttpPlus.httpPost(DataService.I.GameApi, HostKeysPlus.createOrder, ...args);  
26 - //查询订单  
27 - public static queryOrder = (...args) => SDKHttpPlus.httpPost(DataService.I.GameApi, HostKeysPlus.queryOrder, ...args);  
28 - //确认订单  
29 - public static confirmOrder = (...args) => SDKHttpPlus.httpPost(DataService.I.GameApi, HostKeysPlus.confirmOrder, ...args);  
30 - //重置GM标识  
31 - public static setAup = (...args) => SDKHttpPlus.httpPost(DataService.I.GameApi, HostKeysPlus.setAup, ...args);  
32 - //获取分享图片  
33 - public static getShareImg = (...args) => SDKHttpPlus.httpPost(DataService.I.GameApi, HostKeysPlus.getShareImg, ...args);  
34 - //获取今日分享  
35 - public static getShare = (...args) => SDKHttpPlus.httpPost(DataService.I.GameApi, HostKeysPlus.getShare, ...args);  
36 - //获取分享信息  
37 - public static getShareInfo = (...args) => SDKHttpPlus.httpPost(DataService.I.GameApi, HostKeysPlus.getShreInfo, ...args);  
38 - //领取好友分享  
39 - public static receiveShare = (...args) => SDKHttpPlus.httpPost(DataService.I.GameApi, HostKeysPlus.receiveShare, ...args);  
40 - //领取分享额外奖励  
41 - public static getProgressReward = (...args) => SDKHttpPlus.httpPost(DataService.I.GameApi, HostKeysPlus.getProgressReward, ...args);  
42 - //保存副本  
43 - public static saveStory = (...args) => SDKHttpPlus.httpPost(DataService.I.GameApi, HostKeysPlus.saveStory, ...args);  
44 - //我的邀请详情  
45 - public static getInviteInfo = (...args) => SDKHttpPlus.httpPost(DataService.I.GameApi, HostKeysPlus.getInviteInfo, ...args);  
46 - //领取邀请奖励  
47 - public static receiveInvite = (...args) => SDKHttpPlus.httpPost(DataService.I.GameApi, HostKeysPlus.receiveInvite, ...args);  
48 -  
49 - // 保存用户数据  
50 - public static memberSave = (...args) => SDKHttpPlus.httpPost(DataService.I.GameApi, HostKeysPlus.memberSave, ...args);  
51 - // 获取用户数据  
52 - public static memberGet = (...args) => SDKHttpPlus.httpPost(DataService.I.GameApi, HostKeysPlus.memberGet, ...args);  
53 - // 重置修改标识  
54 - public static memberSesetAup = (...args) => SDKHttpPlus.httpPost(DataService.I.GameApi, HostKeysPlus.memberSesetAup, ...args);  
55 - // 清除用户数据  
56 - public static memberClear = (...args) => SDKHttpPlus.httpPost(DataService.I.GameApi, HostKeysPlus.memberClear, ...args);  
57 - //心跳  
58 - public static heartbeat = (...args) => SDKHttpPlus.httpPost(DataService.I.GameApi, HostKeysPlus.memberXT, ...args);  
59 - //自定义活动  
60 - public static activityCustom = (...args) => SDKHttpPlus.httpPost(DataService.I.GameApi, HostKeysPlus.activityCustom, ...args);  
61 - public static rankAddV2 = (...args) => SDKHttpPlus.httpPost(DataService.I.GameApi, HostKeysPlus.rankAddV2, ...args);  
62 - public static rankListV2 = (...args) => SDKHttpPlus.httpPost(DataService.I.GameApi, HostKeysPlus.rankListV2, ...args);  
63 -  
64 - //周卡/月卡列表  
65 - public static recCardList = (...args) => SDKHttpPlus.httpPost(DataService.I.GameApi, HostKeysPlus.recCardList, ...args);  
66 - //领取周卡/月卡奖励  
67 - public static recCardReward = (...args) => SDKHttpPlus.httpPost(DataService.I.GameApi, HostKeysPlus.recCardReward, ...args);  
68 - //领取基金列表  
69 - public static recGrowthList = (...args) => SDKHttpPlus.httpPost(DataService.I.GameApi, HostKeysPlus.recGrowthList, ...args);  
70 - //领取基金奖励  
71 - public static recGrowthReward = (...args) => SDKHttpPlus.httpPost(DataService.I.GameApi, HostKeysPlus.recGrowthReward, ...args);  
72 - //获取无尽礼包数据  
73 - public static recEndlessList = (...args) => SDKHttpPlus.httpPost(DataService.I.GameApi, HostKeysPlus.recEndlessList, ...args);  
74 - //领取无尽礼包  
75 - public static recEndlessReward = (...args) => SDKHttpPlus.httpPost(DataService.I.GameApi, HostKeysPlus.recEndlessReward, ...args);  
76 - //获取新手礼包数据  
77 - public static getNewbieGiftData = (...args) => SDKHttpPlus.httpPost(DataService.I.GameApi, HostKeysPlus.getNewbieGiftData, ...args);  
78 - //领取新手礼包  
79 - public static recNewbieGift = (...args) => SDKHttpPlus.httpPost(DataService.I.GameApi, HostKeysPlus.recNewbieGift, ...args);  
80 -  
81 - // 活动排行榜相关  
82 - public static activityRankConfig = (...args) => SDKHttpPlus.httpPost(DataService.I.GameApi, HostKeysPlus.activityRankConfig, ...args);  
83 - public static activityRankAdd = (...args) => SDKHttpPlus.httpPost(DataService.I.GameApi, HostKeysPlus.activityRankAdd, ...args);  
84 - public static activityRankList = (...args) => SDKHttpPlus.httpPost(DataService.I.GameApi, HostKeysPlus.activityRankList, ...args);  
85 - public static activityRankReward = (...args) => SDKHttpPlus.httpPost(DataService.I.GameApi, HostKeysPlus.activityRankReward, ...args);  
86 -  
87 - //后台  
88 - public static getUserHistory = (...args) => SDKHttpPlus.backPost(DataService.I.GMApi, HostKeysPlus.getUserHistory, ...args);  
89 - public static saveUserHistory = (...args) => SDKHttpPlus.backPost(DataService.I.GMApi, HostKeysPlus.saveUserHistory, ...args);  
90 -}  
91 -  
92 -  
93 -export const HostKeysPlus = {  
94 - sendsubscribe: 'api/subscribe/event', //订阅  
95 - cancelSubscribe: 'api/subscribe/event/cancel', //取消订阅  
96 - notice: 'mods/notice/list', //公告  
97 - mail: 'mods/mail/list', //邮件  
98 - mailStatus: '/mods/mail/status/u', //修改邮件状态  
99 - QRcode: 'game/merge/system', //群二维码  
100 - cdkey: 'game/merge/cdkey', //兑换CDkey  
101 - clearData: 'game/merge/clear', //删除存档  
102 - goodsList: 'game/merge/goodslist', //商品列表  
103 - createOrder: 'game/merge/order/create', //生成订单  
104 - queryOrder: 'game/merge/order/query', //查询订单  
105 - confirmOrder: 'game/merge/order/give', //确认订单  
106 - setAup: 'game/merge/aup', //重置GM标识  
107 - getShareImg: 'game/merge/share/getimg', //分享图片  
108 - getShare: 'game/merge/share/get', //获取今日分享(自己的)  
109 - getShreInfo: 'game/merge/share/info', //获取分享详情(别人的)  
110 - receiveShare: 'game/merge/share/receive', //领取分享奖励  
111 - getProgressReward: 'game/merge/share/reward/progress', //获取分享奖励  
112 - saveStory: 'game/merge/cp/save', //保存副本  
113 - getInviteInfo: 'api/member/invite/info', //获取邀请信息  
114 - receiveInvite: 'api/member/invite/receive', //领取邀请奖励  
115 -  
116 - memberSave: 'yueliangdao/member/save', //存用户数据  
117 - memberGet: 'yueliangdao/member/get', //取用户数据  
118 - memberSesetAup: 'yueliangdao/member/reset/aup', //重置修改标识  
119 - memberClear: '3ad7e4ab92ae2249/member/clear', //清除用户数据 4.11改  
120 - memberXT: 'yueliangdao/member/xt', //心跳  
121 - activityCustom: 'mods/activity/custom', //自定义活动  
122 - rankListV2: 'mods/rank/permanent/list', //排行榜2023-4-24  
123 - rankAddV2: 'mods/rank/permanent/add', //更新排行榜2023-4-24  
124 -  
125 -  
126 - recCardList: '3ad7e4ab92ae2249/member/ship/info', //周卡/月卡列表  
127 - recCardReward: '3ad7e4ab92ae2249/member/ship/draw', //领取周卡/月卡奖励  
128 - recGrowthList: 'game/merge/growth/list', //领取基金列表  
129 - recGrowthReward: 'game/merge/growth/rec', //领取基金奖励  
130 - recEndlessList: '3ad7e4ab92ae2249/egift/show', //获取无尽礼包数据  
131 - recEndlessReward: '3ad7e4ab92ae2249/egift/draw', //领取无尽礼包  
132 - getNewbieGiftData: '3ad7e4ab92ae2249/novice/list', //获取新手礼包数据  
133 - recNewbieGift: '3ad7e4ab92ae2249/novice/draw', //领取新手礼包  
134 -  
135 - activityRankConfig: 'yueliangdao/activities/rank/config', //活动排行榜配置  
136 - activityRankAdd: 'yueliangdao/activities/rank/add', //活动排行榜添加分数  
137 - activityRankList: 'yueliangdao/activities/rank/top', //活动排行榜  
138 - activityRankReward: 'yueliangdao/activities/rank/draw', //活动排行榜奖励  
139 -  
140 -  
141 - //后台  
142 - getUserHistory: 'index/merge/history.html', //获取用户历史存档  
143 - saveUserHistory: 'index/merge/setdata.html', //覆盖用户数据  
144 -}  
sdk/SDKHttpPlus.ts
@@ -1,139 +0,0 @@ @@ -1,139 +0,0 @@
1 -import { DEBUG } from "cc/env";  
2 -import { GAMEDATA, sdkEnv } from "../../framework/wxsdk/base/SDKConst";  
3 -import SDKHttp from "../../framework/wxsdk/http/SDKHttp";  
4 -import { WxHelper } from "./WxHelper";  
5 -import LogService from "../../framework/wxsdk/service/LogService";  
6 -import DataService from "../../framework/wxsdk/service/DataService";  
7 -  
8 -sdkEnv.isDebug = DEBUG;  
9 -export default class SDKHttpPlus extends SDKHttp {  
10 -  
11 - public static async backRequest(url: string, method: string, data?: any, dataType: "json" | "string" = "json") {  
12 - return new Promise<IResult<any>>((resolve, reject) => {  
13 - data = {  
14 - ...data,  
15 - gameid: GAMEDATA.game_id,  
16 - }  
17 -  
18 - if (data && typeof data === "object") {  
19 - data = JSON.stringify(data);  
20 - }  
21 - data = data || "";  
22 - if (method == "GET" && data != "") {  
23 - data = JSON.parse(data);  
24 - let str = ''  
25 - for (let key in data) {  
26 - str = str + `${key}` + '=' + `${data[key]}&`  
27 - }  
28 - url += "?" + str;  
29 - data = "";  
30 - }  
31 - // let info = "[url:" + url + ", data:" + data + "]";  
32 - // console.error("info", info)  
33 - let xhr = new XMLHttpRequest();  
34 - xhr.onreadystatechange = function () {  
35 - if (xhr.readyState == 4) {  
36 - if (xhr.status >= 200 && xhr.status < 400) {  
37 - let responseText: any = xhr.responseText;  
38 - // cc.log("responseText", responseText)  
39 - try {  
40 - responseText = JSON.parse(responseText);  
41 - // cc.log("responseText22", responseText)  
42 - if (url.indexOf('.json') > -1) {  
43 - resolve({ code: 0, data: responseText, msg: responseText.msg });  
44 - } else {  
45 - resolve({ code: +responseText.code, data: responseText.data, msg: responseText.msg });  
46 - }  
47 - return  
48 - } catch (ex) {  
49 - // console.error("httpRequest[parseError]:responseText=" + xhr.responseText);  
50 - resolve({ msg: "JSON parse error:" + ex.message, code: -1 });  
51 - return;  
52 - }  
53 - } else {  
54 - console.error(xhr.status, '网络请求失败!');  
55 - resolve({ code: -2 });  
56 - }  
57 - }  
58 - };  
59 -  
60 - xhr.ontimeout = function (info): void {  
61 - console.error("info1", info)  
62 - resolve({ msg: `请求超时!`, code: -3 });  
63 - }  
64 - xhr.onerror = function (info): void {  
65 - console.error("info2", info)  
66 - resolve({ msg: `请求失败!`, code: -4 });  
67 - }  
68 - xhr.onabort = function (info): void {  
69 - console.error("info3", info)  
70 - resolve({ msg: `请求关闭!`, code: -5 });  
71 - }  
72 -  
73 - xhr.timeout = 30000;  
74 - xhr.open(method, url, true);  
75 -  
76 - if (method == "POST") {  
77 - xhr.setRequestHeader("Content-Type", "application/json;charset=utf-8")//application/x-www-form-urlencoded  
78 - // if (cc.sys.os === 'Android') {  
79 - // cc.error("http__uid", AppSdkData.I.uid);  
80 - // xhr.setRequestHeader('Uuid', `${AppSdkData.I.uid}`);  
81 - // } else {  
82 - // xhr.setRequestHeader('Uuid', `909`);  
83 - // }  
84 -  
85 - }  
86 - console.log("data", data)  
87 - xhr.send(data);  
88 - });  
89 - }  
90 -  
91 - public static async backGet(baseUrl: string, url: string, data?: any, dataType: "json" | "string" = "json") {  
92 - if (this.withMock(url)) {  
93 - return this.mockData(url);  
94 - }  
95 -  
96 - url = baseUrl + url;  
97 - return this.backRequest(url, "GET", data, dataType);  
98 - }  
99 -  
100 - public static backPost(baseUrl: string, url: string, data?: any, dataType: "json" | "string" = "json") {  
101 - if (this.withMock(url)) {  
102 - return this.mockData(url);  
103 - }  
104 -  
105 - url = baseUrl + url;  
106 - return this.backRequest(url, "POST", data, dataType);  
107 - }  
108 -}  
109 -  
110 -SDKHttp.onErrorResponse = async function (data: any) {  
111 - console.log("onErrorResponse", data)  
112 - if (data.code > 0) {  
113 - LogService.I.dot("errCode", { form: data.code + "_" + DataService.I?.Data?.userId })  
114 - } else {  
115 - LogService.I.dot("errCode", { form: data.code })  
116 - }  
117 - if (data.code == 1008) {  
118 - let ret = await WxHelper.showModal({  
119 - title: '登录验证失败,请重新登录',  
120 - content: data.msg,  
121 - showCancel: false,  
122 - confirmText: '重启'  
123 - })  
124 - if (ret) {  
125 - WxHelper.restartMiniProgram();  
126 - }  
127 - }  
128 - if (data.code == 1011000) {  
129 - let ret = await WxHelper.showModal({  
130 - title: '数据被修改',  
131 - content: data.msg,  
132 - showCancel: false,  
133 - confirmText: '重启'  
134 - })  
135 - if (ret) {  
136 - WxHelper.restartMiniProgram();  
137 - }  
138 - }  
139 -};  
140 \ No newline at end of file 0 \ No newline at end of file
sdk/SDKTools.ts
1 -import { GAMEDATA } from "../../framework/wxsdk/base/SDKConst";  
2 -import DateUtils from "../../framework/wxsdk/utils/DateUtils";  
3 -import WXSDK from "../../framework/wxsdk/WXSDK";  
4 - 1 +import AlipayApi from "../wxsdk/alipay/AlipayApi";
  2 +import { GAMEDATA } from "../wxsdk/base/SDKConst";
  3 +import DateUtils from "../wxsdk/utils/DateUtils";
  4 +import WXSDK from "../wxsdk/WXSDK";
5 5
6 /* 6 /*
7 * SDK工具类库; 7 * SDK工具类库;
8 */ 8 */
9 export class SDKTools { 9 export class SDKTools {
10 static get isWx() { 10 static get isWx() {
11 - return typeof wx !== 'undefined';  
12 - }  
13 - static get isZfb() {  
14 return typeof my !== 'undefined'; 11 return typeof my !== 'undefined';
15 } 12 }
16 static get isSupported() { 13 static get isSupported() {
@@ -83,8 +80,10 @@ export class SDKTools { @@ -83,8 +80,10 @@ export class SDKTools {
83 * isOff:是否关闭默认显示banner 80 * isOff:是否关闭默认显示banner
84 * } 81 * }
85 */ 82 */
86 - static createBanner(adUnitId: string = GAMEDATA.bannerId, opts?: { type?: number; bannerWidth?: number, offsetY?: number; adIntervals?: number, isOff?: boolean ,isCreate?:boolean}) { 83 + static createBanner(adUnitId: string = GAMEDATA.bannerId, opts?: { type?: number; bannerWidth?: number, offsetY?: number; adIntervals?: number, isOff?: boolean }) {
87 if (!this.isWx) return 84 if (!this.isWx) return
  85 + // if (SDKUtils.compareVersion(my.env.clientVersion, '10.3.66') < 0) return;
  86 + // console.log('banner')
88 return WXSDK.ad.createBanner(adUnitId, opts); 87 return WXSDK.ad.createBanner(adUnitId, opts);
89 } 88 }
90 /** 89 /**
@@ -114,6 +113,7 @@ export class SDKTools { @@ -114,6 +113,7 @@ export class SDKTools {
114 * 插屏 113 * 插屏
115 */ 114 */
116 static createInterstitialAd(adUnitId: string = GAMEDATA.interstitialAdId) { 115 static createInterstitialAd(adUnitId: string = GAMEDATA.interstitialAdId) {
  116 + // console.log('~~~~~~~~~~chaping')
117 if (!this.isWx) return Promise.resolve({ code: 1, msg: "暂无广告" }) 117 if (!this.isWx) return Promise.resolve({ code: 1, msg: "暂无广告" })
118 return WXSDK.ad.createInterstitialAd(adUnitId); 118 return WXSDK.ad.createInterstitialAd(adUnitId);
119 } 119 }
@@ -167,9 +167,12 @@ export class SDKTools { @@ -167,9 +167,12 @@ export class SDKTools {
167 /** 167 /**
168 * 订阅 168 * 订阅
169 * @param template_ids 模板id eg['aaaaaaa','bbbbbbb'] 169 * @param template_ids 模板id eg['aaaaaaa','bbbbbbb']
170 - * @param success 成功回调  
171 - * @param fail 失败回调 170 + * @param ids 对应后台的id eg:['1','2']
172 */ 171 */
  172 + // static subScribe(template_ids: Array<string>, ids: Array<string>) {
  173 + // if (!this.isWx) return
  174 + // return WXSDK.game.subScribe(template_ids, ids)
  175 + // }
173 static subScribe(template_ids: Array<string>, success: Function, fail: Function) { 176 static subScribe(template_ids: Array<string>, success: Function, fail: Function) {
174 if (!window['wx']) return; 177 if (!window['wx']) return;
175 return WXSDK.game.subScribe(template_ids, success, fail); 178 return WXSDK.game.subScribe(template_ids, success, fail);
@@ -247,16 +250,7 @@ export class SDKTools { @@ -247,16 +250,7 @@ export class SDKTools {
247 250
248 251
249 252
250 - /**  
251 - * 互动数据解密  
252 - * @param iv  
253 - * @param encryptedData  
254 - * @returns  
255 - */  
256 - static wxencrypted(iv, encryptedData): Promise<IResult<any>> {  
257 - if (!this.isWx) return Promise.resolve({ code: -1 })  
258 - return WXSDK.game.wxencrypted(iv, encryptedData);  
259 - } 253 +
260 /** 254 /**
261 * 互导数据 255 * 互导数据
262 * 1抽屉广告2猜你喜欢3格子广告4试玩 256 * 1抽屉广告2猜你喜欢3格子广告4试玩
@@ -301,7 +295,7 @@ export class SDKTools { @@ -301,7 +295,7 @@ export class SDKTools {
301 * @returns 295 * @returns
302 */ 296 */
303 static pay(params: { payid: string, goodid: string, money: number; orderid: string }, opts: any = {}) { 297 static pay(params: { payid: string, goodid: string, money: number; orderid: string }, opts: any = {}) {
304 - return WXSDK.game.pay(params, opts); 298 + return WXSDK.game.pay(params, opts)
305 } 299 }
306 /** 300 /**
307 * 检测支付是否成功 301 * 检测支付是否成功
@@ -342,26 +336,21 @@ export class SDKTools { @@ -342,26 +336,21 @@ export class SDKTools {
342 return WXSDK.game.behavior() 336 return WXSDK.game.behavior()
343 } 337 }
344 338
345 - /**  
346 - *  
347 - * scene 场景枚举值(1 资料;2 评论;3 论坛;4 社交日志)(必填)  
348 - content 需检测的文本内容,文本字数的上限为2500字(必填)  
349 - nickname 用户昵称(非必填)  
350 - title 文本标题(非必填)  
351 - signature 个性签名,该参数仅在资料类场景有效(scene=1)(非必填)  
352 - */  
353 - static checkmsg(scene: number, content: string, nickname?: string, title?: string, signature?: string) {  
354 - return WXSDK.game.checkmsg(scene, content, nickname, title, signature)  
355 - } 339 + //阿里增量任务
  340 + static incrementGameaction(action_code, success: Function, fail: Function) {
  341 + if (this.uid) {
  342 + AlipayApi.I.incrementGameaction(action_code).then((res) => {
  343 + success();
  344 + }).catch((res) => {
  345 + fail && fail();
  346 + });
  347 + } else {
  348 + //登录状态过期,重进登录
  349 + fail();
  350 + }
356 351
357 - /**  
358 - * 修改用户头像昵称  
359 - */  
360 - static updateNickname(nickname: string, headurl: string) {  
361 - return WXSDK.game.updateNickname(nickname, headurl)  
362 } 352 }
363 353
364 -  
365 } 354 }
366 355
367 /** 356 /**
sdk/SDKToolsPlus.ts
@@ -1,420 +0,0 @@ @@ -1,420 +0,0 @@
1 -import { sys } from "cc";  
2 -import { EventCenter } from "../../framework/core/utils/EventCenter";  
3 -import { EnvCode } from "../../framework/wxsdk/base/SDKEnum";  
4 -import DataService from "../../framework/wxsdk/service/DataService";  
5 -import { GameEvent } from "../../game/const/GameEvent";  
6 -import GameServicePlus from "./GameServicePlus";  
7 -import { SDKTools } from "./SDKTools";  
8 -  
9 -export class ServerError {  
10 - private static _errors = {  
11 - "0": { msg: "成功", desc: "接口调用成功" },  
12 - "1000": { msg: "操作失败", desc: "检查Hermes后台配置是否正确" },  
13 - "1001": { msg: "未知错误", desc: "联系开发人员排查错误" },  
14 - "1002": { msg: "参数错误", desc: "请参照接口文档对比参数和参数类型是否正确" },  
15 - "1003": { msg: "签名错误", desc: "检查appkey跟后台是否对应" },  
16 - "1004": { msg: "数据不存在", desc: "查询的数据不存在等" },  
17 - "1005": { msg: "解析参数失败,请检查参数合法性", desc: "参数中是否有危险字符,比如SQL注入等" },  
18 - "4500": { msg: "商品不存在", desc: "检查Hermes后台配置是否正确" },  
19 - "4501": { msg: "订单未支付", desc: "" },  
20 - "4502": { msg: "不能重复发放", desc: "" },  
21 - "4503": { msg: "兑换码不存在", desc: " " },  
22 - "4504": { msg: "兑换码不在有效期内", desc: " " },  
23 - "4505": { msg: "兑换码已失效", desc: " " },  
24 - "4506": { msg: "iv error", desc: "防止用户本地修改数据" },  
25 - "4507": { msg: "数据被修改", desc: "用户数据被GM工具修改,需重新登录重置" },  
26 - "4508": { msg: "此商品已达到最大购买限制", desc: "限购" },  
27 - "4509": { msg: "没有上传文件", desc: "检查文件name属性是否正确" },  
28 - "4510": { msg: "文件超出最大限制", desc: "最大1M" },  
29 - "4511": { msg: "请先授权获取微信头像信息", desc: "登录接口获取" },  
30 - "4513": { msg: "没有达到刷新条件", desc: "生成过一次且没有领取 才可刷新" },  
31 - "4514": { msg: "刷新次数超限", desc: "刷新次数达到 配置最大项" },  
32 - "4515": { msg: "分享失效", desc: "跨天失效等" },  
33 - "4516": { msg: "分享不存在", desc: "分享ID不存在等" },  
34 - "4517": { msg: "已被领取", desc: "被其他人领取" },  
35 - "4518": { msg: "今日领取次数超限", desc: "今天领取的次数达到配置最大项" },  
36 - "4519": { msg: "已领过其他选项", desc: "只能领取一个" },  
37 - "4520": { msg: "没有达到领取条件", desc: "领取进度是否完成" },  
38 - "4522": { msg: "只能领取自己的奖励", desc: "" },  
39 - "1009": { msg: "您的账号已因数据异常而被封禁,如需申诉可以向微信客服反馈。", desc: "" },  
40 - "3004": { msg: "活动已经结束", desc: "" },  
41 - }  
42 -  
43 - private static _unknownError = { msg: "未知错误", desc: "联系开发人员排查错误" };  
44 - static getError(code: string): { msg: string, desc: string } {  
45 - return this._errors[code] || this._unknownError;  
46 - }  
47 -  
48 - static this(key: string): string {  
49 - return (this._errors[key] || this._unknownError).msg;  
50 - }  
51 -}  
52 -  
53 -/*  
54 -* SDK工具类库;  
55 -*/  
56 -export class SDKToolsPlus extends SDKTools {  
57 - static get isTT() {  
58 - return sys.platform == sys.Platform.BYTEDANCE_MINI_GAME;  
59 - }  
60 -  
61 - //提交订单  
62 - static doPreorder(data, goodid: string, price: number, orderid: string) {  
63 - if (!data.code && data.data) {  
64 - let { config, paytype } = data.data;  
65 - // goodid = goodid + "";  
66 - // console.log("支付方式"+paytype);  
67 - switch (paytype) {  
68 - case "1"://H5 客服消息支付,游戏内调用发片消息接口 sendMessagePath:path  
69 - var { img, title, path } = config;  
70 - wx.openCustomerServiceConversation({  
71 - showMessageCard: true, //是否显示会话内消息卡片,设置此参数为 true,用户进入客服会话会在右下角显示"可能要发送的小程序"提示,用户点击后可以快速发送小程序消息  
72 - sendMessageTitle: title ? title : '我要充值!',//会话内消息卡片标题  
73 - sendMessagePath: path,//会话内消息卡片路径//channel=${SDKTools.ChannelId}&item=10&uid=${SDKTools.UserId}  
74 - sendMessageImg: img ? img : 'https://wxsdk-cdn.miso-lab.com/moon-island/share/fx_chongzhi.jpg',//会话内消息卡片图片路径  
75 - success: (ret) => {  
76 - //记录状态  
77 - //onshow检测状态,判断是否充值成功  
78 - console.log("支付成功:", ret);  
79 - EventCenter.I.emit(GameEvent.PAY_POLLING, true);  
80 - },  
81 - fail: (ret) => {  
82 - console.log("fail", ret);  
83 - EventCenter.I.emit(GameEvent.PAY_FAIL, orderid, goodid);  
84 - }  
85 - })  
86 - break;  
87 - case "2":  
88 -  
89 -  
90 - break;  
91 - case "3"://米大师支付,游戏支付成功需要调用米大师订单上报接口  
92 - var { payid } = config;  
93 - SDKTools.pay({ payid, goodid, money: price, orderid: orderid }).then(res => {  
94 - if (!res.code) {  
95 - console.log("支付成功", res);  
96 - EventCenter.I.emit(GameEvent.PAY_CONFIRM, orderid, goodid);  
97 - } else {  
98 - console.log("支付失败", res);  
99 - EventCenter.I.emit(GameEvent.PAY_FAIL, orderid, goodid);  
100 - }  
101 - }).catch(err => {  
102 - console.log("支付失败2:", err);  
103 - EventCenter.I.emit(GameEvent.PAY_FAIL, orderid, goodid);  
104 - })  
105 - break;  
106 - case "4"://跳转小程序支付,游戏直接跳转返回的小程序路径  
107 - var { appid, page } = config;  
108 - wx.navigateToMiniProgram({  
109 - appId: appid,  
110 - path: page,  
111 - envVersion: DataService.I.EnvEnum === EnvCode.Prod ? 'release' : "trial",//opts.envVersion || 'release',  
112 - success(res: any) {  
113 - console.log("成功:", res)  
114 - // resolve(res);  
115 - EventCenter.I.emit(GameEvent.PAY_POLLING, true);  
116 - },  
117 - fail(err: any) {  
118 - console.log("失败", err)  
119 - EventCenter.I.emit(GameEvent.PAY_FAIL, orderid, goodid);  
120 - // reject(err);  
121 - }  
122 - });  
123 - break;  
124 - case "5"://扫码小程序支付,imgurl为二维码地址,提示用户扫码即可  
125 - EventCenter.I.emit(GameEvent.PAY_POLLING, true);  
126 - var { imgurl } = config;  
127 - wx.previewImage({  
128 - current: imgurl, // 当前显示图片的http链接  
129 - urls: [imgurl] // 需要预览的图片http链接列表  
130 - })  
131 -  
132 - break;  
133 - case "6"://二维码支付,windows下需要调用扫码支付接口  
134 - EventCenter.I.emit(GameEvent.PAY_POLLING, true);  
135 - var { qrcode } = config;  
136 - wx.previewImage({  
137 - current: qrcode, // 当前显示图片的http链接  
138 - urls: [qrcode] // 需要预览的图片http链接列表  
139 - })  
140 -  
141 - break;  
142 - case "7"://抖音支付  
143 - var { payid } = config;  
144 - SDKTools.pay({ payid, goodid, money: price, orderid: orderid }).then(res => {  
145 - if (!res.code) {  
146 - console.log("支付成功", res);  
147 - EventCenter.I.emit(GameEvent.PAY_CONFIRM, orderid, goodid);  
148 - } else {  
149 - console.log("支付失败", res);  
150 - EventCenter.I.emit(GameEvent.PAY_FAIL, orderid, goodid);  
151 - }  
152 - }).catch(err => {  
153 - console.log("支付失败", err);  
154 - EventCenter.I.emit(GameEvent.PAY_FAIL, orderid, goodid);  
155 - })  
156 - break;  
157 - case "10"://支付宝支付  
158 - var { payid } = config;  
159 - SDKTools.pay({ payid, goodid, money: price, orderid: orderid }).then(res => {  
160 - if (!res.code) {  
161 - console.log("111tttttt"+Date.now());  
162 - EventCenter.I.emit(GameEvent.PAY_POLLING_NOW, true);  
163 - } else {  
164 - console.log("支付失败", JSON.stringify(res));  
165 - EventCenter.I.emit(GameEvent.PAY_FAIL, orderid, goodid);  
166 - }  
167 - }).catch(err => {  
168 - console.log("支付失败", JSON.stringify(err));  
169 - EventCenter.I.emit(GameEvent.PAY_FAIL, orderid, goodid);  
170 - })  
171 - break;  
172 - default:  
173 - // utils.tips("出错!")  
174 - break;  
175 - }  
176 - } else {  
177 - // utils.tips("出错!")  
178 - }  
179 - }  
180 -  
181 - /**  
182 - * 获取群二维码  
183 - */  
184 - static QRcode() {  
185 - return GameServicePlus.I.getQRcode();  
186 - }  
187 -  
188 - /**  
189 - * 兑换CDK  
190 - */  
191 - static convertCDkey(cdkey: string) {  
192 - return GameServicePlus.I.convertCDkey(cdkey);  
193 - }  
194 -  
195 - /**  
196 - * 商品列表  
197 - */  
198 - static goodsList() {  
199 - return GameServicePlus.I.goodsList();  
200 - }  
201 -  
202 - /**  
203 - * 生成订单  
204 - */  
205 - static createOrder(goodid: string) {  
206 - return GameServicePlus.I.createOrder(goodid);  
207 - }  
208 -  
209 - /**  
210 - * 查询订单  
211 - */  
212 - static queryOrder(no: string) {  
213 - return GameServicePlus.I.queryOrder(no);  
214 - }  
215 -  
216 - /**  
217 - * 确认订单  
218 - */  
219 - static confirmOrder(no: string) {  
220 - return GameServicePlus.I.confirmOrder(no);  
221 - }  
222 -  
223 - /**  
224 - * 获取玩家历史存档  
225 - */  
226 - static getUserHistory(uid: string, token: string) {  
227 - return GameServicePlus.I.getUserHistory(uid, token);  
228 - }  
229 -  
230 - /**  
231 - * 获取玩家历史存档  
232 - * @param data //需要包含uid,token  
233 - */  
234 - static saveUserHistory(data: any) {  
235 - return GameServicePlus.I.saveUserHistory(data);  
236 - }  
237 -  
238 - /**  
239 - * 重置GM标识  
240 - */  
241 - static setAup(typ: number = 0) {  
242 - return GameServicePlus.I.setAup(typ);  
243 - }  
244 -  
245 - /**  
246 - * 获取分享图片  
247 - * @param items 2,1,0|3,1,1|3,1,1|3,1,1|3,1,1格式:2,1,0(类型,id,领取状态)领取状态:1已领取0未领取  
248 - * @param zoom 图片缩放比例  
249 - * @returns  
250 - */  
251 - static getShareImage(items: string, zoom = 1) {  
252 - return GameServicePlus.I.getShareImage(items, zoom);  
253 - }  
254 -  
255 - /**  
256 - * 获取今日分享  
257 - * @param refresh 是否刷新  
258 - */  
259 - static getShare(refresh?: number) {  
260 - return GameServicePlus.I.getShare(refresh);  
261 - }  
262 -  
263 - /**  
264 - * 获取分享详情  
265 - * @param id 分享id  
266 - * @param date 分享日期 格式:20220524  
267 - */  
268 - static getShareInfo(id: number, date: string) {  
269 - if (typeof id === "string") {  
270 - id = parseInt(id);  
271 - }  
272 - return GameServicePlus.I.getShareInfo(id, date);  
273 - }  
274 -  
275 - /**  
276 - * 领取好友分享  
277 - * @param id 分享id  
278 - * @param date 分享日期 格式:20220524  
279 - * @param itemid 分享选项ID  
280 - */  
281 - static getShareReward(id: number, date: string, itemid: number) {  
282 - if (typeof id === "string") {  
283 - id = parseInt(id);  
284 - }  
285 - return GameServicePlus.I.getShareReward(id, date, itemid);  
286 - }  
287 -  
288 - /**  
289 - * 领取额外进度奖励  
290 - * @param id 分享id  
291 - * @param date 分享日期 格式:20220524  
292 - */  
293 - static getProgressReward(id: number, date: string) {  
294 - if (typeof id === "string") {  
295 - id = parseInt(id);  
296 - }  
297 - return GameServicePlus.I.getProgressReward(id, date);  
298 - }  
299 -  
300 - static getInviteInfo() {  
301 - return GameServicePlus.I.getInviteInfo();  
302 - }  
303 -  
304 - static receiveInvite(id: number) {  
305 - return GameServicePlus.I.receiveInvite(id);  
306 - }  
307 -  
308 - static heartbeat() {  
309 - return GameServicePlus.I.beatheart();  
310 - }  
311 -  
312 - /**  
313 - * 领取列表  
314 - * @param status 类型1周卡2月卡  
315 - */  
316 - static recCardList() {  
317 - return GameServicePlus.I.recCardList();  
318 - }  
319 -  
320 - /**  
321 - * 领取列表  
322 - * @param typ 第几天 week周 month月  
323 - */  
324 - static recCardReward(typ: string) {  
325 - return GameServicePlus.I.recCardReward(typ);  
326 - }  
327 -  
328 - /**  
329 - * 领取基金列表  
330 - */  
331 - static recGrowthList() {  
332 - return GameServicePlus.I.recGrowthList();  
333 - }  
334 -  
335 - /**  
336 - * 领取基金列表  
337 - * @param goodid 购买的基金商品ID  
338 - * @param level 等级  
339 - */  
340 - static recGrowthReward(goodid: string, level: number) {  
341 - return GameServicePlus.I.recGrowthReward(goodid, level);  
342 - }  
343 -  
344 - /**  
345 - * 获取无尽礼包数据  
346 - */  
347 - static recEndlessList(groupId: string) {  
348 - return GameServicePlus.I.recEndlessList(groupId);  
349 - }  
350 -  
351 - /**  
352 - * 领取无尽礼包  
353 - * @param date 当前日期  
354 - */  
355 - static recEndlessReward(groupId: string, id: string, date: string) {  
356 - return GameServicePlus.I.recEndlessReward(groupId, id, date);  
357 - }  
358 -  
359 - /**  
360 - * 获取新手礼包数据  
361 - */  
362 - static getNewbieGiftData() {  
363 - return GameServicePlus.I.getNewbieGiftData();  
364 - }  
365 -  
366 - /**  
367 - * 领取新手礼包  
368 - * @param days 当前天  
369 - */  
370 - static recNewbieGift(days: string) {  
371 - return GameServicePlus.I.recNewbieGift(days);  
372 - }  
373 -  
374 -  
375 - /**  
376 - * 订阅消息  
377 - * @param tmplId 订阅ID  
378 - * @param message 订阅内容  
379 - * @param sendtime 订阅发送时间s二选一参数  
380 - * @param times 订阅延迟时间s二选一参数  
381 - * @param status 1取消以前相同模板信息,默认为0不取消  
382 - */  
383 - static async sendSubScribe(tmplId: string, message: string, sendtime: number, times: number = 0, status = 1) {  
384 - return GameServicePlus.I.sendSubScribe(tmplId, message, sendtime, times, status);  
385 - }  
386 -  
387 - /**  
388 - * 取消订阅消息  
389 - * @param tmplId 订阅ID  
390 - */  
391 - static async cancelSubscribe(tmplId: string) {  
392 - return GameServicePlus.I.cancelSubscribe(tmplId);  
393 - }  
394 - /**  
395 - * 自定义活动  
396 - * @param id 活动ID(后台的ID)  
397 - */  
398 - static activityCustom(id?: string) {  
399 - return GameServicePlus.I.activityCustom(id);  
400 - }  
401 - /**  
402 - * 添加排行榜  
403 - * @param typ 游戏端自定义排行标识  
404 - * @param fraction 分数 如果上报的分数小于以前上报的分数,则不会更新  
405 - * @param rankData 扩展字段  
406 - * @returns  
407 - */  
408 - static rankAddV2(typ: string, fraction: number, rankData?: string) {  
409 - return GameServicePlus.I.rankAddV2(typ, fraction, rankData);  
410 - }  
411 - /**  
412 - * 排行榜列表  
413 - * @param typ 游戏端自定义排行标识  
414 - * @param percent percent等于1 的时候会返回排行榜总人数和自己的当前排名  
415 - */  
416 - static rankListV2(typ: string, percent: number = 0) {  
417 - return GameServicePlus.I.rankListV2(typ, percent);  
418 - }  
419 -  
420 -}  
421 \ No newline at end of file 0 \ No newline at end of file
sdk/WxHelper.ts
1 1
2 // import UserManager from "../manager/UserManager"; 2 // import UserManager from "../manager/UserManager";
3 3
4 -import { Node, UITransform, game, view } from "cc";  
5 -import { ALIPAY } from "cc/env"; 4 +import DataService from "../wxsdk/service/DataService";
  5 +import AlipayApi from "../wxsdk/alipay/AlipayApi";
  6 +import { SDKTools } from "./SDKTools";
6 7
7 /** WXapi */ 8 /** WXapi */
8 export class WxHelper { 9 export class WxHelper {
@@ -12,19 +13,19 @@ export class WxHelper { @@ -12,19 +13,19 @@ export class WxHelper {
12 13
13 /** 微信用户信息 */ 14 /** 微信用户信息 */
14 public static userInfo: WxUserInfo; 15 public static userInfo: WxUserInfo;
15 - static get isWx() {  
16 - return typeof wx !== 'undefined'; 16 + public static get isOperable() {
  17 + return (cc.sys.platform === cc.sys.WECHAT_GAME || cc.sys.platform === cc.sys.ALIPAY_GAME)
17 } 18 }
18 19
19 /** 获取设备信息 */ 20 /** 获取设备信息 */
20 public static getSystemInfo() { 21 public static getSystemInfo() {
21 - if (this.isWx) this.SystemInfo = wx.getSystemInfoSync(); 22 + if (typeof my !== 'undefined') this.SystemInfo = my.getSystemInfoSync();
22 } 23 }
23 24
24 /** 像开放数据域发送信息 */ 25 /** 像开放数据域发送信息 */
25 public static postMessage(eventType: string, data?: any): void { 26 public static postMessage(eventType: string, data?: any): void {
26 - if (!this.isWx || !this.checkVerison('1.9.92')) return;  
27 - wx.getOpenDataContext().postMessage({ 27 + if (typeof my === 'undefined' || !this.checkVerison('1.9.92')) return;
  28 + my.getOpenDataContext().postMessage({
28 eventType: eventType, 29 eventType: eventType,
29 data: data 30 data: data
30 }); 31 });
@@ -32,17 +33,15 @@ export class WxHelper { @@ -32,17 +33,15 @@ export class WxHelper {
32 } 33 }
33 34
34 /** 更新微信开放数据榜单数据 */ 35 /** 更新微信开放数据榜单数据 */
35 - public static updateWxRank(key: string, value: number) {  
36 - if (typeof my != 'undefined') {  
37 - return;  
38 - }  
39 - if (!this.isWx || !this.checkVerison('1.9.92')) return; 36 + public static updateWxRank(score: number) {
  37 +
  38 + if (typeof wx === 'undefined' || !this.checkVerison('1.9.92')) return;
40 let data = { 39 let data = {
41 - value, 40 + score: score
42 } 41 }
43 wx.setUserCloudStorage({ 42 wx.setUserCloudStorage({
44 KVDataList: [{ 43 KVDataList: [{
45 - key, 44 + key: 'score',
46 value: JSON.stringify(data) 45 value: JSON.stringify(data)
47 }] 46 }]
48 }) 47 })
@@ -50,10 +49,10 @@ export class WxHelper { @@ -50,10 +49,10 @@ export class WxHelper {
50 } 49 }
51 50
52 /** 创建用户反馈按钮 */ 51 /** 创建用户反馈按钮 */
53 - public static createFeedbackButton(target: Node) { 52 + public static createFeedbackButton(target: cc.Node) {
54 53
55 let data = this.computWxPosition(target); 54 let data = this.computWxPosition(target);
56 - return wx.createFeedbackButton({ 55 + return my.createFeedbackButton({
57 type: 'text', 56 type: 'text',
58 text: ' ', 57 text: ' ',
59 style: { 58 style: {
@@ -72,10 +71,10 @@ export class WxHelper { @@ -72,10 +71,10 @@ export class WxHelper {
72 /** 获取用户信息按钮 */ 71 /** 获取用户信息按钮 */
73 public static userInfoButton: any; 72 public static userInfoButton: any;
74 /** 创建一个获取用户信息按钮 */ 73 /** 创建一个获取用户信息按钮 */
75 - public static createUserInfoButton(target: Node) { 74 + public static createUserInfoButton(target: cc.Node) {
76 let data = this.computWxPosition(target); 75 let data = this.computWxPosition(target);
77 // console.log("data", data) 76 // console.log("data", data)
78 - return wx.createUserInfoButton({ 77 + return my.createUserInfoButton({
79 type: 'text', 78 type: 'text',
80 text: ' ', 79 text: ' ',
81 style: { 80 style: {
@@ -96,36 +95,33 @@ export class WxHelper { @@ -96,36 +95,33 @@ export class WxHelper {
96 } 95 }
97 96
98 /** 计算微信坐标 */ 97 /** 计算微信坐标 */
99 - public static computWxPosition(target: Node): { left: number, top: number, width: number, height: number } { 98 + public static computWxPosition(target: cc.Node): { left: number, top: number, width: number, height: number } {
100 99
101 let data = { left: 0, top: 0, width: 0, height: 0 } 100 let data = { left: 0, top: 0, width: 0, height: 0 }
102 - let pos = target.worldPosition;  
103 - let width = target.getComponent(UITransform).width;  
104 - let height = target.getComponent(UITransform).height;  
105 - let ratio = view.getDevicePixelRatio();  
106 - let scale = view.getScaleX(); 101 + let rect = target.getBoundingBoxToWorld();
  102 + let ratio = cc.view.getDevicePixelRatio();
  103 + let scale = cc.view.getScaleX();
107 let factor = scale / ratio; 104 let factor = scale / ratio;
108 - // let point = cc.v2(rect.x, rect.y); 105 + // let point = v2(rect.x, rect.y);
109 // point.mulSelf(scale); 106 // point.mulSelf(scale);
110 - data.left = (pos.x - width / 2) * factor;  
111 - data.top = wx.getSystemInfoSync().screenHeight - (pos.y + height / 2) * factor;  
112 - data.width = width * factor;  
113 - data.height = height * factor;  
114 -  
115 - // let btnSize = cc.size(target.width + 10, target.height + 10);  
116 - // let frameSize = cc.view.getFrameSize();  
117 - // let winSize = cc.director.getWinSize();  
118 - // // cc.log("winSize: ",winSize);  
119 - // // cc.log("frameSize: ",frameSize); 107 + data.left = rect.x * factor;
  108 + data.top = this.SystemInfo.screenHeight - (rect.y + rect.height) * factor;
  109 + data.width = rect.width * factor;
  110 + data.height = rect.height * factor;
  111 +
  112 + // let btnSize = size(target.width + 10, target.height + 10);
  113 + // let frameSize = view.getFrameSize();
  114 + // let winSize = director.getWinSize();
  115 + // // log("winSize: ",winSize);
  116 + // // log("frameSize: ",frameSize);
120 // //适配不同机型来创建微信按钮 117 // //适配不同机型来创建微信按钮
121 // data.left = (winSize.width * 0.5 + target.x - btnSize.width * 0.5) / winSize.width * frameSize.width; 118 // data.left = (winSize.width * 0.5 + target.x - btnSize.width * 0.5) / winSize.width * frameSize.width;
122 // data.top = (winSize.height * 0.5 - target.y - btnSize.height * 0.5) / winSize.height * frameSize.height; 119 // data.top = (winSize.height * 0.5 - target.y - btnSize.height * 0.5) / winSize.height * frameSize.height;
123 // data.width = btnSize.width / winSize.width * frameSize.width; 120 // data.width = btnSize.width / winSize.width * frameSize.width;
124 // data.height = btnSize.height / winSize.height * frameSize.height; 121 // data.height = btnSize.height / winSize.height * frameSize.height;
125 - // cc.log("button pos: ",cc.v2(left,top));  
126 - // cc.log("button size: ",cc.size(width,height)); 122 + // log("button pos: ",v2(left,top));
  123 + // log("button size: ",size(width,height));
127 124
128 - // cc.log(data)  
129 return data; 125 return data;
130 126
131 } 127 }
@@ -165,30 +161,10 @@ export class WxHelper { @@ -165,30 +161,10 @@ export class WxHelper {
165 161
166 /** 显示一个对话框 */ 162 /** 显示一个对话框 */
167 public static showModal(data: ShowModalType) { 163 public static showModal(data: ShowModalType) {
168 - if (typeof my != 'undefined') {  
169 - return new Promise((resolve, reject) => {  
170 - wx.confirm({  
171 - ...data,  
172 - success: (res: { confirm: boolean, cancel: boolean }) => {  
173 - if (res.confirm) {  
174 - resolve(true);  
175 - } else {  
176 - resolve(false);  
177 - }  
178 - },  
179 - fail: () => {  
180 - reject();  
181 - }  
182 -  
183 - });  
184 -  
185 - });  
186 - }  
187 -  
188 return new Promise((resolve, reject) => { 164 return new Promise((resolve, reject) => {
189 165
190 - if (typeof wx !== 'undefined') {  
191 - wx.showModal({ 166 + if (typeof my !== 'undefined') {
  167 + my.showModal({
192 ...data, 168 ...data,
193 success: (res: { confirm: boolean, cancel: boolean }) => { 169 success: (res: { confirm: boolean, cancel: boolean }) => {
194 if (res.confirm) { 170 if (res.confirm) {
@@ -203,7 +179,6 @@ export class WxHelper { @@ -203,7 +179,6 @@ export class WxHelper {
203 179
204 }); 180 });
205 } else { 181 } else {
206 - console.log(JSON.stringify(data));  
207 } 182 }
208 183
209 }); 184 });
@@ -216,41 +191,30 @@ export class WxHelper { @@ -216,41 +191,30 @@ export class WxHelper {
216 * @param time 关闭时间 191 * @param time 关闭时间
217 */ 192 */
218 public static showToast(msg: string, time: number = 1500) { 193 public static showToast(msg: string, time: number = 1500) {
219 - if (!this.isWx) return;  
220 - if (typeof my != 'undefined') { 194 + if (cc.sys.platform === cc.sys.WECHAT_GAME)
  195 + wx.showToast({
  196 + title: msg,
  197 + icon: 'none',
  198 + duration: time
  199 + })
  200 + else if (cc.sys.platform === cc.sys.ALIPAY_GAME) {
221 my.showToast({ 201 my.showToast({
222 type: 'none', 202 type: 'none',
223 content: msg, 203 content: msg,
224 duration: time, 204 duration: time,
225 }); 205 });
226 - return; 206 + } else {
  207 + console.log(msg)
227 } 208 }
228 - wx.showToast({  
229 - title: msg,  
230 - icon: 'none',  
231 - duration: time  
232 - })  
233 209
234 } 210 }
235 211
236 /** 设置系统剪贴板的内容 */ 212 /** 设置系统剪贴板的内容 */
237 public static copy(str: string) { 213 public static copy(str: string) {
238 if (!this.checkVerison('1.1.0')) return Promise.reject(''); 214 if (!this.checkVerison('1.1.0')) return Promise.reject('');
239 - if (typeof my != 'undefined') {  
240 - return new Promise((resolve, reject) => {  
241 - wx.setClipboard({  
242 - text: str,  
243 - success: (res: any) => {  
244 - resolve(res);  
245 - },  
246 - fail: () => {  
247 - resolve('');  
248 - }  
249 - });  
250 - });  
251 - } 215 +
252 return new Promise((resolve, reject) => { 216 return new Promise((resolve, reject) => {
253 - wx.setClipboardData({ 217 + my.setClipboardData({
254 data: str, 218 data: str,
255 success: (res: any) => { 219 success: (res: any) => {
256 resolve(res); 220 resolve(res);
@@ -264,10 +228,10 @@ export class WxHelper { @@ -264,10 +228,10 @@ export class WxHelper {
264 228
265 /** 手机发生较长时间的振动(400 ms) */ 229 /** 手机发生较长时间的振动(400 ms) */
266 public static vibrateLong() { 230 public static vibrateLong() {
267 - if (!this.checkVerison('1.2.0')) return Promise.reject(null); 231 + // if (!this.checkVerison('1.2.0')) return Promise.reject(null);
268 232
269 return new Promise((resolve, reject) => { 233 return new Promise((resolve, reject) => {
270 - wx.vibrateLong({ 234 + my.vibrateLong({
271 success: () => { 235 success: () => {
272 resolve(1); 236 resolve(1);
273 }, 237 },
@@ -280,10 +244,10 @@ export class WxHelper { @@ -280,10 +244,10 @@ export class WxHelper {
280 244
281 /** 手机发生较短时间的振动(15 ms) */ 245 /** 手机发生较短时间的振动(15 ms) */
282 public static vibrateShort() { 246 public static vibrateShort() {
283 - if (!this.checkVerison('1.2.0')) return Promise.reject(null); 247 + // if (!this.checkVerison('1.2.0')) return Promise.reject(null);
284 248
285 return new Promise<IResult<any>>((resolve, reject) => { 249 return new Promise<IResult<any>>((resolve, reject) => {
286 - wx.vibrateShort({ 250 + my.vibrateShort({
287 success: () => { 251 success: () => {
288 resolve({ code: 0 }); 252 resolve({ code: 0 });
289 }, 253 },
@@ -299,13 +263,13 @@ export class WxHelper { @@ -299,13 +263,13 @@ export class WxHelper {
299 */ 263 */
300 public static checkUpdate(bol: boolean = true) { 264 public static checkUpdate(bol: boolean = true) {
301 if (!this.checkVerison('1.9.90')) return; 265 if (!this.checkVerison('1.9.90')) return;
302 - const updateManager = wx.getUpdateManager(); 266 + const updateManager = my.getUpdateManager();
303 updateManager.onCheckForUpdate(function (res) { 267 updateManager.onCheckForUpdate(function (res) {
304 console.log('updateManager', res.hasUpdate); 268 console.log('updateManager', res.hasUpdate);
305 }); 269 });
306 270
307 updateManager.onUpdateReady(function () { 271 updateManager.onUpdateReady(function () {
308 - wx.showModal({ 272 + my.showModal({
309 title: '更新提示', 273 title: '更新提示',
310 content: '新版本已经准备好,请重启应用!', 274 content: '新版本已经准备好,请重启应用!',
311 showCancel: bol, 275 showCancel: bol,
@@ -326,7 +290,7 @@ export class WxHelper { @@ -326,7 +290,7 @@ export class WxHelper {
326 290
327 return new Promise<IResult<any>>((resolve, reject) => { 291 return new Promise<IResult<any>>((resolve, reject) => {
328 if (!this.checkVerison('2.0.3')) resolve({ code: 1 }); 292 if (!this.checkVerison('2.0.3')) resolve({ code: 1 });
329 - wx.openCustomerServiceConversation({ 293 + my.openCustomerServiceConversation({
330 showMessageCard: true, 294 showMessageCard: true,
331 sendMessageTitle: '我要更多好玩!', 295 sendMessageTitle: '我要更多好玩!',
332 sendMessageImg: 'http://dep.miso-lab.com/tetrischangeskin/bin/share/concat.png', 296 sendMessageImg: 'http://dep.miso-lab.com/tetrischangeskin/bin/share/concat.png',
@@ -346,7 +310,7 @@ export class WxHelper { @@ -346,7 +310,7 @@ export class WxHelper {
346 310
347 return new Promise<IResult<any>>((resolve, reject) => { 311 return new Promise<IResult<any>>((resolve, reject) => {
348 if (!this.checkVerison('2.0.3')) resolve({ code: 1 }); 312 if (!this.checkVerison('2.0.3')) resolve({ code: 1 });
349 - wx.openCustomerServiceConversation({ 313 + my.openCustomerServiceConversation({
350 success: () => { 314 success: () => {
351 resolve({ code: 0 }); 315 resolve({ code: 0 });
352 }, 316 },
@@ -360,10 +324,10 @@ export class WxHelper { @@ -360,10 +324,10 @@ export class WxHelper {
360 324
361 /** 回到前台 */ 325 /** 回到前台 */
362 public static onShow(callback: () => void) { 326 public static onShow(callback: () => void) {
363 - if (!this.isWx) return;  
364 - wx.onShow(callback); 327 + if (typeof my === 'undefined') return;
  328 + my.onShow(callback);
365 // return new Promise<IResult<any>>((resolve, reject) => { 329 // return new Promise<IResult<any>>((resolve, reject) => {
366 - // wx.onShow((res: any) => { 330 + // my.onShow((res: any) => {
367 // resolve({ code: 1 }); 331 // resolve({ code: 1 });
368 // }); 332 // });
369 // }); 333 // });
@@ -373,14 +337,14 @@ export class WxHelper { @@ -373,14 +337,14 @@ export class WxHelper {
373 /** 切换到后台 */ 337 /** 切换到后台 */
374 public static onHide(callback: () => void) { 338 public static onHide(callback: () => void) {
375 339
376 - if (!this.isWx) return;  
377 - wx.onHide(callback); 340 + if (typeof my === 'undefined') return;
  341 + my.onHide(callback);
378 342
379 } 343 }
380 344
381 public static updateShareMenu(value) { 345 public static updateShareMenu(value) {
382 - if (!this.isWx) return;  
383 - wx.updateShareMenu({ 346 + if (typeof my === 'undefined') return;
  347 + my.updateShareMenu({
384 withShareTicket: value 348 withShareTicket: value
385 }); 349 });
386 } 350 }
@@ -388,49 +352,18 @@ export class WxHelper { @@ -388,49 +352,18 @@ export class WxHelper {
388 /** 352 /**
389 * 检查授权 353 * 检查授权
390 */ 354 */
391 - public static getSetting(scope: string = 'scope.userInfo') {  
392 - if (!this.isWx) return Promise.resolve(1);  
393 - return new Promise((resolve, reject) => {  
394 - wx.getSetting({  
395 - success(res) {  
396 - if (res.authSetting[scope]) {  
397 - resolve(1)  
398 - } else {  
399 - reject()  
400 - }  
401 - }  
402 - })  
403 - })  
404 - }  
405 - /**  
406 - * 打开授权设置  
407 - */  
408 - public static openSetting(scope: string = 'scope.userInfo') {  
409 - if (!this.isWx) return Promise.resolve(1);  
410 - return new Promise((resolve, reject) => {  
411 - wx.openSetting({  
412 - success(res) {  
413 - if (res.authSetting[scope]) {  
414 - resolve(1)  
415 - } else {  
416 - reject()  
417 - }  
418 - }  
419 - })  
420 - })  
421 - }  
422 - /**  
423 - * 打开授权窗口  
424 - */  
425 public static authorize(scope: string = 'scope.userInfo') { 355 public static authorize(scope: string = 'scope.userInfo') {
426 - if (!this.isWx) return;  
427 - wx.authorize({  
428 - scope: scope,  
429 - success(suc) {  
430 - console.log("suc", suc)  
431 - },  
432 - fail(err) {  
433 - console.log("err", err) 356 + if (typeof my === 'undefined') return;
  357 + my.getSetting({
  358 + success(res) {
  359 + if (!res.authSetting[scope]) {
  360 + my.authorize({
  361 + scope: scope,
  362 + success() {
  363 +
  364 + }
  365 + })
  366 + }
434 } 367 }
435 }) 368 })
436 } 369 }
@@ -438,42 +371,21 @@ export class WxHelper { @@ -438,42 +371,21 @@ export class WxHelper {
438 * 获取用户信息 371 * 获取用户信息
439 */ 372 */
440 public static getUserInfo(callback) { 373 public static getUserInfo(callback) {
441 - wx.getUserInfo({  
442 - success: function (res) {  
443 - // console.log(res)  
444 - callback(res)  
445 - },  
446 - fail: function (err) {  
447 - callback(err)  
448 - }  
449 - })  
450 - }  
451 - /**  
452 - * 获取用户信息 自动弹出  
453 - */  
454 - public static getUserProfile(callback) {  
455 - if (!this.isWx) {  
456 - callback({ userInfo: "" })  
457 - return  
458 - };  
459 - wx.getUserProfile({  
460 - desc: '补充用户资料', 374 + my.getUserInfo({
461 success: function (res) { 375 success: function (res) {
462 // console.log(res) 376 // console.log(res)
463 callback(res) 377 callback(res)
464 }, 378 },
465 fail: function (err) { 379 fail: function (err) {
466 - console.log("获取用户信息", err);  
467 callback(err) 380 callback(err)
468 } 381 }
469 }) 382 })
470 } 383 }
471 /** 游戏圈 */ 384 /** 游戏圈 */
472 - public static createGameClubButton(target: Node) { 385 + public static createGameClubButton(target: cc.Node) {
473 let data = this.computWxPosition(target); 386 let data = this.computWxPosition(target);
474 - //@ts-ignore  
475 - return wx.createGameClubButton({  
476 - icon: 'white', 387 + return my.createGameClubButton({
  388 + icon: 'green',
477 style: { 389 style: {
478 left: data.left, 390 left: data.left,
479 top: data.top, 391 top: data.top,
@@ -484,51 +396,65 @@ export class WxHelper { @@ -484,51 +396,65 @@ export class WxHelper {
484 396
485 } 397 }
486 398
487 - /** 抖音创建客服按钮 */  
488 - public static createContactButton(target: Node) {  
489 -  
490 - let data = this.computWxPosition(target);  
491 - return wx.createContactButton({  
492 - type: "text", // image | text  
493 - // image: "../resources/prefab/loading/mask",  
494 - text: ' ',  
495 - style: {  
496 - left: data.left,  
497 - top: data.top,  
498 - width: data.width,  
499 - height: data.height,  
500 - // lineHeight: 40,  
501 - backgroundColor: "#00000000",  
502 - // textAlign: "center",  
503 - // fontSize: 16,  
504 - // borderRadius: 5,  
505 - borderColor: "#00000000",  
506 - // borderWidth: 1,  
507 - // textColor: "#ffffff",  
508 - },  
509 - success(res) {  
510 - console.log("createContactButton success", res);  
511 - },  
512 - fail(res) {  
513 - console.log("createContactButton fail", res);  
514 - },  
515 - complete(res) {  
516 - console.log("createContactButton complete", res); 399 + public static setUserWxCloudStorage(data: object) {
  400 + if (cc.sys.platform != cc.sys.WECHAT_GAME || !DataService.I.Authorize) return null;
  401 + wx.setUserCloudStorage({
  402 + KVDataList: [{ key: 'data', value: JSON.stringify(data) }],
  403 + success: res => {
  404 + console.log("分数上传 成功", data);
517 }, 405 },
  406 + fail: res => {
  407 + console.log("分数上传 失败");
  408 + }
518 }); 409 });
  410 +
519 } 411 }
  412 + public static showRankEnter() {
  413 + return WxHelper.isOperable && AlipayApi.I.canUseRank()
  414 + }
  415 + public static getRank(key: string) {
  416 + if (cc.sys.platform === cc.sys.ALIPAY_GAME) {
  417 + AlipayApi.I.getRankList(key).then(() => {
  418 + console.log('success 关闭banner')
  419 + // BannerManager.I.hideAll();
  420 + }).catch((msg) => {
  421 + console.log('fail', JSON.stringify(msg))
  422 + // WxHelper.showToast(msg.errMsg || msg.errorMessage || '排行榜获取失败')
  423 + });
  424 + }
520 425
521 - public static restartMiniProgram() {  
522 - if (typeof my != 'undefined') {  
523 - game.restart();  
524 - return; 426 + }
  427 + public static setRankScore(key: string, score: number, updateType?: number) {
  428 + if (cc.sys.platform === cc.sys.ALIPAY_GAME)
  429 + AlipayApi.I.setRankScoreData(key, score, updateType);
  430 + }
  431 + public static async loginWx(isAuthorize: boolean, failFunction?: Function, count?: number, success?: Function): Promise<any> {
  432 + count = count != undefined ? count : 3;
  433 + let data = await SDKTools.login(isAuthorize);
  434 + // console.error(count, 'loginWx', data)
  435 + if (data.code == 0) {
  436 + success && success();
  437 + return data;
  438 + } else if (count >= 0) {
  439 + count--;
  440 + return await this.loginWx(isAuthorize, failFunction, count);
  441 + } else if (failFunction) {
  442 + console.warn('--wxlogin--fail', data)
  443 + failFunction();
  444 + return null;
525 } 445 }
526 - if (!this.isWx) {  
527 - return  
528 - };  
529 - if (!wx.restartMiniProgram) {  
530 - this.showToast("自动重启失败,请手动重启!", 10000); 446 + }
  447 +
  448 +
  449 +
  450 +
  451 +
  452 + public static goToGameCenter(success: Function, fail: Function) {
  453 + //每个游戏跳转游戏中心的url 不一样
  454 + let url = "alipays://platformapi/startapp?appId=2021003125685383&url=https%3A%2F%2Frender.alipay.com%2Fp%2Fyuyan%2F180020010001206617%2Findex.html%3FcaprMode%3Dsync&chInfo=gamesetlattice&sms=YES&appClearTop=false";
  455 + if (cc.sys.platform === cc.sys.ALIPAY_GAME) {
  456 + AlipayApi.I.navigateToMiniProgramByScheme(url, success, fail)
531 } 457 }
532 - wx.restartMiniProgram();  
533 } 458 }
  459 +
534 } 460 }
535 \ No newline at end of file 461 \ No newline at end of file
sdk/shareTools.ts
1 -import { UIManager } from "../../framework/core/view/UIManager";  
2 -import { AudioManager } from "../../framework/mananger/AudioManager";  
3 -import TAMgr from "../../framework/ta/TAMgr";  
4 -import WXSDK from "../../framework/wxsdk/WXSDK";  
5 -import { EventModels, EventPool } from "../const/EventModels";  
6 -import { GameConst } from "../const/GameConst";  
7 -import { EActivitySubTaskType, EWindowExitCode, WindowType } from "../const/types";  
8 -import { mapController } from "../modules/map/MapController";  
9 -import { PayShopManager } from "../modules/server/manager/PayShopManager";  
10 -import { shopController } from "../modules/shop/ShopController";  
11 -import { Utils } from "../utils/Utils";  
12 -import MaskView from "../view/common/MaskView"; 1 +import SDKUtils from "../wxsdk/utils/SDKUtils";
  2 +import WXSDK from "../wxsdk/WXSDK";
13 import { Analytics } from "./Analytics"; 3 import { Analytics } from "./Analytics";
14 -import { Ge } from "./Ge";  
15 -import { SDKTools } from "./SDKTools";  
16 -import { WxHelper } from "./WxHelper";  
17 - 4 +import SDKShare from "../wxsdk/share/SDKShare";
  5 +import { ShareVideoError } from "../wxsdk/base/SDKConst";
18 /* 6 /*
19 * 分享与视频工具类; 7 * 分享与视频工具类;
20 */ 8 */
@@ -25,126 +13,92 @@ export class ShareTools { @@ -25,126 +13,92 @@ export class ShareTools {
25 public static onShowAd: boolean = false; 13 public static onShowAd: boolean = false;
26 14
27 public static isTest: boolean = false; 15 public static isTest: boolean = false;
28 -  
29 - // private static getAdCount() {  
30 - // try {  
31 - // let adCount = SDKTools.getParamsString("ad_count", '10,10');  
32 - // let arr = adCount.split(',').map(Number);  
33 - // if (SDKTools.isnew) {  
34 - // return +arr[0];  
35 - // } else {  
36 - // return +arr[1];  
37 - // }  
38 - // } catch (error) {  
39 - // return 10;  
40 - // }  
41 - // }  
42 /** 16 /**
43 * 验证分享:可处理成功、失败 17 * 验证分享:可处理成功、失败
44 * @param shareKey 18 * @param shareKey
45 * @param params params.fail 有就不处理,没有自动处理 19 * @param params params.fail 有就不处理,没有自动处理
46 * @param opts 目前支持4个key 1,title自定义分享标题 2,img_url自定义分享图片 3,share_type(不走后台配置写死走视频or分享。1分享2视频3无视频则分享)4,closeSimulate是否关闭模拟分享 20 * @param opts 目前支持4个key 1,title自定义分享标题 2,img_url自定义分享图片 3,share_type(不走后台配置写死走视频or分享。1分享2视频3无视频则分享)4,closeSimulate是否关闭模拟分享
47 */ 21 */
48 - static async share(shareKey: string, params?: { success?: Function, fail?: Function, context?: any }, opts?: any) {  
49 - const type = this.getShareType(shareKey);  
50 - // 免广告卡、体验卡  
51 - if ((type == 2 && (!opts || opts.share_type != 1)) || (opts && opts.share_type == 2)) {  
52 - if (PayShopManager.I.isExperienceOrNoAd()) {  
53 - Analytics.I.dot("video_no_ad", { form: shareKey });  
54 - params && params.success && params.success();  
55 - return;  
56 - } else {  
57 - // 非免广告卡、体验卡用户 检查是否买过体验卡  
58 - if (PayShopManager.I.checkShowExperience()) {  
59 - if (shopController.buyExperienceTips != Utils.getDayTime(0)) {  
60 - shopController.buyExperienceTips = Utils.getDayTime(0);;  
61 - UIManager.instance.showWindow2(WindowType.ExperienceGiftWindow);  
62 - params && params.fail && params.fail();  
63 - return;  
64 - }  
65 - }  
66 - }  
67 - }  
68 - // 广告卡  
69 - if (((type == 2 && (!opts || opts.share_type != 1)) || (opts && opts.share_type == 2)) && mapController.getPackageItemNum(GameConst.ITEM_ADCARD_ID) > 0) {  
70 - const ret = await UIManager.instance.waitWindow2(WindowType.AdCardWindow);  
71 - if (ret == EWindowExitCode.Yes) {  
72 - Analytics.I.dot("ad_card", { ad_card: shareKey });  
73 - params && params.success && params.success();  
74 - return;  
75 - }  
76 - }  
77 -  
78 - if ((typeof wx == 'undefined'&&typeof my == 'undefined') || this.isTest) { 22 + static share(shareKey: string, params?: { success?: Function, fail?: Function, context?: any }, opts?: any) {
  23 + if (typeof my === 'undefined' || this.isTest) {
79 params && params.success && params.success(); 24 params && params.success && params.success();
80 - // 分享  
81 - const evt = EventPool.get(EventModels.AcitvitySubTaskEvent);  
82 - evt.type = EActivitySubTaskType.Share;  
83 - evt.centerEmit();  
84 return 25 return
85 } 26 }
86 -  
87 - // // 看广告n次后处理为分享  
88 - // let count = this.getAdCount();  
89 - // let isClear = false;  
90 - // // console.log("改为分享前:", settingsController.videoCount, count);  
91 - // if (settingsController.videoCount >= count) {  
92 - // if (type != 1 || (opts && opts.share_type == 2)) {// 视频 or // 强制视频  
93 - // opts = {  
94 - // ...opts,  
95 - // share_type: 1,//强制改为分享  
96 - // };  
97 - // isClear = true;  
98 - // // console.log("改为分享了");  
99 - // }  
100 - // }  
101 -  
102 - this.onShowAd = true;  
103 - AudioManager.I.pauseAll();  
104 - if (!opts || !opts.closeSimulate) {  
105 - MaskView.Show() 27 + let time = 1500;
  28 + let self = this;
  29 + if (SDKUtils.compareVersion(my.env.clientVersion, '10.3.70') < 0) {
  30 + Analytics.I.dot('videoFail', { "from": 'versionLow' });
  31 + my.showToast({
  32 + type: 'none',
  33 + content: '当前版本不支持视频广告哦,请您升级支付宝版本',
  34 + duration: time,
  35 + });
  36 + return;
106 } 37 }
  38 + this.onShowAd = true;
  39 +
107 WXSDK.share.share(shareKey.toString(), params, opts).then(async res => { 40 WXSDK.share.share(shareKey.toString(), params, opts).then(async res => {
108 this.onShowAd = false; 41 this.onShowAd = false;
109 - // if (isClear) {  
110 - // settingsController.videoCount = 0;  
111 - // }  
112 - if (res.type == 2) {  
113 - // 视频  
114 - // settingsController.videoCount++;  
115 - Ge.I.adShowEvent("video", shareKey.toString());  
116 - TAMgr.Ins.userAdd({ total_ad_num: 1 });  
117 - } else {  
118 - // 分享  
119 - const evt = EventPool.get(EventModels.AcitvitySubTaskEvent);  
120 - evt.type = EActivitySubTaskType.Share;  
121 - evt.centerEmit();  
122 - TAMgr.Ins.dot('share_source', { from: shareKey });  
123 - }  
124 params && params.success && params.success(res); 42 params && params.success && params.success(res);
125 - AudioManager.I.resumeAll();  
126 - MaskView.Hide();  
127 - }).catch(async err => {  
128 - AudioManager.I.resumeAll();  
129 - MaskView.Hide();  
130 - this.onShowAd = false;  
131 - if (!params || !params.fail) {  
132 - if (err && err.msg) {  
133 - WxHelper.showToast(err.msg)  
134 - } 43 + }).catch(async videoErr => {
  44 + console.log(JSON.stringify(videoErr));
  45 + let showShare = !(videoErr.code == ShareVideoError.VideoPlaying.code || videoErr.code == ShareVideoError.VideoQuit.code);
  46 + if (showShare && SDKUtils.compareVersion(my.env.clientVersion, '10.1.75') > 0) {
  47 + SDKShare.I.share(shareKey, params, opts).then(success => {
  48 + params && params.success && params.success(success);
  49 + Analytics.I.dot('videoFail', { "from": 'share_success' });
  50 + }).catch(shareErr => {
  51 + console.log(`share fail${JSON.stringify(shareErr)}`)
  52 + Analytics.I.dot('videoFail', { "from": 'share_fail' });
  53 + self.onShowAd = false;
  54 + if (!params || !params.fail) {
  55 + if (cc.sys.platform === cc.sys.WECHAT_GAME) {
  56 + wx.showToast({
  57 + title: shareErr.msg,
  58 + icon: 'none',
  59 + duration: time
  60 + })
  61 + } else if (cc.sys.platform === cc.sys.ALIPAY_GAME) {
  62 + Analytics.I.dot('videoFail', { "from": 'other3_' + shareErr.code });
  63 + my.showToast({
  64 + content: shareErr.msg,
  65 + type: 'none',
  66 + duration: 1500
  67 + })
  68 + }
  69 + } else {
  70 + Analytics.I.dot('videoFail', { "from": 'other4_' + shareErr.code });
  71 + params && params.fail && params.fail(shareErr);
  72 + }
  73 + })
135 } else { 74 } else {
136 - params && params.fail && params.fail(err); 75 + Analytics.I.dot('videoFail', { "from": 'share_versionLow' });
  76 + this.onShowAd = false;
  77 + if (!params || !params.fail) {
  78 + if (cc.sys.platform === cc.sys.WECHAT_GAME) {
  79 + wx.showToast({
  80 + title: videoErr.msg,
  81 + icon: 'none',
  82 + duration: time
  83 + })
  84 + } else if (cc.sys.platform === cc.sys.ALIPAY_GAME) {
  85 + Analytics.I.dot('videoFail', { "from": 'other1_' + videoErr.code });
  86 + my.showToast({
  87 + content: videoErr.msg,
  88 + type: 'none',
  89 + duration: 1500
  90 + })
  91 + }
  92 + } else {
  93 + Analytics.I.dot('videoFail', { "from": 'other2_' + videoErr.code });
  94 + params && params.fail && params.fail(videoErr);
  95 + }
137 } 96 }
138 - })  
139 - }  
140 97
141 - /**  
142 - * 必定视频 不走后台配置  
143 - * @param shareKey  
144 - * @param params  
145 - */  
146 - static video(shareKey: string, params?: { success?: Function, fail?: Function, context?: any }, opts?: any) {  
147 - this.share(shareKey, params, { ...opts, share_type: 2 }); 98 +
  99 +
  100 +
  101 + })//this.buildParams(params)
148 } 102 }
149 /** 103 /**
150 * 纯净分享 不处理回调 104 * 纯净分享 不处理回调
@@ -175,11 +129,9 @@ export class ShareTools { @@ -175,11 +129,9 @@ export class ShareTools {
175 } 129 }
176 } 130 }
177 131
178 - /**  
179 - * 分享到朋友圈 bate 只支持安卓  
180 - */  
181 - static onShareTimeline(title: string, imageUrl: string, imagePreviewUrl?: string, query?: string) {  
182 - WXSDK.share.onShareTimeline(title, imageUrl, imagePreviewUrl, query);  
183 - } 132 +}
  133 +
  134 +
184 135
  136 +export enum ShareKey {
185 } 137 }
wxsdk/WXSDK.ts
@@ -7,10 +7,9 @@ import LogService from &quot;./service/LogService&quot;; @@ -7,10 +7,9 @@ import LogService from &quot;./service/LogService&quot;;
7 import AdService from "./service/AdService"; 7 import AdService from "./service/AdService";
8 import OnlineService from "./service/OnlineService"; 8 import OnlineService from "./service/OnlineService";
9 import WxInterstitial from "./wx/WxInterstitial"; 9 import WxInterstitial from "./wx/WxInterstitial";
10 -import { sys } from "cc";  
11 export default class WXSDK { 10 export default class WXSDK {
12 public static get isWx(): boolean { 11 public static get isWx(): boolean {
13 - return typeof wx != "undefined" 12 + return typeof (my) != "undefined"
14 } 13 }
15 public static get data(): SdkData { 14 public static get data(): SdkData {
16 return DataService.I.Data; 15 return DataService.I.Data;
@@ -37,19 +36,38 @@ export default class WXSDK { @@ -37,19 +36,38 @@ export default class WXSDK {
37 36
38 37
39 public static async init() { 38 public static async init() {
40 - if (this.isWx) { 39 + // if (this.isWx) {
  40 + // WxInit.I.init();
  41 + // //视频预加载 启动预加载视频会闪屏
  42 + // // setTimeout(() => {
  43 + // // WxInterstitial.initInterstitialAd();//插屏预加载
  44 + // // ShareVideoService.I.preloadVideo();
  45 + // // }, 2000);
  46 + // if (this.isWx) {
  47 + // setTimeout(() => {
  48 + // WxInterstitial.initInterstitialAd();//插屏预加载
  49 + // ShareVideoService.I.preloadVideo();
  50 + // }, 2000);
  51 + // }
  52 + // }
  53 + // DataService.I.updateTodayOnlineTime();
  54 + // await this.game.env();
  55 + // if (this.isWx) {
  56 + // ShareVideoService.I.init();
  57 + // }
  58 + // return Promise.resolve();
  59 + if (cc.sys.platform === cc.sys.ALIPAY_GAME || cc.sys.platform === cc.sys.WECHAT_GAME) {
41 WxInit.I.init(); 60 WxInit.I.init();
42 - //视频预加载 启动预加载视频会闪屏  
43 - if (typeof wx !='undefined') { 61 + // 视频预加载 启动预加载视频会闪屏
  62 + // if (cc.sys.platform === cc.sys.WECHAT_GAME && typeof qq == 'undefined') {
  63 + if (typeof qq == 'undefined') {
44 setTimeout(() => { 64 setTimeout(() => {
45 - // WxInterstitial.initInterstitialAd();//插屏预加载 65 + WXSDK.ad.initInterstitialAd();//插屏预加载
46 ShareVideoService.I.preloadVideo(); 66 ShareVideoService.I.preloadVideo();
47 }, 2000); 67 }, 2000);
48 } 68 }
49 - }  
50 - DataService.I.updateTodayOnlineTime();  
51 - await this.game.env();  
52 - if (this.isWx) { 69 + DataService.I.updateTodayOnlineTime();
  70 + await this.game.env();
53 ShareVideoService.I.init(); 71 ShareVideoService.I.init();
54 } 72 }
55 return Promise.resolve(); 73 return Promise.resolve();
wxsdk/alipay/AlipayApi.ts
@@ -9,6 +9,7 @@ import WxSystem from &quot;../wx/WxSystem&quot;; @@ -9,6 +9,7 @@ import WxSystem from &quot;../wx/WxSystem&quot;;
9 import { SDKApi } from "../http/SDKApi"; 9 import { SDKApi } from "../http/SDKApi";
10 10
11 export default class AlipayApi { 11 export default class AlipayApi {
  12 + private _requirementVersion = { rank: '10.5.6' }
12 private getVersionError(version: string): { errMsg: string; errCode: number } { 13 private getVersionError(version: string): { errMsg: string; errCode: number } {
13 return { errMsg: `支持最低版本:${version}`, errCode: -1 }; 14 return { errMsg: `支持最低版本:${version}`, errCode: -1 };
14 } 15 }
@@ -100,7 +101,7 @@ export default class AlipayApi { @@ -100,7 +101,7 @@ export default class AlipayApi {
100 * 创建激励视频广告组件 101 * 创建激励视频广告组件
101 */ 102 */
102 createRewardedVideoAd(adUnitId: string) { 103 createRewardedVideoAd(adUnitId: string) {
103 - // if (!this.canIUse(Version.I.getVRewardedVideoAd())) return null; 104 + if (!this.canIUse(Version.I.getVRewardedVideoAd())) return null;
104 return my.createRewardedAd({ 105 return my.createRewardedAd({
105 adUnitId: adUnitId, 106 adUnitId: adUnitId,
106 }); 107 });
@@ -229,14 +230,15 @@ export default class AlipayApi { @@ -229,14 +230,15 @@ export default class AlipayApi {
229 my.onShareAppMessage = function () { 230 my.onShareAppMessage = function () {
230 return { 231 return {
231 title: data.title, 232 title: data.title,
232 - bgImgUrl:'https://wxsdk-cdn.miso-lab.com/moon-island/share/zfbshare.jpeg',  
233 // desc: , 233 // desc: ,
234 - scImgUrl: data.imageUrl, 234 + imageUrl: data.imageUrl,
235 success: function (res) { 235 success: function (res) {
236 - console.log(res); 236 + // console.log(res);
  237 + // callback.success()
237 }, 238 },
238 fail: function (e) { 239 fail: function (e) {
239 - console.log(e); 240 + // console.log(e);
  241 + // callback.fail()
240 }, 242 },
241 complete: function (e) { 243 complete: function (e) {
242 244
@@ -246,10 +248,12 @@ export default class AlipayApi { @@ -246,10 +248,12 @@ export default class AlipayApi {
246 248
247 return my.showSharePanel({ 249 return my.showSharePanel({
248 success: () => { 250 success: () => {
  251 + // console.log('showSharePanel aa')
249 callback.success(); 252 callback.success();
250 253
251 }, 254 },
252 fail: () => { 255 fail: () => {
  256 + // console.log('showSharePanel fail')
253 callback.fail(); 257 callback.fail();
254 }, 258 },
255 complete: (e) => { 259 complete: (e) => {
@@ -291,13 +295,30 @@ export default class AlipayApi { @@ -291,13 +295,30 @@ export default class AlipayApi {
291 }); 295 });
292 } 296 }
293 297
  298 +
  299 + /**
  300 + * 如果是从别的小程序内跳转过来的,关闭的时候需要回到之前的小程序
  301 + */
  302 + navigateBackMiniProgram() {
  303 + my.navigateBackMiniProgram({
  304 + extraData: {
  305 +
  306 + },
  307 + success: (res) => {
  308 + console.log(res)
  309 + },
  310 + fail: (err) => {
  311 + console.log(err)
  312 + }
  313 + });
  314 + }
  315 +
294 navigateToMiniProgram(appId: string, path: string, opts: any = {}) { 316 navigateToMiniProgram(appId: string, path: string, opts: any = {}) {
295 return new Promise((resolve, reject) => { 317 return new Promise((resolve, reject) => {
296 - wx.navigateToMiniProgram({ 318 + my.navigateToMiniProgram({
297 appId, 319 appId,
298 path, 320 path,
299 extraData: opts.extraData || {}, 321 extraData: opts.extraData || {},
300 - envVersion: opts.envVersion || 'release',  
301 success(res: any) { 322 success(res: any) {
302 resolve(res); 323 resolve(res);
303 }, 324 },
@@ -307,6 +328,64 @@ export default class AlipayApi { @@ -307,6 +328,64 @@ export default class AlipayApi {
307 }); 328 });
308 }); 329 });
309 } 330 }
  331 + // 将 scheme 转换为 my.navigateToMiniProgram 的参数 scheme为外部app打开地址 游戏内需要转
  332 + private schemeToParams(scheme) {
  333 + if (!scheme.startsWith('alipays:')) {
  334 + return { message: '! 非 alipays: 开头' };
  335 + }
  336 + var params = {};
  337 + var parseQuery = (str) => {
  338 + return str.replace(/^.*?\?/, '').split('&').map(s => {
  339 + var p = s.includes('=') ? s.indexOf('=') : s.length;
  340 + return [s.slice(0, p), s.slice(p + 1)].map(decodeURIComponent);
  341 + });
  342 + };
  343 + for (var [k, v] of parseQuery(scheme)) {
  344 + if (k == 'appId') {
  345 + if (v.length != 16) {
  346 + return { message: `! 非 16 位 appId '${v}'` };
  347 + }
  348 + } else if (k == 'chInfo') {
  349 + let tempkey = 'startParam';
  350 + let tempValue = params[tempkey] || {};
  351 + tempValue[k] = v;
  352 + params[tempkey] = tempValue;
  353 + continue;
  354 + } else {
  355 + continue;
  356 + }
  357 + // else if (k == 'page') {
  358 + // k = 'path';
  359 + // } else if (k == 'query') {
  360 + // var o = {};
  361 + // for (var [x, y] of parseQuery(v)) {
  362 + // o[x] = y;
  363 + // }
  364 + // v = o;
  365 + // } else if (k == '') {
  366 + // continue;
  367 + // } else {
  368 + // let extraData = 'extraData';
  369 + // let newV = params[extraData] || {};
  370 + // newV[k] = v;
  371 + // v = newV;
  372 + // k = extraData;
  373 + // }
  374 + params[k] = v;
  375 + }
  376 + return { params };
  377 + }
  378 + navigateToMiniProgramByScheme(scheme, success, fail) {
  379 + let { params, message } = this.schemeToParams(scheme);
  380 + console.log('params--', { ...params });
  381 + if (cc.sys.platform != cc.sys.ALIPAY_GAME) return
  382 + if (params) {
  383 + my.navigateToMiniProgram({ ...params, success, fail,});
  384 + } else {
  385 + fail && fail({ error: -1, errorMessage: `无效的小程序 scheme ${scheme}: ${message}` });
  386 + }
  387 + }
  388 +
310 389
311 /** 390 /**
312 * login获取code接口 391 * login获取code接口
@@ -388,15 +467,15 @@ export default class AlipayApi { @@ -388,15 +467,15 @@ export default class AlipayApi {
388 */ 467 */
389 requestMidasPayment(params: { mode: string; env: number; offerId: string; currencyType: string; platform: string; buyQuantity: number; zoneId: string }): Promise<any> { 468 requestMidasPayment(params: { mode: string; env: number; offerId: string; currencyType: string; platform: string; buyQuantity: number; zoneId: string }): Promise<any> {
390 let { mode, env, offerId, currencyType, platform, buyQuantity, zoneId } = params; 469 let { mode, env, offerId, currencyType, platform, buyQuantity, zoneId } = params;
391 - console.warn('====> PCSDK AlipayApi requestMidasPayment 支付参数', {  
392 - mode,  
393 - env,  
394 - offerId,  
395 - currencyType,  
396 - platform,  
397 - buyQuantity,  
398 - zoneId  
399 - }); 470 + // console.warn('====> PCSDK AlipayApi requestMidasPayment 支付参数', {
  471 + // mode,
  472 + // env,
  473 + // offerId,
  474 + // currencyType,
  475 + // platform,
  476 + // buyQuantity,
  477 + // zoneId
  478 + // });
400 return new Promise((resolve, reject) => { 479 return new Promise((resolve, reject) => {
401 wx.requestMidasPayment({ 480 wx.requestMidasPayment({
402 mode, 481 mode,
@@ -459,19 +538,117 @@ export default class AlipayApi { @@ -459,19 +538,117 @@ export default class AlipayApi {
459 action_code, 538 action_code,
460 action_finish_channel 539 action_finish_channel
461 }; 540 };
462 - return SDKApi.incrementGameaction(params).then(() => {  
463 - // my.confirm({  
464 - // title: '增加量行为',  
465 - // content: `${action_code}`,  
466 - // confirmButtonText: ``,  
467 - // cancelButtonText: '暂不需要',  
468 - // success: (result) => {  
469 - // },  
470 - // }); 541 + return SDKApi.aliMission(params).then(() => {
471 resolve(null) 542 resolve(null)
472 }) 543 })
473 }) 544 })
474 } 545 }
  546 + //段位
  547 + setRankSegmentData(rankKey: string, segment: number, segmentName: string) {
  548 + return new Promise((resolve, reject) => {
  549 + if (cc.sys.platform != cc.sys.ALIPAY_GAME) return reject({ errMsg: `无环境`, errCode: -1 })
  550 + if (!this.canIUse('10.5.6')) return reject(this.getVersionError('10.5.6'));
  551 + my.setImRankData({
  552 + rankId: rankKey,
  553 + dataType: 1, //1 为枚举类型。用于传段位信息。
  554 + value: segmentName, //该用户得了999999分,dataType为0时,需填入正数的字符串
  555 + priority: segment, //段位权重
  556 + updateType: 0, // 0为覆盖更新,1为破纪录更新。
  557 + success(res) {
  558 + console.log(res);
  559 + resolve(res);
  560 + },
  561 + fail(res) {
  562 + console.log('fail->', res);
  563 + reject(res)
  564 + },
  565 + // complete(res) {
  566 + // console.log(res);
  567 + // }
  568 + });
  569 + });
  570 + }
  571 + //排行榜成绩
  572 + setRankScoreData(rankKey: string, score: number, updateType: number = 1) {
  573 +
  574 + return new Promise((resolve, reject) => {
  575 + if (cc.sys.platform != cc.sys.ALIPAY_GAME) return reject({ errMsg: `无环境`, errCode: -1 })
  576 + if (!this.canIUse(this._requirementVersion.rank)) return reject(this.getVersionError(this._requirementVersion.rank));
  577 + my.setImRankData({
  578 + rankId: rankKey,
  579 + dataType: 0, //成绩为数字类型
  580 + value: score.toString(), //该用户得了999999分,dataType为0时,需填入正数的字符串
  581 + priority: 0, //dataType为0时,可不传。
  582 + updateType: updateType, // 0为覆盖更新,1为破纪录更新。
  583 + success(res) {
  584 + console.log('add-> success', res);
  585 + resolve(res);
  586 + },
  587 + fail(res) {
  588 + console.log('add fail->', res);
  589 + reject(res)
  590 + }
  591 + // complete(res) {
  592 + // console.log(res);
  593 + // }
  594 + });
  595 + });
  596 + }
  597 +
  598 + canUseRank() {
  599 + return this.canIUse(this._requirementVersion.rank)
  600 + }
  601 + /**
  602 + *
  603 + * @param rankKey 排行榜唯一ID,唯一标识游戏内的排行榜。
  604 + * @param scorePrefix 排行榜成绩值前缀。
  605 + * @param scoreSuffix 排行榜成绩值后缀。
  606 + */
  607 + getRankList(rankKey: string, scorePrefix?: string, scoreSuffix?: string) {
  608 + return new Promise((resolve, reject) => {
  609 + if (cc.sys.platform != cc.sys.ALIPAY_GAME) return reject({ errMsg: `无环境`, errCode: -1 })
  610 + if (!this.canIUse(this._requirementVersion.rank)) return reject(this.getVersionError(this._requirementVersion.rank));
  611 + my.getImRankList({
  612 + rankId: rankKey,
  613 + // headImg: '', // 排行榜头部
  614 + scorePrefix: scorePrefix, // 成绩值前缀
  615 + scoreSuffix: scoreSuffix, // 成绩值后缀
  616 + success(res) {
  617 + // console.log(res);
  618 + resolve(res);
  619 + },
  620 + fail(res) {
  621 + console.log('getImRankList fail->', JSON.stringify(res));
  622 + reject(res)
  623 + },
  624 + // complete(res) {
  625 + // console.log(res);
  626 + // }
  627 + });
  628 + })
  629 + }
  630 +
  631 + //玩一玩小程序是否已加首咨询
  632 + isAddHomePage(): Promise<boolean> {
  633 + return new Promise((resolve, reject) => {
  634 + if (window['my'] == undefined) return reject(false);
  635 + let uid = DataService.I.UserId;
  636 + let token = DataService.I.Token;
  637 + let openid = DataService.I.OpenId;
  638 + let params = {
  639 + uid,
  640 + token,
  641 + openid,
  642 + };
  643 + SDKApi.isAddHomePage(params).then((data) => {
  644 + console.log('--->设首结果', data)
  645 + //Y:已添加首页,N:未添加首页
  646 + return resolve(data?.data.consult_result == 'Y')
  647 + }).catch(() => {
  648 + return reject(false);
  649 + })
  650 + })
  651 + }
475 652
476 653
477 private static _instance: AlipayApi; 654 private static _instance: AlipayApi;
wxsdk/alipay/AlipayBanner.ts
1 1
2 -// import SDKUtils from "../utils/SDKUtils";  
3 -// import { BannerError, __LOG__ } from "../base/SDKConst";  
4 -// import LogService from "../service/LogService";  
5 -// import { DOT_AD_STATUS, DOT_AD_TYPE } from "../base/SDKEnum";  
6 -// import WxSystem from "../wx/WxSystem";  
7 -// import AlipayApi from "./AlipayApi";  
8 -  
9 -  
10 -// /*  
11 -// * banner  
12 -// */  
13 -// export default class AlipayBanner {  
14 -// private static instance: AlipayBanner;  
15 -// static get I(): AlipayBanner {  
16 -// return this.instance || (this.instance = new AlipayBanner(750, 750));  
17 -// }  
18 -// private designWidth: number;  
19 -// private bannerWidth: number;  
20 -// private bannerHeight: number;  
21 -// private bannerScale: number;  
22 -// private bannerParams: any;  
23 -// private _isErrored: boolean;  
24 -// private adUnitId: string;  
25 -// private bannerAd: any;  
26 -// private resolve: any;  
27 -// private reject: any;  
28 -  
29 -// constructor(designWidth: number, bannerWidth: number) {  
30 -// designWidth = designWidth || 750;  
31 -// bannerWidth = bannerWidth || 750;  
32 -  
33 -// this.adUnitId = '';  
34 -// this._isErrored = false;  
35 -// this.designWidth = designWidth;  
36 -// this.bannerScale = WxSystem.I.winWidth / this.designWidth;  
37 -// this.bannerWidth = Math.max(this.bannerScale * bannerWidth, 300);  
38 -// this.bannerHeight = WxSystem.I.winHeight / this.bannerScale;  
39 -// }  
40 -  
41 -// get isErrored() {  
42 -// return this._isErrored;  
43 -// }  
44 -  
45 -// private queue: Function[] = [];  
46 -// private isEnd: boolean = false;  
47 -  
48 -// create(adUnitId: string, opts?: { type?: number; bannerWidth?: number, offsetY?: number; adIntervals?: number, isOff?: boolean }) {  
49 -// // console.log('wxbanner can not')  
50 -// if (SDKUtils.compareVersion(my.env.clientVersion, '10.3.66') < 0) return null;  
51 -// // if (!WxApi.I.canIUse(Version.I.getVBannerAd()))  
52 -// // console.log('wxbanner can', adUnitId)  
53 -  
54 -// this.bannerParams = opts || {};  
55 -// if (opts && opts.bannerWidth) {  
56 -// this.bannerWidth = opts.bannerWidth;  
57 -// }  
58 -// this.isEnd = true;  
59 -// this.bannerParams.type = this.bannerParams.type || 1;  
60 -// this.bannerParams.offsetY = -this.bannerParams.offsetY || 0;  
61 -// this.bannerParams.adIntervals = this.bannerParams.adIntervals || 120;  
62 -// return new Promise((resolve, reject) => {  
63 -// this.resolve = resolve;  
64 -// this.reject = reject;  
65 -// this._isErrored = false;  
66 -// this.adUnitId = adUnitId;  
67 -  
68 -// if (SDKUtils.isEmpty(adUnitId)) {  
69 -// AlipayBanner.I.handleQueue();  
70 -// return this.reject({ ...BannerError.BannerInvalid, adUnitId: this.adUnitId });  
71 -// }  
72 -  
73 -// // 设置样式(hack:修复qq版本)  
74 -// this.bannerParams.type === 2 && (this.bannerWidth = WxSystem.I.winWidth);  
75 -// let style = { top: 0, left: (WxSystem.I.winWidth - this.bannerWidth) / 2, width: this.bannerWidth };  
76 -// style = {  
77 -// ...style,  
78 -// top: WxSystem.I.winHeight - 100,  
79 -// };  
80 -// // 创建并判断是否存在  
81 -// // if (this.bannerParams.type === 2)  
82 -// // this.bannerAd = wx.createGameBanner({ adUnitId, style: { left: style.left, top: this.bannerHeight } });  
83 -// // else  
84 -// if (this.bannerAd) {  
85 -// if (!opts || (opts && !opts.isOff)) {  
86 -// this.show(false);  
87 -// }  
88 -// return  
89 -// }  
90 -// this.bannerAd = AlipayApi.I.createBannerAd(adUnitId, style);  
91 -// LogService.I.adStat('banner', this.adUnitId, DOT_AD_TYPE.banner, DOT_AD_STATUS.request)  
92 -// if (!this.bannerAd) {  
93 -// AlipayBanner.I.handleQueue();  
94 -// return this.reject({ ...BannerError.BannerNotOpen, adUnitId: this.adUnitId });  
95 -// }  
96 -// this.bannerAd.onLoad(this.onLoad);  
97 -// this.bannerAd.onError(this.onError);  
98 -// //支付宝无这个方法!!!  
99 -// // this.bannerAd.onResize(this.onResize);  
100 -// if (!opts || (opts && !opts.isOff)) {  
101 -// this.show(false);  
102 -// }  
103 -// });  
104 -// }  
105 -  
106 -// /**  
107 -// *  
108 -// * @param bol  
109 -// */  
110 -// show(bol: boolean = true): boolean {  
111 -// if (AlipayBanner.I.isEnd && bol) {  
112 -// AlipayBanner.I.queue.push(AlipayBanner.I.show.bind(AlipayBanner.I))  
113 -// return  
114 -// }  
115 -// AlipayBanner.I.isEnd = true  
116 -// if (this.bannerAd) {  
117 -// if (this.bannerAd.style.realHeight)  
118 -// this.bannerAd.style.top = WxSystem.I.winHeight - this.bannerAd.style.realHeight + this.bannerParams.offsetY;  
119 -// if (this.bannerParams.type === 2) {  
120 -// if (this.bannerAd.style.width)  
121 -// this.bannerAd.style.left = (WxSystem.I.winWidth - this.bannerAd.style.width) / 2;  
122 -// else  
123 -// this.bannerAd.style.left = (WxSystem.I.winWidth - this.bannerWidth) / 2;  
124 -// } else  
125 -// this.bannerAd.style.left = (WxSystem.I.winWidth - this.bannerWidth) / 2;  
126 -  
127 -// LogService.I.adStat('banner', this.adUnitId, DOT_AD_TYPE.banner, DOT_AD_STATUS.show)  
128 -// this.bannerAd.show().catch((err: any) => this.handleShowError(err));  
129 -// __LOG__ && console.error('wxBanner - show: ' + this.adUnitId, this.bannerAd.style);  
130 -// AlipayBanner.I.handleQueue()  
131 -// return true;  
132 -// }  
133 -// AlipayBanner.I.handleQueue()  
134 -// return false;  
135 -// }  
136 -  
137 -// hide() {  
138 -// let that = AlipayBanner.I;  
139 -// if (that.isEnd) {  
140 -// that.queue.push(that.hide.bind(that))  
141 -// return  
142 -// }  
143 -// that.isEnd = true  
144 -// if (this.bannerAd) {  
145 -// this.bannerAd.style.left = -9999;  
146 -// this.bannerAd.hide();  
147 -// LogService.I.adStat('banner', that.adUnitId, DOT_AD_TYPE.banner, DOT_AD_STATUS.interrupt)  
148 -// __LOG__ && console.error('wxBanner - hide: ' + this.adUnitId);  
149 -// }  
150 -// that.handleQueue()  
151 -// }  
152 -  
153 -// toggle(isshow: boolean) {  
154 -// isshow ? this.show() : this.hide();  
155 -// }  
156 -  
157 -// destory() {  
158 -// if (this.bannerAd) {  
159 -// this.bannerAd.style.left = -9999;  
160 -// this.bannerAd.destroy();  
161 -// this.bannerAd = null;  
162 -// LogService.I.adStat('banner', this.adUnitId, DOT_AD_TYPE.banner, DOT_AD_STATUS.interrupt)  
163 -// __LOG__ && console.error('wxBanner - destory: ' + this.adUnitId);  
164 -// }  
165 -// }  
166 -  
167 -// private onLoad() {  
168 -// let that = AlipayBanner.I;  
169 -// let bannerAd = that.bannerAd;  
170 -// if (!bannerAd) return;  
171 -// // Platform.IsQQ && that.show();  
172 -// __LOG__ && console.error('wxBanner - onLoad: ' + that.adUnitId);  
173 -// if (bannerAd.style.realHeight)  
174 -// bannerAd.style.top = WxSystem.I.winHeight - bannerAd.style.realHeight + that.bannerParams.offsetY;  
175 -// that.unbind();  
176 -// that.handleQueue();  
177 -// that.resolve && that.resolve({  
178 -// adUnitId: that.adUnitId,  
179 -// scale: that.bannerScale,  
180 -// width: bannerAd.style.realWidth / that.bannerScale,  
181 -// height: bannerAd.style.realHeight / that.bannerScale  
182 -// });  
183 -// }  
184 -  
185 -// private onError(err: any, ...params) {  
186 -// __LOG__ && console.error('wxBanner - onError', err, JSON.stringify(err), params);  
187 -// let that = AlipayBanner.I;  
188 -// !that._isErrored && that.handleError(err, { ...BannerError.BannerFail, adUnitId: that.adUnitId });  
189 -// }  
190 -  
191 -// private onResize() {  
192 -// let that = AlipayBanner.I;  
193 -// let bannerAd = that.bannerAd;  
194 -// if (!bannerAd) return;  
195 -// bannerAd.style.top = WxSystem.I.winHeight - bannerAd.style.realHeight + that.bannerParams.offsetY;  
196 -// bannerAd.style.left = (WxSystem.I.winWidth - bannerAd.style.realWidth) / 2;  
197 -// }  
198 -  
199 -// private handleShowError(ret: { errCode: number; errMsg: string }) {  
200 -// __LOG__ && console.error('wxBanner - handleShowError', ret);  
201 -// let that = AlipayBanner.I;  
202 -// let { errCode, errMsg } = ret;  
203 -// !that.isErrored && that.handleError(ret, { code: errCode, msg: errMsg });  
204 -// }  
205 -  
206 -// private handleError(ret: any, err: any) {  
207 -// let that = AlipayBanner.I;  
208 -// that.unbind();  
209 -// that._isErrored = true;  
210 -// that.bannerAd = null;  
211 -// that.handleQueue()  
212 -// LogService.I.adStat('banner', that.adUnitId, DOT_AD_TYPE.banner, DOT_AD_STATUS.fail)  
213 -// that.reject && that.reject({ ...err, adUnitId: that.adUnitId });  
214 -// __LOG__ && console.error('wxBanner - onError: ' + that.adUnitId, ret, err);  
215 -// }  
216 -  
217 -// private unbind() {  
218 -// if (this.bannerAd) {  
219 -// // this.bannerAd.offLoad(this.onLoad);  
220 -// // this.bannerAd.offError(this.onError);  
221 -// // this.bannerAd.offResize(this.onResize);  
222 -// }  
223 -// }  
224 -  
225 -// /**  
226 -// * 处队列  
227 -// */  
228 -// handleQueue() {  
229 -// let that = AlipayBanner.I;  
230 -// if (that.queue.length > 0) {  
231 -// that.isEnd = false;  
232 -// let fn = that.queue.shift();  
233 -// fn();  
234 -// } else {  
235 -// that.isEnd = false;  
236 -// }  
237 -// }  
238 -// }  
239 \ No newline at end of file 2 \ No newline at end of file
  3 +import SDKUtils from "../utils/SDKUtils";
  4 +import { BannerError, __LOG__ } from "../base/SDKConst";
  5 +import LogService from "../service/LogService";
  6 +import { DOT_AD_STATUS, DOT_AD_TYPE } from "../base/SDKEnum";
  7 +import WxSystem from "../wx/WxSystem";
  8 +import AlipayApi from "./AlipayApi";
  9 +
  10 +
  11 +/*
  12 +* banner
  13 +*/
  14 +export default class AlipayBanner {
  15 + private static instance: AlipayBanner;
  16 + static get I(): AlipayBanner {
  17 + return this.instance || (this.instance = new AlipayBanner(750, 750));
  18 + }
  19 + private designWidth: number;
  20 + private bannerWidth: number;
  21 + private bannerHeight: number;
  22 + private bannerScale: number;
  23 + private bannerParams: any;
  24 + private _isErrored: boolean;
  25 + private adUnitId: string;
  26 + private bannerAd: any;
  27 + private resolve: any;
  28 + private reject: any;
  29 + private _currentVisible: boolean = false;
  30 + constructor(designWidth: number, bannerWidth: number) {
  31 + designWidth = designWidth || 750;
  32 + bannerWidth = bannerWidth || 750;
  33 +
  34 + this.adUnitId = '';
  35 + this._isErrored = false;
  36 + this.designWidth = designWidth;
  37 + this.bannerScale = WxSystem.I.winWidth / this.designWidth;
  38 + this.bannerWidth = Math.max(this.bannerScale * bannerWidth, 300);
  39 + this.bannerHeight = WxSystem.I.winHeight / this.bannerScale;
  40 + }
  41 +
  42 + get isErrored() {
  43 + return this._isErrored;
  44 + }
  45 +
  46 + private queue: Function[] = [];
  47 + private isEnd: boolean = false;
  48 +
  49 + create(adUnitId: string, opts?: { type?: number; bannerWidth?: number, offsetY?: number; adIntervals?: number, isOff?: boolean }) {
  50 + // console.log('wxbanner can not')
  51 + if (SDKUtils.compareVersion(my.env.clientVersion, '10.3.66') < 0) return null;
  52 + // if (!WxApi.I.canIUse(Version.I.getVBannerAd()))
  53 + // console.log('wxbanner can', adUnitId)
  54 +
  55 + this.bannerParams = opts || {};
  56 + if (opts && opts.bannerWidth) {
  57 + this.bannerWidth = opts.bannerWidth;
  58 + }
  59 + this.isEnd = true;
  60 + this.bannerParams.type = this.bannerParams.type || 1;
  61 + this.bannerParams.offsetY = -this.bannerParams.offsetY || 0;
  62 + this.bannerParams.adIntervals = this.bannerParams.adIntervals || 120;
  63 + return new Promise((resolve, reject) => {
  64 + this.resolve = resolve;
  65 + this.reject = reject;
  66 + this._isErrored = false;
  67 + this.adUnitId = adUnitId;
  68 +
  69 + if (SDKUtils.isEmpty(adUnitId)) {
  70 + AlipayBanner.I.handleQueue();
  71 + return this.reject({ ...BannerError.BannerInvalid, adUnitId: this.adUnitId });
  72 + }
  73 +
  74 + // 设置样式(hack:修复qq版本)
  75 + this.bannerParams.type === 2 && (this.bannerWidth = WxSystem.I.winWidth);
  76 + let style = { top: 0, left: (WxSystem.I.winWidth - this.bannerWidth) / 2, width: this.bannerWidth };
  77 + style = {
  78 + ...style,
  79 + top: WxSystem.I.winHeight - 100,
  80 + };
  81 + // 创建并判断是否存在
  82 + // if (this.bannerParams.type === 2)
  83 + // this.bannerAd = wx.createGameBanner({ adUnitId, style: { left: style.left, top: this.bannerHeight } });
  84 + // else
  85 + if (this.bannerAd) {
  86 + if (!opts || (opts && !opts.isOff)) {
  87 + this.show(false);
  88 + }
  89 + return
  90 + }
  91 + this.bannerAd = AlipayApi.I.createBannerAd(adUnitId, style);
  92 + console.log('create new BannerAd')
  93 + LogService.I.adStat('banner', this.adUnitId, DOT_AD_TYPE.banner, DOT_AD_STATUS.request)
  94 + if (!this.bannerAd) {
  95 + AlipayBanner.I.handleQueue();
  96 + return this.reject({ ...BannerError.BannerNotOpen, adUnitId: this.adUnitId });
  97 + }
  98 + this.bannerAd.onLoad(this.onLoad);
  99 + this.bannerAd.onError(this.onError);
  100 + //支付宝无这个方法!!!
  101 + // this.bannerAd.onResize(this.onResize);
  102 + if (!opts || (opts && !opts.isOff)) {
  103 + this.show(false);
  104 + }
  105 + });
  106 + }
  107 +
  108 + /**
  109 + *
  110 + * @param bol
  111 + */
  112 + show(bol: boolean = true): boolean {
  113 + if (AlipayBanner.I.isEnd && bol) {
  114 + AlipayBanner.I.queue.push(AlipayBanner.I.show.bind(AlipayBanner.I))
  115 + return
  116 + }
  117 + AlipayBanner.I.isEnd = true
  118 + if (this.bannerAd && !this._currentVisible) {
  119 + if (this.bannerAd.style.realHeight)
  120 + this.bannerAd.style.top = WxSystem.I.winHeight - this.bannerAd.style.realHeight + this.bannerParams.offsetY;
  121 + if (this.bannerParams.type === 2) {
  122 + if (this.bannerAd.style.width)
  123 + this.bannerAd.style.left = (WxSystem.I.winWidth - this.bannerAd.style.width) / 2;
  124 + else
  125 + this.bannerAd.style.left = (WxSystem.I.winWidth - this.bannerWidth) / 2;
  126 + } else
  127 + this.bannerAd.style.left = (WxSystem.I.winWidth - this.bannerWidth) / 2;
  128 +
  129 + LogService.I.adStat('banner', this.adUnitId, DOT_AD_TYPE.banner, DOT_AD_STATUS.show)
  130 + this._currentVisible = true;
  131 + this.bannerAd.show().catch((err: any) => this.handleShowError(err));
  132 + __LOG__ && console.error('wxBanner - show: ' + this.adUnitId, this.bannerAd.style);
  133 + AlipayBanner.I.handleQueue()
  134 + return true;
  135 + }
  136 + AlipayBanner.I.handleQueue()
  137 + return false;
  138 + }
  139 +
  140 + hide() {
  141 +
  142 + let that = AlipayBanner.I;
  143 + if (that.isEnd) {
  144 + that.queue.push(that.hide.bind(that))
  145 + return
  146 + }
  147 + that.isEnd = true
  148 + if (this.bannerAd) {
  149 + this.bannerAd.style.left = -9999;
  150 + this.bannerAd.hide();
  151 + this._currentVisible = false;
  152 + LogService.I.adStat('banner', that.adUnitId, DOT_AD_TYPE.banner, DOT_AD_STATUS.interrupt)
  153 + __LOG__ && console.error('wxBanner - hide: ' + this.adUnitId);
  154 + }
  155 + that.handleQueue()
  156 + }
  157 +
  158 + toggle(isshow: boolean) {
  159 + isshow ? this.show() : this.hide();
  160 + }
  161 +
  162 + destory() {
  163 + if (this.bannerAd) {
  164 + this.bannerAd.style.left = -9999;
  165 + this.bannerAd?.destroy();
  166 + this.bannerAd = null;
  167 + LogService.I.adStat('banner', this.adUnitId, DOT_AD_TYPE.banner, DOT_AD_STATUS.interrupt)
  168 + __LOG__ && console.error('wxBanner - destory: ' + this.adUnitId);
  169 + }
  170 + }
  171 +
  172 + private onLoad() {
  173 + let that = AlipayBanner.I;
  174 + let bannerAd = that.bannerAd;
  175 + if (!bannerAd) return;
  176 + // Platform.IsQQ && that.show();
  177 + __LOG__ && console.error('wxBanner - onLoad: ' + that.adUnitId);
  178 + if (bannerAd.style.realHeight)
  179 + bannerAd.style.top = WxSystem.I.winHeight - bannerAd.style.realHeight + that.bannerParams.offsetY;
  180 + that.unbind();
  181 + that.handleQueue();
  182 + that.resolve && that.resolve({
  183 + adUnitId: that.adUnitId,
  184 + scale: that.bannerScale,
  185 + width: bannerAd.style.realWidth / that.bannerScale,
  186 + height: bannerAd.style.realHeight / that.bannerScale
  187 + });
  188 + }
  189 +
  190 + private onError(err: any, ...params) {
  191 + __LOG__ && console.error('wxBanner - onError', err, JSON.stringify(err), params);
  192 + let that = AlipayBanner.I;
  193 + !that._isErrored && that.handleError(err, { ...BannerError.BannerFail, adUnitId: that.adUnitId });
  194 + }
  195 +
  196 + private onResize() {
  197 + let that = AlipayBanner.I;
  198 + let bannerAd = that.bannerAd;
  199 + if (!bannerAd) return;
  200 + bannerAd.style.top = WxSystem.I.winHeight - bannerAd.style.realHeight + that.bannerParams.offsetY;
  201 + bannerAd.style.left = (WxSystem.I.winWidth - bannerAd.style.realWidth) / 2;
  202 + }
  203 +
  204 + private handleShowError(ret: { errCode: number; errMsg: string }) {
  205 + this._currentVisible = false;
  206 + __LOG__ && console.error('wxBanner - handleShowError', ret);
  207 + let that = AlipayBanner.I;
  208 + let { errCode, errMsg } = ret;
  209 + !that.isErrored && that.handleError(ret, { code: errCode, msg: errMsg });
  210 + }
  211 +
  212 + private handleError(ret: any, err: any) {
  213 + let that = AlipayBanner.I;
  214 + that.unbind();
  215 + that._isErrored = true;
  216 + that.bannerAd?.destroy();
  217 + that.bannerAd = null;
  218 + that.handleQueue()
  219 + LogService.I.adStat('banner', that.adUnitId, DOT_AD_TYPE.banner, DOT_AD_STATUS.fail)
  220 + that.reject && that.reject({ ...err, adUnitId: that.adUnitId });
  221 + __LOG__ && console.error('wxBanner - onError: ' + that.adUnitId, ret, err);
  222 + }
  223 +
  224 + private unbind() {
  225 + if (this.bannerAd) {
  226 + // this.bannerAd.offLoad(this.onLoad);
  227 + // this.bannerAd.offError(this.onError);
  228 + // this.bannerAd.offResize(this.onResize);
  229 + }
  230 + }
  231 +
  232 + /**
  233 + * 处队列
  234 + */
  235 + handleQueue() {
  236 + let that = AlipayBanner.I;
  237 + if (that.queue.length > 0) {
  238 + that.isEnd = false;
  239 + let fn = that.queue.shift();
  240 + fn();
  241 + } else {
  242 + that.isEnd = false;
  243 + }
  244 + }
  245 +}
240 \ No newline at end of file 246 \ No newline at end of file
wxsdk/alipay/AlipayInterstitial.ts
1 -// import { GAMEDATA } from "../base/SDKConst";  
2 -// import { DOT_AD_STATUS, DOT_AD_TYPE } from "../base/SDKEnum";  
3 -// import LogService from "../service/LogService";  
4 -// import AlipayApi from "./AlipayApi"; 1 +import { GAMEDATA } from "../base/SDKConst";
  2 +import { DOT_AD_STATUS, DOT_AD_TYPE } from "../base/SDKEnum";
  3 +import LogService from "../service/LogService";
  4 +import AlipayApi from "./AlipayApi";
5 5
6 -// export default class AlipayInterstitial {  
7 -// /** 插屏广告ID */  
8 -// private static interstitialAdId: string = GAMEDATA.interstitialAdId;  
9 -// /** 插屏广告实例 */  
10 -// public static interstitialAd: any;  
11 -// /** 插屏广告是否加载完成 */  
12 -// private static interstitialSuccell: boolean = false;  
13 -// /** 初始化插屏广告 */  
14 -// public static initInterstitialAd(adUnitId: string = GAMEDATA.interstitialAdId) {  
15 -// this.interstitialAdId = adUnitId;  
16 -// this.createInterstitial();  
17 -// } 6 +export default class AlipayInterstitial {
  7 + /** 插屏广告ID */
  8 + private static interstitialAdId: string = GAMEDATA.interstitialAdId;
  9 + /** 插屏广告实例 */
  10 + public static interstitialAd: any;
  11 + /** 插屏广告是否加载完成 */
  12 + private static interstitialSuccell: boolean = false;
  13 + /** 初始化插屏广告 */
  14 + public static initInterstitialAd(adUnitId: string = GAMEDATA.interstitialAdId) {
  15 + this.interstitialAdId = adUnitId;
  16 + this.createInterstitial();
  17 + }
18 18
19 -// /** 显示插屏广告 */  
20 -// public static showInterstitialAd(adUnitId: string = GAMEDATA.interstitialAdId) {  
21 -// return new Promise(async (resolve, reject) => {  
22 -// this.interstitialAdId = adUnitId;  
23 -// if (!this.interstitialSuccell) {  
24 -// this.createInterstitial(true, resolve);  
25 -// return;  
26 -// }  
27 -// this.interstitialAd.show().then(suc => {  
28 -// resolve && resolve({ code: 0, msg: "展示成功!" });  
29 -// LogService.I.adStat('InterstitialAd', this.interstitialAdId, DOT_AD_TYPE.interstitial, DOT_AD_STATUS.show)  
30 -// }).catch((err) => {  
31 -// LogService.I.adStat('InterstitialAd', this.interstitialAdId, DOT_AD_TYPE.interstitial, DOT_AD_STATUS.fail)  
32 -// resolve && resolve({ code: err.errCode, msg: err.errMsg });  
33 -// })  
34 -// })  
35 -// } 19 + /** 显示插屏广告 */
  20 + public static showInterstitialAd(adUnitId: string = GAMEDATA.interstitialAdId) {
  21 + return new Promise(async (resolve, reject) => {
  22 + this.interstitialAdId = adUnitId;
  23 + if (!this.interstitialSuccell) {
  24 + this.createInterstitial(true, resolve);
  25 + return;
  26 + }
  27 + this.interstitialAd.show().then(suc => {
  28 + resolve && resolve({ code: 0, msg: "展示成功!" });
  29 + LogService.I.adStat('InterstitialAd', this.interstitialAdId, DOT_AD_TYPE.interstitial, DOT_AD_STATUS.show)
  30 + }).catch((err) => {
  31 + LogService.I.adStat('InterstitialAd', this.interstitialAdId, DOT_AD_TYPE.interstitial, DOT_AD_STATUS.fail)
  32 + resolve && resolve({ code: err.errCode, msg: err.errMsg });
  33 + })
  34 + })
  35 + }
36 36
37 -// /** 创建插屏广告 */  
38 -// private static createInterstitial(isShow: boolean = false, resolve?) {  
39 -// LogService.I.adStat('InterstitialAd', this.interstitialAdId, DOT_AD_TYPE.interstitial, DOT_AD_STATUS.request)  
40 -// this.interstitialAd = AlipayApi.I.createInterstitialAd(this.interstitialAdId);  
41 -// this.interstitialAd.onLoad(async () => {  
42 -// AlipayInterstitial.interstitialSuccell = true;  
43 -// LogService.I.adStat('InterstitialAd', this.interstitialAdId, DOT_AD_TYPE.interstitial, DOT_AD_STATUS.rt)  
44 -// if (isShow) {  
45 -// this.interstitialAd.show().then(suc => {  
46 -// resolve && resolve({ code: 0, msg: "展示成功!" });  
47 -// LogService.I.adStat('InterstitialAd', this.interstitialAdId, DOT_AD_TYPE.interstitial, DOT_AD_STATUS.show)  
48 -// }).catch((err) => {  
49 -// AlipayInterstitial.interstitialSuccell = false;  
50 -// LogService.I.adStat('InterstitialAd', this.interstitialAdId, DOT_AD_TYPE.interstitial, DOT_AD_STATUS.fail)  
51 -// resolve && resolve({ code: err.errCode, msg: err.errMsg });  
52 -// })  
53 -// }  
54 -// })  
55 -// this.interstitialAd.onError(err => {  
56 -// LogService.I.adStat('InterstitialAd', this.interstitialAdId, DOT_AD_TYPE.interstitial, DOT_AD_STATUS.fail)  
57 -// AlipayInterstitial.interstitialSuccell = false;  
58 -// resolve && resolve({ code: err.errCode, msg: err.errMsg });  
59 -// }) 37 + /** 创建插屏广告 */
  38 + private static createInterstitial(isShow: boolean = false, resolve?) {
  39 + LogService.I.adStat('InterstitialAd', this.interstitialAdId, DOT_AD_TYPE.interstitial, DOT_AD_STATUS.request)
  40 + this.interstitialAd = AlipayApi.I.createInterstitialAd(this.interstitialAdId);
  41 + this.interstitialAd.onLoad(async () => {
  42 + AlipayInterstitial.interstitialSuccell = true;
  43 + LogService.I.adStat('InterstitialAd', this.interstitialAdId, DOT_AD_TYPE.interstitial, DOT_AD_STATUS.rt)
  44 + if (isShow) {
  45 + this.interstitialAd.show().then(suc => {
  46 + resolve && resolve({ code: 0, msg: "展示成功!" });
  47 + LogService.I.adStat('InterstitialAd', this.interstitialAdId, DOT_AD_TYPE.interstitial, DOT_AD_STATUS.show)
  48 + }).catch((err) => {
  49 + AlipayInterstitial.interstitialSuccell = false;
  50 + LogService.I.adStat('InterstitialAd', this.interstitialAdId, DOT_AD_TYPE.interstitial, DOT_AD_STATUS.fail)
  51 + resolve && resolve({ code: err.errCode, msg: err.errMsg });
  52 + })
  53 + }
  54 + })
  55 + this.interstitialAd.onError(err => {
  56 + LogService.I.adStat('InterstitialAd', this.interstitialAdId, DOT_AD_TYPE.interstitial, DOT_AD_STATUS.fail)
  57 + AlipayInterstitial.interstitialSuccell = false;
  58 + resolve && resolve({ code: err.errCode, msg: err.errMsg });
  59 + })
60 60
61 -// this.interstitialAd.onClose(call => {  
62 -// this.createInterstitial(false);  
63 -// })  
64 -// // }).bind(this), 200); 61 + this.interstitialAd.onClose(call => {
  62 + this.createInterstitial(false);
  63 + })
  64 + // }).bind(this), 200);
65 65
66 66
67 -// }  
68 -// }  
69 \ No newline at end of file 67 \ No newline at end of file
  68 + }
  69 +}
70 \ No newline at end of file 70 \ No newline at end of file
wxsdk/alipay/zfbPay.ts
@@ -1,183 +0,0 @@ @@ -1,183 +0,0 @@
1 -import { WxHelper } from '../../../game/sdk/WxHelper';  
2 -import { GAMEDATA } from '../base/SDKConst';  
3 -import { EnvCode } from '../base/SDKEnum';  
4 -import { SDKApi } from '../http/SDKApi';  
5 -import DataService from '../service/DataService';  
6 -import WxSystem from '../wx/WxSystem';  
7 -  
8 -export default class ZfbPay {  
9 - /**  
10 - * 发起支付  
11 - */  
12 - pay(params: { payid: string, goodid: string, money: number; orderid: string }, opts: any = {}): Promise<any> {  
13 - return new Promise((resolve, reject) => {  
14 - let { Mode, OfferId, ZoneId, CurrencyType, Platform } = GAMEDATA.MidasPay;  
15 - // 环境配置,0:米大师正式环境 1:米大师沙箱环境  
16 - let env = DataService.I.EnvEnum === EnvCode.Prod ? 0 : 1;  
17 - // 平台类型,android or ios,config.js有配置走配置,否则判断系统id  
18 - let platform = DataService.I.Platform;  
19 - let pms = {  
20 - mode: Mode,  
21 - env,  
22 - platform,  
23 - offerId: OfferId,  
24 - currencyType: CurrencyType,  
25 - buyQuantity: params.money / 10,  
26 - zoneId: ZoneId  
27 - };  
28 - let extend = "";  
29 - for (let key in opts) {  
30 - extend += (`${key}=${opts[key]}&`)  
31 - }  
32 - extend = extend.substring(0, extend.length - 1);  
33 - extend = encodeURIComponent(extend);  
34 -  
35 - let payParams = {  
36 - ...this.buildParams(),  
37 - extend,  
38 - orderid: params.orderid,  
39 - // payid: params.payid,  
40 - goodid: params.goodid,  
41 - money: params.money,  
42 - platform  
43 - };  
44 - SDKApi.zfbOrderReport(payParams).then(res => {  
45 - console.log("res:" + JSON.stringify(res));  
46 - console.log("调用函数成功00");  
47 - if (!res.code) {  
48 - let { customId, buyQuantity, extraInfo } = res.data;  
49 - my.requestGamePayment({  
50 - customId,  
51 - buyQuantity,  
52 - extraInfo,  
53 - success(res) {  
54 - console.log("调用函数成功");  
55 - resolve({ code: 0, msg: '支付成功!' })  
56 - },  
57 - fail(err) {  
58 - console.log("调用函数失败");  
59 - if (err && err.error) {  
60 - if ("" + err.error == '15215') {  
61 - my.alert({  
62 - title: '您好,基于国家新闻出版署《关于防止未成年人沉迷网络游戏的通知》的规定,支付宝限制未成年人游戏充值哦',  
63 - });  
64 - } else if ("" + err.error == '15204') {  
65 - my.alert({  
66 - title: '非常抱歉,充值功能暂不可用,请稍后再试',  
67 - });  
68 - }  
69 - }  
70 - resolve({ code: err.errCode, msg: '支付失败' });  
71 - },  
72 - complete(res) {  
73 - try {  
74 - console.log(JSON.stringify(res));  
75 - } catch (error) {  
76 -  
77 - }  
78 - console.log(res)  
79 - console.log("调用完成");  
80 - },  
81 - })  
82 - } else {  
83 - console.log("调用函数成功222");  
84 - reject(res);  
85 - }  
86 - })  
87 - });  
88 - }  
89 -  
90 - private async handlePaySuccess(data: { payid: string, goodid: string, money: number; orderid: string, platform: string }, opts: any, resolve: any, reject: any, t = 1000) {  
91 - let extend = "";  
92 - for (let key in opts) {  
93 - extend += (`${key}=${opts[key]}&`)  
94 - }  
95 - extend = extend.substring(0, extend.length - 1);  
96 - extend = encodeURIComponent(extend);  
97 - let params = {  
98 - ...this.buildParams(),  
99 - extend,  
100 - midasenv: DataService.I.EnvEnum === EnvCode.Prod ? 0 : 1,  
101 - orderid: data.orderid,  
102 - payid: data.payid, goodid: data.goodid,  
103 - type: 1,  
104 - money: data.money,  
105 - platform: data.platform  
106 - };  
107 - var that = this;  
108 - SDKApi.zfbOrderReport(params)  
109 - .then(res => {  
110 - if (!res.code) {  
111 - resolve(res);  
112 - } else {  
113 - t = Math.min(t * 2, 60000)  
114 - setTimeout(() => {  
115 - that.handlePaySuccess(data, opts, resolve, reject, t)  
116 - }, t);  
117 - }  
118 - })  
119 - }  
120 -  
121 - private handlePayError(data: { payid: string, goodid: string, money: number; orderid: string, platform: string }, opts, err: any, reject: any) {  
122 - console.log("支付失败", JSON.stringify(err));  
123 - let type = 2;  
124 - if (err.errCode + '' == '1') {  
125 - type = 3;  
126 - }  
127 - let extend = "";  
128 - for (let key in opts) {  
129 - extend += (`${key}=${opts[key]}&`)  
130 - }  
131 - extend = extend.substring(0, extend.length - 1);  
132 - extend = encodeURIComponent(extend);  
133 - let params = {  
134 - ...this.buildParams(),  
135 - extend,  
136 - midasenv: DataService.I.EnvEnum === EnvCode.Prod ? 0 : 1,  
137 - orderid: data.orderid,  
138 - payid: data.payid, goodid: data.goodid,  
139 - type,  
140 - money: data.money,  
141 - platform: data.platform  
142 - };  
143 - SDKApi.zfbOrderReport(params)  
144 - reject(err);  
145 - }  
146 -  
147 - /**  
148 - * 构建支付公用参数  
149 - */  
150 - private buildParams() {  
151 - let gameid = GAMEDATA.game_id;  
152 - let channel = DataService.I.ChannelId;  
153 - let openid = DataService.I.OpenId;  
154 - let brand = WxSystem.I.brand;  
155 - let model = WxSystem.I.model;  
156 - let version = WxSystem.I.version;  
157 - let system = WxSystem.I.system;  
158 - let sdkversion = WxSystem.I.SDKVersion;  
159 - let scene = DataService.I.Scene + '';  
160 - let uid = DataService.I.UserId;  
161 - let token = DataService.I.Token;  
162 - let env = DataService.I.EnvEnum === 1 ? 'pre' : 'prod';  
163 - return {  
164 - gameid,  
165 - openid,  
166 - channel,  
167 - brand,  
168 - model,  
169 - version,  
170 - system,  
171 - sdkversion,  
172 - scene,  
173 - uid,  
174 - token,  
175 - env  
176 - };  
177 - }  
178 -  
179 - private static _instance: ZfbPay;  
180 - static get I(): ZfbPay {  
181 - return this._instance || (this._instance = new ZfbPay);  
182 - }  
183 -}  
184 \ No newline at end of file 0 \ No newline at end of file
wxsdk/base/SDKBaseData.ts
1 export default class SDKBaseData{ 1 export default class SDKBaseData{
2 - public static SimulateShareTime:number = 1000; 2 + public static SimulateShareTime:number = 3000;
3 } 3 }
4 \ No newline at end of file 4 \ No newline at end of file
wxsdk/base/SDKConst.ts
1 // 游戏配置数据 只需要改动这里的配置信息 1 // 游戏配置数据 只需要改动这里的配置信息
  2 +// 2021003184609526
2 export const GAMEDATA = { 3 export const GAMEDATA = {
3 - game_id: '10110',//游戏id 4 + game_id: '10150',//游戏id
4 isDebug: false, 5 isDebug: false,
5 - channel_id: '10110',//渠道id 暂时和游戏id一致 6 + channel_id: '10150',//渠道id 暂时和游戏id一致
6 version: '1.0.0', //版本号 中台控制正式还是测试服,尽量保持和小游戏版本一致 7 version: '1.0.0', //版本号 中台控制正式还是测试服,尽量保持和小游戏版本一致
7 - appkey: '48ef655c48f53f1e75f2108cf65d394e',//中台appkey  
8 - interstitialAdId: 'adunit-4bd19de3c351233e',//插屏ID  
9 - bannerId: 'adunit-6145b17777e308a8',//banner  
10 - customId: 'adunit-193590de82ede6a4',//原生模板单个  
11 - videoAd: 'adunit-59404ef14e6c32ed',//初始化视频广告id 8 + appkey: '761bdbb773c59e545ac729adec818ddc',//中台appkey
  9 + interstitialAdId: 'ad_tiny_2021004125691158_202311162200070802',//插屏ID
  10 + bannerId: 'ad_tiny_2021004125691158_202311162200070801',//banner
  11 + customId: '',//原生模板单个
  12 + videoAd: 'ad_tiny_2021004125691158_202311162200070775',//初始化视频广告id
12 shareMessageToFriend: { // 暂时只支持一个场景值 13 shareMessageToFriend: { // 暂时只支持一个场景值
13 scene: 0, //定向分享场景值1-50 配>0的会初始化 14 scene: 0, //定向分享场景值1-50 配>0的会初始化
14 sharekey: 'shareMessageToFriendScene',//定向分享对应后台的分享key 15 sharekey: 'shareMessageToFriendScene',//定向分享对应后台的分享key
15 share_id: 26,//定向分享对应后台的分享key 16 share_id: 26,//定向分享对应后台的分享key
16 }, 17 },
17 - default_share: { //默认分享数据在拉取不到中台分享数据的时候用  
18 - content: '惊喜世界合不停',//分享标题 *找运营提供  
19 - icon: 'https://cdn-wxsdk.miso-lab.com/7d/da1ed3fb6073ddd43f156f98c625e3.jpg',//分享图链接 *找运营提供  
20 - id: '9999',//默认id 写死9999  
21 - key: 'default',//默认分享key 写死default  
22 - title: '默认',//无需修改  
23 - typ: 1,//分享类型 写死1  
24 - videoid: '',//默认的视频广告id 填空就行 18 + default_share: {
  19 + content: '还记得童年的泡泡龙吗?一起来怀旧吧~ 这个可以不?',
  20 + icon: 'https://cdn-wxsdk.miso-lab.com/f0/5653094b6b7826c8afd813d12735e3.jpg',
  21 + id: '9999',
  22 + key: 'default',
  23 + title: '默认',
  24 + typ: 1,
  25 + videoid: ''
25 }, 26 },
26 - MidasPay: { // 米大师虚拟支付配置 *找运营提供  
27 - OfferId: "1450051274", // 在米大师申请的应用id *找运营提供  
28 - ZoneId: "1", // 分区ID,默认:1  
29 - Mode: "game", // 默认:game  
30 - CurrencyType: "CNY", // 默认:CNY  
31 - Platform: '' // 申请接入时的平台  
32 - } 27 + subscribeIds: ['yB-vq0DvOhazzDbvS1UzttLMIQ50Z_i0n8st6yEZYkw', '4al8p3UBb3xqn7TYN1J5wYtKrCbFc2MYESAv1vWi-C0'], //, 'cMo71MjAFzGM2MEpRw2p8T5jJaEhXJUfiIjoOB5oO70'],
  28 + versionContent: '1、开启每日幸运转盘活动\r\n2、针对部分玩家出现的卡顿问题进行修复'
33 } 29 }
34 30
35 // sdk版本 31 // sdk版本
36 -export const SDKVersion = 'v1.0.15'; 32 +export const SDKVersion = 'v1.0.8';
37 // 是否打印 33 // 是否打印
38 export const __LOG__ = false; 34 export const __LOG__ = false;
39 // 是否mock 35 // 是否mock
@@ -41,6 +37,8 @@ export var sdkEnv = { @@ -41,6 +37,8 @@ export var sdkEnv = {
41 isDebug: false 37 isDebug: false
42 }; 38 };
43 39
  40 +
  41 +
44 //游戏基础信息 42 //游戏基础信息
45 export const VersionHost = 'https://wxsdk-ver.d3games.com/version'; 43 export const VersionHost = 'https://wxsdk-ver.d3games.com/version';
46 44
@@ -86,7 +84,6 @@ export const HostKeys = { @@ -86,7 +84,6 @@ export const HostKeys = {
86 client_log: 'logstores/client_log/track', //客户端日志 84 client_log: 'logstores/client_log/track', //客户端日志
87 consume: 'logstores/consume/track', //资源上报 85 consume: 'logstores/consume/track', //资源上报
88 daystay: 'logstores/daystay/track', //300s停留上报 86 daystay: 'logstores/daystay/track', //300s停留上报
89 - loading: 'logstores/loading/track', //loading上报  
90 87
91 //登录 88 //登录
92 Login: 'api/login', //登录 89 Login: 'api/login', //登录
@@ -102,27 +99,29 @@ export const HostKeys = { @@ -102,27 +99,29 @@ export const HostKeys = {
102 rankAdd: 'api/rank/add', //排行榜添加分数 517废弃 99 rankAdd: 'api/rank/add', //排行榜添加分数 517废弃
103 rankList: 'api/rank/list', //世界排行榜 517废弃 100 rankList: 'api/rank/list', //世界排行榜 517废弃
104 totalrankAdd: 'game/totalrank/add', //排行榜添加分数 101 totalrankAdd: 'game/totalrank/add', //排行榜添加分数
105 - totalrankList: 'game/totalrank/list', //世界排行榜 102 + totalrankList: 'game/totalrank/list', //世界排行榜
  103 + sendsubscribe: 'api/subscribe/event', //订阅
106 adList: 'api/adplan/list', //广告计划列表 104 adList: 'api/adplan/list', //广告计划列表
  105 + notice: 'game/notice/info', //公告
107 behavior: 'api/douyin/behavior', //抖音投放关键行为 106 behavior: 'api/douyin/behavior', //抖音投放关键行为
108 attribute: 'api/member/attribute/set', //修改用户属性 107 attribute: 'api/member/attribute/set', //修改用户属性
109 - wxencrypted: 'api/wx/encrypted',  
110 checkmsg: 'api/wx/checkmsg', //检测文本 108 checkmsg: 'api/wx/checkmsg', //检测文本
111 updateNickname: 'api/member/update/nickname',//更改用户昵称头像 109 updateNickname: 'api/member/update/nickname',//更改用户昵称头像
  110 + wxencrypted: 'api/wx/encrypted',
112 111
113 //订单 112 //订单
114 - orderReport: 'api/order/v2/mimas/new', //wx订单信息上报  
115 - orderQuery: 'api/order/query', //订单信息查询  
116 - preorder: 'api/order/v2/preorder', //获取支付方式  
117 - bytedanceOrderReport: 'api/order/v2/bytedance', //字节订单信息上报  
118 - qqOrderReport: 'api/order/v2/qq', //qq订单信息上报  
119 - zfbOrderReport:'api/order/v2/zfb/add', //支付宝小游戏订单上报 113 + orderReport: 'api/order/v2/mimas/new', //订单信息上报
  114 + orderQuery: 'api/order/query', //订单信息查询
  115 + preorder: 'api/order/v2/preorder', //获取支付方式
120 // 116 //
121 goodslist: 'api/v2/goodslist', //商品列表 117 goodslist: 'api/v2/goodslist', //商品列表
122 118
123 119
124 - //支付宝  
125 - AlipayIncrementGameaction: 'api/ali/action/submit' ,//玩一玩:增量游戏行为完成上报 120 + aliMission: 'api/ali/action/submit',//阿里玩一玩增量任务
  121 + alipayIntergralBuy: 'api/ali/point/pay',//支付宝会员积分购买
  122 + alipayIntergralAuth: 'api/ali/point/auth',//支付宝会员积分授权
  123 + alipayIntergralQuery: 'api/ali/point/query',//支付宝会员积分查询
  124 + isAddHomePage: 'api/ali/homepage/consult',//玩一玩小程序是否已加首咨询
126 }; 125 };
127 126
128 // 本地存储keys 127 // 本地存储keys
wxsdk/base/SDKDefault.d.ts 0 → 100644
@@ -0,0 +1,230 @@ @@ -0,0 +1,230 @@
  1 +
  2 +/** 返回参数类型 */
  3 +interface IResult<T> {
  4 + /** 错误码 */
  5 + code?: number;
  6 + /** 错误信息 */
  7 + msg?: string;
  8 + /** 返回数据 */
  9 + data?: T;
  10 + /** 服务器时间 */
  11 + servertime?: number;
  12 +}
  13 +
  14 +/** 微信api 返回用户信息 */
  15 +interface WxUserInfo {
  16 + /** 用户昵称 */
  17 + nickName: string;
  18 + /** 用户头像图片的 URL。URL 最后一个数值代表正方形头像大小
  19 + * (有 0、46、64、96、132 数值可选,0 代表 640x640 的正方形头像,46 表示 46x46 的正方形头像,
  20 + * 剩余数值以此类推。默认132),用户没有头像时该项为空。若用户更换头像,原有头像 URL 将失效。 */
  21 + avatarUrl: string;
  22 + /** 用户性别 gender的合法值(0未知,1男性,2女性) */
  23 + gender: number;
  24 + /** 用户所在国家 */
  25 + country: string;
  26 + /** 用户所在省份 */
  27 + province: string;
  28 + /** 用户所在城市 */
  29 + city: string;
  30 + /** 显示 country,province,city 所用的语言(en英文,zh_CN简体中文,zh_TW繁体中文) */
  31 + language: string;
  32 +}
  33 +
  34 +/** 显示模态对话框参数类型 */
  35 +interface ShowModalType {
  36 + /** 提示的标题 */
  37 + title: string;
  38 + /** 提示的内容 */
  39 + content: string;
  40 + /** 是否显示取消按钮 */
  41 + showCancel?: boolean;
  42 + /** 取消按钮的文字,最多 4 个字符 */
  43 + cancelText?: string;
  44 + /** 取消按钮的文字颜色,必须是 16 进制格式的颜色字符串 */
  45 + cancelColor?: string;
  46 + /** 确认按钮的文字,最多 4 个字符 */
  47 + confirmText?: string;
  48 + /** 确认按钮的文字颜色,必须是 16 进制格式的颜色字符串 */
  49 + confirmColor?: string;
  50 + /** 接口调用成功的回调函数 */
  51 + success?: (res: { confirm: boolean, cancel: boolean }) => void;
  52 + /** 接口调用失败的回调函数 */
  53 + fail?: () => void;
  54 + /** 接口调用结束的回调函数(调用成功、失败都会执行) */
  55 + complete?: () => void;
  56 +}
  57 +/**
  58 + * 排行榜数据
  59 + */
  60 +interface IRankData {
  61 + fraction: number, // 对应type传入的分数、数量或者其他
  62 + headurl: string, //头像
  63 + nickname: string,//昵称
  64 + uid: number//用户id
  65 + rankData: any //扩展参数
  66 +}
  67 +
  68 +interface _NetworkTypeSuccessObject {
  69 + networkType: string; // wifi/2g/3g/4g/unknown(Android 下不常见的网络类型)/none(无网络)
  70 +}
  71 +interface _StyleObject {
  72 + left?: number;
  73 +
  74 + top?: number;
  75 +
  76 + width?: number;
  77 +
  78 + height?: number;
  79 +}
  80 +interface _StyleGameObject {
  81 + left?: number;
  82 + top?: number;
  83 +}
  84 +
  85 +interface _BannerAdObject {
  86 + adUnitId: string;
  87 + adIntervals?: number;
  88 + style: _StyleObject;
  89 +}
  90 +interface _FeedbackButtonObject {
  91 + /**
  92 + * 按钮的类型
  93 + */
  94 + type: string;
  95 +
  96 + /**
  97 + * 按钮上的文本,仅当 type 为 text 时有效
  98 + */
  99 + text?: string;
  100 +
  101 + /**
  102 + * 按钮的背景图片,仅当 type 为 image 时有效
  103 + */
  104 + image?: string;
  105 +
  106 + /**
  107 + * 按钮的样式
  108 + */
  109 + style: _ButtonStyle;
  110 +}
  111 +
  112 +interface _UserInfoButton {
  113 + type: string;
  114 +
  115 + text: string;
  116 +
  117 + image: string;
  118 +
  119 + style: _ButtonStyle;
  120 +
  121 + show: Function;
  122 +
  123 + hide: Function;
  124 +
  125 + destroy: Function;
  126 +
  127 + onTap: (callback: Function) => void;
  128 +
  129 + offTap: (callback: Function) => void;
  130 +}
  131 +
  132 +interface _ShareAppMessageObject {
  133 + /**
  134 + * 是否使用带 shareTicket 的转发详情
  135 + */
  136 + withShareTicket?: boolean;
  137 + /**
  138 + * 发标题,不传则默认使用当前小游戏的昵称。
  139 + */
  140 + title?: string;
  141 +
  142 + /**
  143 + * 转发显示图片的链接,可以是网络图片路径或本地图片文件路径或相对代码包根目录的图片文件路径。显示图片长宽比是 5: 4
  144 + */
  145 + imageUrl?: string;
  146 +
  147 + /**
  148 + * 查询字符串,必须是 key1 = val1 & key2=val2 的格式。从这条转发消息进入后,可通过 wx.getLaunchOptionSync() 或 wx.onShow() 获取启动参数中的 query。
  149 + */
  150 + query?: string;
  151 +
  152 + /**
  153 + * 审核通过的图片 ID,详见 使用审核通过的转发图片
  154 + */
  155 + imageUrlId?: string;
  156 +
  157 + /**
  158 + * 10.10后废弃
  159 + */
  160 + success?: (ret?: any) => void;
  161 +
  162 + /**
  163 + * 接口调用失败的回调函数
  164 + */
  165 + fail?: (err?: any) => void;
  166 +
  167 + /**
  168 + * 接口调用结束的回调函数(调用成功、失败都会执行)
  169 + */
  170 + complete?: () => void;
  171 +
  172 + /**
  173 + * 接口取消的回调
  174 + */
  175 + cancel?: () => void;
  176 +}
  177 +interface _UpdateShareMenuObject {
  178 + /**
  179 + * 是否使用带 shareTicket 的转发
  180 + */
  181 + withShareTicket?: boolean;
  182 +
  183 + /**
  184 + * 接口调用成功的回调函数
  185 + */
  186 + success?: () => void;
  187 +
  188 + /**
  189 + * 接口调用失败的回调函数
  190 + */
  191 + fail?: () => void;
  192 +
  193 + /**
  194 + * 接口调用结束的回调函数(调用成功、失败都会执行)
  195 + */
  196 + complete?: () => void;
  197 +
  198 + /**
  199 + * 接口取消的回调
  200 + */
  201 + cancel?: () => void;
  202 +}
  203 +interface _getShareInfoSuccessObject {
  204 + /**
  205 + * 错误信息
  206 + */
  207 + errMsg: string;
  208 +
  209 + /**
  210 + * 包括敏感数据在内的完整转发信息的加密数据,详细见[加密数据解密算法](./signature.md#加密数据解密算法)
  211 + */
  212 + encryptedData: string;
  213 +
  214 + /**
  215 + * 加密算法的初始向量,详细见[加密数据解密算法](./signature.md#加密数据解密算法)
  216 + */
  217 + iv: string;
  218 +}
  219 +
  220 +
  221 +interface IGameList {
  222 + id: number,//唯一id
  223 + appid: string,//微信appid
  224 + path: string, //携带参数
  225 + icon: string, //游戏icon
  226 + game: string //游戏名称
  227 + adtyp: string,//类型
  228 + animation: string,//骨骼
  229 + highlight: string,//是否高亮
  230 +}
wxsdk/base/SDKDefault.ts
@@ -1,230 +0,0 @@ @@ -1,230 +0,0 @@
1 -  
2 -/** 返回参数类型 */  
3 -interface IResult<T> {  
4 - /** 错误码 */  
5 - code?: number;  
6 - /** 错误信息 */  
7 - msg?: string;  
8 - /** 返回数据 */  
9 - data?: T;  
10 - /** 服务器时间 */  
11 - servertime?: number;  
12 -}  
13 -  
14 -/** 微信api 返回用户信息 */  
15 -interface WxUserInfo {  
16 - /** 用户昵称 */  
17 - nickName: string;  
18 - /** 用户头像图片的 URL。URL 最后一个数值代表正方形头像大小  
19 - * (有 0、46、64、96、132 数值可选,0 代表 640x640 的正方形头像,46 表示 46x46 的正方形头像,  
20 - * 剩余数值以此类推。默认132),用户没有头像时该项为空。若用户更换头像,原有头像 URL 将失效。 */  
21 - avatarUrl: string;  
22 - /** 用户性别 gender的合法值(0未知,1男性,2女性) */  
23 - gender: number;  
24 - /** 用户所在国家 */  
25 - country: string;  
26 - /** 用户所在省份 */  
27 - province: string;  
28 - /** 用户所在城市 */  
29 - city: string;  
30 - /** 显示 country,province,city 所用的语言(en英文,zh_CN简体中文,zh_TW繁体中文) */  
31 - language: string;  
32 -}  
33 -  
34 -/** 显示模态对话框参数类型 */  
35 -interface ShowModalType {  
36 - /** 提示的标题 */  
37 - title: string;  
38 - /** 提示的内容 */  
39 - content: string;  
40 - /** 是否显示取消按钮 */  
41 - showCancel?: boolean;  
42 - /** 取消按钮的文字,最多 4 个字符 */  
43 - cancelText?: string;  
44 - /** 取消按钮的文字颜色,必须是 16 进制格式的颜色字符串 */  
45 - cancelColor?: string;  
46 - /** 确认按钮的文字,最多 4 个字符 */  
47 - confirmText?: string;  
48 - /** 确认按钮的文字颜色,必须是 16 进制格式的颜色字符串 */  
49 - confirmColor?: string;  
50 - /** 接口调用成功的回调函数 */  
51 - success?: (res: { confirm: boolean, cancel: boolean }) => void;  
52 - /** 接口调用失败的回调函数 */  
53 - fail?: () => void;  
54 - /** 接口调用结束的回调函数(调用成功、失败都会执行) */  
55 - complete?: () => void;  
56 -}  
57 -/**  
58 - * 排行榜数据  
59 - */  
60 -interface IRankData {  
61 - fraction: number, // 对应type传入的分数、数量或者其他  
62 - headurl: string, //头像  
63 - nickname: string,//昵称  
64 - uid: number//用户id  
65 - rankData: any //扩展参数  
66 -}  
67 -  
68 -interface _NetworkTypeSuccessObject {  
69 - networkType: string; // wifi/2g/3g/4g/unknown(Android 下不常见的网络类型)/none(无网络)  
70 -}  
71 -interface _StyleObject {  
72 - left?: number;  
73 -  
74 - top?: number;  
75 -  
76 - width?: number;  
77 -  
78 - height?: number;  
79 -}  
80 -interface _StyleGameObject {  
81 - left?: number;  
82 - top?: number;  
83 -}  
84 -  
85 -interface _BannerAdObject {  
86 - adUnitId: string;  
87 - adIntervals?: number;  
88 - style: _StyleObject;  
89 -}  
90 -interface _FeedbackButtonObject {  
91 - /**  
92 - * 按钮的类型  
93 - */  
94 - type: string;  
95 -  
96 - /**  
97 - * 按钮上的文本,仅当 type 为 text 时有效  
98 - */  
99 - text?: string;  
100 -  
101 - /**  
102 - * 按钮的背景图片,仅当 type 为 image 时有效  
103 - */  
104 - image?: string;  
105 -  
106 - /**  
107 - * 按钮的样式  
108 - */  
109 - style: _ButtonStyle;  
110 -}  
111 -  
112 -interface _UserInfoButton {  
113 - type: string;  
114 -  
115 - text: string;  
116 -  
117 - image: string;  
118 -  
119 - style: _ButtonStyle;  
120 -  
121 - show: Function;  
122 -  
123 - hide: Function;  
124 -  
125 - destroy: Function;  
126 -  
127 - onTap: (callback: Function) => void;  
128 -  
129 - offTap: (callback: Function) => void;  
130 -}  
131 -  
132 -interface _ShareAppMessageObject {  
133 - /**  
134 - * 是否使用带 shareTicket 的转发详情  
135 - */  
136 - withShareTicket?: boolean;  
137 - /**  
138 - * 发标题,不传则默认使用当前小游戏的昵称。  
139 - */  
140 - title?: string;  
141 -  
142 - /**  
143 - * 转发显示图片的链接,可以是网络图片路径或本地图片文件路径或相对代码包根目录的图片文件路径。显示图片长宽比是 5: 4  
144 - */  
145 - imageUrl?: string;  
146 -  
147 - /**  
148 - * 查询字符串,必须是 key1 = val1 & key2=val2 的格式。从这条转发消息进入后,可通过 wx.getLaunchOptionSync() 或 wx.onShow() 获取启动参数中的 query。  
149 - */  
150 - query?: string;  
151 -  
152 - /**  
153 - * 审核通过的图片 ID,详见 使用审核通过的转发图片  
154 - */  
155 - imageUrlId?: string;  
156 -  
157 - /**  
158 - * 10.10后废弃  
159 - */  
160 - success?: (ret?: any) => void;  
161 -  
162 - /**  
163 - * 接口调用失败的回调函数  
164 - */  
165 - fail?: (err?: any) => void;  
166 -  
167 - /**  
168 - * 接口调用结束的回调函数(调用成功、失败都会执行)  
169 - */  
170 - complete?: () => void;  
171 -  
172 - /**  
173 - * 接口取消的回调  
174 - */  
175 - cancel?: () => void;  
176 -}  
177 -interface _UpdateShareMenuObject {  
178 - /**  
179 - * 是否使用带 shareTicket 的转发  
180 - */  
181 - withShareTicket?: boolean;  
182 -  
183 - /**  
184 - * 接口调用成功的回调函数  
185 - */  
186 - success?: () => void;  
187 -  
188 - /**  
189 - * 接口调用失败的回调函数  
190 - */  
191 - fail?: () => void;  
192 -  
193 - /**  
194 - * 接口调用结束的回调函数(调用成功、失败都会执行)  
195 - */  
196 - complete?: () => void;  
197 -  
198 - /**  
199 - * 接口取消的回调  
200 - */  
201 - cancel?: () => void;  
202 -}  
203 -interface _getShareInfoSuccessObject {  
204 - /**  
205 - * 错误信息  
206 - */  
207 - errMsg: string;  
208 -  
209 - /**  
210 - * 包括敏感数据在内的完整转发信息的加密数据,详细见[加密数据解密算法](./signature.md#加密数据解密算法)  
211 - */  
212 - encryptedData: string;  
213 -  
214 - /**  
215 - * 加密算法的初始向量,详细见[加密数据解密算法](./signature.md#加密数据解密算法)  
216 - */  
217 - iv: string;  
218 -}  
219 -  
220 -  
221 -interface IGameList {  
222 - id: number,//唯一id  
223 - appid: string,//微信appid  
224 - path: string, //携带参数  
225 - icon: string, //游戏icon  
226 - game: string //游戏名称  
227 - adtyp: string,//类型  
228 - animation: string,//骨骼  
229 - highlight: string,//是否高亮  
230 -}  
wxsdk/base/wx.d.ts
1 1
2 declare const wx; 2 declare const wx;
3 declare const qq; 3 declare const qq;
4 -declare const my;  
5 \ No newline at end of file 4 \ No newline at end of file
  5 +declare const my;
wxsdk/douyin/DouyinInterstitial.ts
@@ -1,43 +0,0 @@ @@ -1,43 +0,0 @@
1 -import { GAMEDATA } from "../base/SDKConst";  
2 -  
3 -export default class DouyinInterstitial {  
4 - /** 插屏广告ID */  
5 - private static interstitialAdId: string = GAMEDATA.interstitialAdId;  
6 - /** 插屏广告实例 */  
7 - public static interstitialAd: any;  
8 - /** 插屏广告是否加载完成 */  
9 - private static interstitialSuccell: boolean = false;  
10 - /** 初始化插屏广告 */  
11 - public static initInterstitialAd(adUnitId: string = GAMEDATA.interstitialAdId) {  
12 - // this.interstitialAdId = adUnitId;  
13 - // this.createInterstitial();  
14 - }  
15 -  
16 - private static canReTry = false;  
17 - /** 显示插屏广告 */  
18 - public static showInterstitialAd(adUnitId: string = GAMEDATA.interstitialAdId) {  
19 - const interstitiaAd = tt.createInterstitialAd({ adUnitId: this.interstitialAdId });  
20 - this.canReTry = true;  
21 - let onLoadHandle = ()=> {  
22 - console.log("插屏广告onload成功")  
23 - interstitiaAd.show().then(() => {  
24 - console.log("插屏广告展示成功");  
25 - });  
26 - }  
27 - interstitiaAd.onLoad(onLoadHandle); //创建会自动load  
28 -  
29 - let onErrorHandle = (err)=>{  
30 - // 这里要等待一定时间后,或者等待下次需要展示的时候,参考频控,尝试一次,或者几次,不能一直尝试。  
31 - if (this.canReTry) {  
32 - this.canReTry = false;  
33 - interstitiaAd.load(); //如果需要,这里等待一定时间后,或者等待下次需要展示的时候,再次 load->onLoad-> show。  
34 - } else {  
35 - tt.showToast({  
36 - title: "暂无广告",  
37 - icon: "none",  
38 - });  
39 - }  
40 - }  
41 - interstitiaAd.onError(onErrorHandle); // 自动load 的失败会走到这里  
42 - }  
43 -}  
44 \ No newline at end of file 0 \ No newline at end of file
wxsdk/douyin/DouyinPay.ts
@@ -1,175 +0,0 @@ @@ -1,175 +0,0 @@
1 -import { GAMEDATA } from '../base/SDKConst';  
2 -import { EnvCode } from '../base/SDKEnum';  
3 -import { SDKApi } from '../http/SDKApi';  
4 -import DataService from '../service/DataService';  
5 -import WxSystem from '../wx/WxSystem';  
6 -  
7 -export default class DouyinPay {  
8 - /**  
9 - * 发起支付  
10 - */  
11 - pay(params: { payid: string, goodid: string, money: number; orderid: string }, opts: any = {}): Promise<any> {  
12 - return new Promise((resolve, reject) => {  
13 - let { Mode, OfferId, ZoneId, CurrencyType, Platform } = GAMEDATA.MidasPay;  
14 - // 环境配置,0:米大师正式环境 1:米大师沙箱环境  
15 - let env = DataService.I.EnvEnum === EnvCode.Prod ? 0 : 1;  
16 - // 平台类型,android or ios,config.js有配置走配置,否则判断系统id  
17 - let platform = DataService.I.Platform;  
18 - let pms = {  
19 - mode: Mode,  
20 - env,  
21 - platform,  
22 - offerId: OfferId,  
23 - currencyType: CurrencyType,  
24 - buyQuantity: params.money / 10,  
25 - zoneId: ZoneId  
26 - };  
27 - let extend = "";  
28 - for (let key in opts) {  
29 - extend += (`${key}=${opts[key]}&`)  
30 - }  
31 - extend = extend.substring(0, extend.length - 1);  
32 - extend = encodeURIComponent(extend);  
33 -  
34 - let payParams = {  
35 - ...this.buildParams(),  
36 - extend,  
37 - orderid: params.orderid,  
38 - // payid: params.payid,  
39 - goodid: params.goodid,  
40 - money: params.money,  
41 - platform  
42 - };  
43 - console.log("payParams", payParams);  
44 - SDKApi.bytedanceOrderReport(payParams).then(res => {  
45 - console.log("res", res);  
46 - if (!res.code) {  
47 - let { mode, env, currencyType, platform, buyQuantity, zoneId, customId, extraInfo } = res.data;  
48 - tt.requestGamePayment({  
49 - mode, // 支付类型  
50 - env, //支付环境  
51 - currencyType, // 币种:目前仅为 "CNY"  
52 - platform, // 申请接入时的平台:目前仅为"android"  
53 - buyQuantity, // 购买数量,必须满足:金币数量*金币单价 = 限定价格等级(详见金币限定等级)  
54 - zoneId,  
55 - customId,//开发者自定义唯一订单号。如不填,支付结果回调将不包含此字段,将导致游戏开发者无法发放游戏道具, 基础库版本低于1.55.0没有此字段  
56 - extraInfo,//extraInfo要转成字符串  
57 - success(res) {  
58 - // console.log("调用函数成功", res);  
59 - resolve({ code: 0, msg: '支付成功!' })  
60 - },  
61 - fail(err) {  
62 - // console.log("调用函数失败", res);  
63 - resolve({ code: err.errCode, msg: '支付失败' });  
64 - },  
65 - complete(res) {  
66 - // console.log("调用完成", res);  
67 - },  
68 - })  
69 - // tt.requestGamePayment(pms)  
70 - // .then(() => this.handlePaySuccess({ ...params, platform }, opts, resolve, reject))  
71 - // .catch(err => this.handlePayError({ ...params, platform }, opts, err, reject));  
72 - } else {  
73 - reject(res);  
74 - }  
75 - })  
76 - });  
77 - }  
78 -  
79 - private async handlePaySuccess(data: { payid: string, goodid: string, money: number; orderid: string, platform: string }, opts: any, resolve: any, reject: any, t = 1000) {  
80 - // let code = await WxApi.I.login();  
81 -  
82 - let extend = "";  
83 - for (let key in opts) {  
84 - extend += (`${key}=${opts[key]}&`)  
85 - }  
86 - extend = extend.substring(0, extend.length - 1);  
87 - extend = encodeURIComponent(extend);  
88 - let params = {  
89 - ...this.buildParams(),  
90 - extend,  
91 - midasenv: DataService.I.EnvEnum === EnvCode.Prod ? 0 : 1,  
92 - orderid: data.orderid,  
93 - payid: data.payid, goodid: data.goodid,  
94 - type: 1,  
95 - money: data.money,  
96 - platform: data.platform  
97 - };  
98 - var that = this;  
99 - SDKApi.bytedanceOrderReport(params)  
100 - .then(res => {  
101 - if (!res.code) {  
102 - resolve(res);  
103 - } else {  
104 - t = Math.min(t * 2, 60000)  
105 - // console.error("上报失败,重新上报", t)  
106 - setTimeout(() => {  
107 - that.handlePaySuccess(data, opts, resolve, reject, t)  
108 - }, t);  
109 - }  
110 - })  
111 - }  
112 -  
113 - private handlePayError(data: { payid: string, goodid: string, money: number; orderid: string, platform: string }, opts, err: any, reject: any) {  
114 - console.log("支付失败", JSON.stringify(err));  
115 - let type = 2;  
116 - if (err.errCode + '' == '1') {  
117 - type = 3;  
118 - }  
119 - let extend = "";  
120 - for (let key in opts) {  
121 - extend += (`${key}=${opts[key]}&`)  
122 - }  
123 - extend = extend.substring(0, extend.length - 1);  
124 - extend = encodeURIComponent(extend);  
125 - let params = {  
126 - ...this.buildParams(),  
127 - extend,  
128 - midasenv: DataService.I.EnvEnum === EnvCode.Prod ? 0 : 1,  
129 - orderid: data.orderid,  
130 - payid: data.payid, goodid: data.goodid,  
131 - type,  
132 - money: data.money,  
133 - platform: data.platform  
134 - };  
135 - SDKApi.bytedanceOrderReport(params)  
136 - reject(err);  
137 - }  
138 -  
139 - /**  
140 - * 构建支付公用参数  
141 - */  
142 - private buildParams() {  
143 - let gameid = GAMEDATA.game_id;  
144 - let channel = DataService.I.ChannelId;  
145 - let openid = DataService.I.OpenId;  
146 - let brand = WxSystem.I.brand;  
147 - let model = WxSystem.I.model;  
148 - let version = WxSystem.I.version;  
149 - let system = WxSystem.I.system;  
150 - let sdkversion = WxSystem.I.SDKVersion;  
151 - let scene = DataService.I.Scene + '';  
152 - let uid = DataService.I.UserId;  
153 - let token = DataService.I.Token;  
154 - let env = DataService.I.EnvEnum === 1 ? 'pre' : 'prod';  
155 - return {  
156 - gameid,  
157 - openid,  
158 - channel,  
159 - brand,  
160 - model,  
161 - version,  
162 - system,  
163 - sdkversion,  
164 - scene,  
165 - uid,  
166 - token,  
167 - env  
168 - };  
169 - }  
170 -  
171 - private static _instance: DouyinPay;  
172 - static get I(): DouyinPay {  
173 - return this._instance || (this._instance = new DouyinPay);  
174 - }  
175 -}  
176 \ No newline at end of file 0 \ No newline at end of file
wxsdk/http/SDKApi.ts
@@ -9,10 +9,13 @@ export class SDKApi { @@ -9,10 +9,13 @@ export class SDKApi {
9 9
10 //GameApi 10 //GameApi
11 public static ShareList = (...args) => SDKHttp.httpPost(DataService.I.GameApi, HostKeys.ShareList, ...args); 11 public static ShareList = (...args) => SDKHttp.httpPost(DataService.I.GameApi, HostKeys.ShareList, ...args);
  12 + public static notice = (...args) => SDKHttp.httpPost(DataService.I.GameApi, HostKeys.notice, ...args);
12 13
13 public static getConfig = (...args) => SDKHttp.httpPost(DataService.I.GameApi, HostKeys.getConfig, ...args); 14 public static getConfig = (...args) => SDKHttp.httpPost(DataService.I.GameApi, HostKeys.getConfig, ...args);
14 //订阅 15 //订阅
15 public static subscribe = (...args) => SDKHttp.httpPost(DataService.I.GameApi, HostKeys.subscribe, ...args); 16 public static subscribe = (...args) => SDKHttp.httpPost(DataService.I.GameApi, HostKeys.subscribe, ...args);
  17 + public static sendsubscribe = (...args) => SDKHttp.httpPost(DataService.I.GameApi, HostKeys.sendsubscribe, ...args);
  18 +
16 // 19 //
17 public static saveData = (...args) => SDKHttp.httpPost(DataService.I.GameApi, HostKeys.saveData, ...args); 20 public static saveData = (...args) => SDKHttp.httpPost(DataService.I.GameApi, HostKeys.saveData, ...args);
18 public static getData = (...args) => SDKHttp.httpPost(DataService.I.GameApi, HostKeys.getData, ...args); 21 public static getData = (...args) => SDKHttp.httpPost(DataService.I.GameApi, HostKeys.getData, ...args);
@@ -30,18 +33,17 @@ export class SDKApi { @@ -30,18 +33,17 @@ export class SDKApi {
30 public static behavior = (...args) => SDKHttp.httpPost(DataService.I.GameApi, HostKeys.behavior, ...args); 33 public static behavior = (...args) => SDKHttp.httpPost(DataService.I.GameApi, HostKeys.behavior, ...args);
31 //修改用户属性 34 //修改用户属性
32 public static attribute = (...args) => SDKHttp.httpPost(DataService.I.GameApi, HostKeys.attribute, ...args); 35 public static attribute = (...args) => SDKHttp.httpPost(DataService.I.GameApi, HostKeys.attribute, ...args);
33 - // 解密关系链互动数据  
34 - public static wxencrypted = (...args) => SDKHttp.httpPost(DataService.I.GameApi, HostKeys.wxencrypted, ...args);  
35 // 文本检测 36 // 文本检测
36 public static checkmsg = (...args) => SDKHttp.httpPost(DataService.I.GameApi, HostKeys.checkmsg, ...args); 37 public static checkmsg = (...args) => SDKHttp.httpPost(DataService.I.GameApi, HostKeys.checkmsg, ...args);
37 - //  
38 - public static updateNickname = (...args) => SDKHttp.httpPost(DataService.I.GameApi, HostKeys.updateNickname, ...args);  
39 //LoginApi 38 //LoginApi
40 public static Login = (...args) => SDKHttp.httpPost(DataService.I.LoginApi, HostKeys.Login, ...args); 39 public static Login = (...args) => SDKHttp.httpPost(DataService.I.LoginApi, HostKeys.Login, ...args);
41 40
42 public static reftoken = (...args) => SDKHttp.httpPost(DataService.I.LoginApi, HostKeys.Reftoken, ...args); 41 public static reftoken = (...args) => SDKHttp.httpPost(DataService.I.LoginApi, HostKeys.Reftoken, ...args);
43 42
44 public static weakLogin = (...args) => SDKHttp.httpPost(DataService.I.LoginApi, HostKeys.weakLogin, ...args); 43 public static weakLogin = (...args) => SDKHttp.httpPost(DataService.I.LoginApi, HostKeys.weakLogin, ...args);
  44 + public static updateNickname = (...args) => SDKHttp.httpPost(DataService.I.GameApi, HostKeys.updateNickname, ...args);
  45 + // 解密关系链互动数据
  46 + public static wxencrypted = (...args) => SDKHttp.httpPost(DataService.I.GameApi, HostKeys.wxencrypted, ...args);
45 47
46 48
47 //DotApi 49 //DotApi
@@ -72,28 +74,31 @@ export class SDKApi { @@ -72,28 +74,31 @@ export class SDKApi {
72 public static client_log = (...args) => SDKHttp.httpGet(DataService.I.DotApi, HostKeys.client_log, ...args); 74 public static client_log = (...args) => SDKHttp.httpGet(DataService.I.DotApi, HostKeys.client_log, ...args);
73 75
74 public static consume = (...args) => SDKHttp.httpGet(DataService.I.DotApi, HostKeys.consume, ...args); 76 public static consume = (...args) => SDKHttp.httpGet(DataService.I.DotApi, HostKeys.consume, ...args);
75 - 77 +
76 public static daystay = (...args) => SDKHttp.httpGet(DataService.I.DotApi, HostKeys.daystay, ...args); 78 public static daystay = (...args) => SDKHttp.httpGet(DataService.I.DotApi, HostKeys.daystay, ...args);
77 -  
78 - public static loading = (...args) => SDKHttp.httpGet(DataService.I.DotApi, HostKeys.loading, ...args);  
79 79
80 80
81 // OrderApi 81 // OrderApi
82 public static pay = (...args) => SDKHttp.httpPost(DataService.I.OrderApi, HostKeys.orderReport, ...args); 82 public static pay = (...args) => SDKHttp.httpPost(DataService.I.OrderApi, HostKeys.orderReport, ...args);
83 - public static bytedanceOrderReport = (...args) => SDKHttp.httpPost(DataService.I.OrderApi, HostKeys.bytedanceOrderReport, ...args);  
84 - public static qqOrderReport = (...args) => SDKHttp.httpPost(DataService.I.OrderApi, HostKeys.qqOrderReport, ...args);  
85 public static orderQuery = (...args) => SDKHttp.httpPost(DataService.I.OrderApi, HostKeys.orderQuery, ...args); 83 public static orderQuery = (...args) => SDKHttp.httpPost(DataService.I.OrderApi, HostKeys.orderQuery, ...args);
86 public static preorder = (...args) => SDKHttp.httpPost(DataService.I.OrderApi, HostKeys.preorder, ...args); 84 public static preorder = (...args) => SDKHttp.httpPost(DataService.I.OrderApi, HostKeys.preorder, ...args);
87 - public static zfbOrderReport = (...args) => SDKHttp.httpPost(DataService.I.OrderApi, HostKeys.zfbOrderReport, ...args);  
88 - 85 +
89 public static goodslist = (...args) => SDKHttp.httpPost(DataService.I.OrderApi, HostKeys.goodslist, ...args); 86 public static goodslist = (...args) => SDKHttp.httpPost(DataService.I.OrderApi, HostKeys.goodslist, ...args);
90 87
91 88
92 - //支付宝  
93 - /**  
94 - * 玩一玩增量行为  
95 - * @param args  
96 - * @returns  
97 - */  
98 - public static incrementGameaction = (...args) => SDKHttp.httpPost(DataService.I.GameApi, HostKeys.AlipayIncrementGameaction, ...args); 89 +
  90 + //阿里增量任务
  91 + public static aliMission = (...args) => SDKHttp.httpPost(DataService.I.GameApi, HostKeys.aliMission, ...args);
  92 +
  93 + //支付宝会员授权查询
  94 + public static alipayIntergralAuth = (...args) => SDKHttp.httpPost(DataService.I.GameApi, HostKeys.alipayIntergralAuth, ...args);
  95 +
  96 + //支付宝积分查询
  97 + public static alipayIntergralQuery = (...args) => SDKHttp.httpPost(DataService.I.GameApi, HostKeys.alipayIntergralQuery, ...args);
  98 + //支付宝积分购买
  99 + public static alipayIntergralBuy = (...args) => SDKHttp.httpPost(DataService.I.GameApi, HostKeys.alipayIntergralBuy, ...args);
  100 +
  101 +
  102 + //玩一玩小程序是否已加首咨询
  103 + public static isAddHomePage = (...args) => SDKHttp.httpPost(DataService.I.GameApi, HostKeys.isAddHomePage, ...args);
99 } 104 }
wxsdk/http/SDKHttp.ts
@@ -21,7 +21,7 @@ export default class SDKHttp { @@ -21,7 +21,7 @@ export default class SDKHttp {
21 if (data && typeof data === "object") { 21 if (data && typeof data === "object") {
22 data = JSON.stringify(data); 22 data = JSON.stringify(data);
23 } 23 }
24 - // console.error("sign", url, JSON.stringify(data)) 24 + console.error("sign"+ url+JSON.stringify(data))
25 data = data || ""; 25 data = data || "";
26 if (method == "GET" && data != "") { 26 if (method == "GET" && data != "") {
27 data = JSON.parse(data); 27 data = JSON.parse(data);
@@ -38,7 +38,7 @@ export default class SDKHttp { @@ -38,7 +38,7 @@ export default class SDKHttp {
38 if (xhr.readyState == 4) { 38 if (xhr.readyState == 4) {
39 if (xhr.status >= 200 && xhr.status < 400) { 39 if (xhr.status >= 200 && xhr.status < 400) {
40 let responseText: any = xhr.responseText; 40 let responseText: any = xhr.responseText;
41 - // cc.log("responseText", responseText) 41 + cc.log("responseText"+ responseText)
42 try { 42 try {
43 responseText = JSON.parse(responseText); 43 responseText = JSON.parse(responseText);
44 // cc.log("responseText22", responseText) 44 // cc.log("responseText22", responseText)
@@ -54,31 +54,39 @@ export default class SDKHttp { @@ -54,31 +54,39 @@ export default class SDKHttp {
54 return; 54 return;
55 } 55 }
56 } else { 56 } else {
57 - console.error(xhr.status, '网络请求失败!');  
58 - resolve({ code: -2 }); 57 + // console.error(xhr.status, '网络请求失败!');
  58 + resolve({ code: -5 });
59 } 59 }
60 } 60 }
61 }; 61 };
62 62
63 xhr.ontimeout = function (info): void { 63 xhr.ontimeout = function (info): void {
64 // cc.error("info1", info) 64 // cc.error("info1", info)
65 - resolve({ msg: `请求超时!`, code: -3 }); 65 + resolve({ msg: `请求超时!`, code: -2 });
66 } 66 }
67 xhr.onerror = function (info): void { 67 xhr.onerror = function (info): void {
68 // cc.error("info2", info) 68 // cc.error("info2", info)
69 - resolve({ msg: `请求失败!`, code: -4 }); 69 + resolve({ msg: `请求失败!`, code: -3 });
70 } 70 }
71 xhr.onabort = function (info): void { 71 xhr.onabort = function (info): void {
72 // cc.error("info3", info) 72 // cc.error("info3", info)
73 - resolve({ msg: `请求失败!`, code: -5 }); 73 + resolve({ msg: `请求失败!`, code: -4 });
74 } 74 }
75 75
76 xhr.open(method, url, true); 76 xhr.open(method, url, true);
77 77
78 if (method == "POST") { 78 if (method == "POST") {
79 xhr.setRequestHeader("Content-Type", "application/json;charset=utf-8")//application/x-www-form-urlencoded 79 xhr.setRequestHeader("Content-Type", "application/json;charset=utf-8")//application/x-www-form-urlencoded
  80 + // if (cc.sys.os === 'Android') {
  81 + // cc.error("http__uid", AppSdkData.I.uid);
  82 + // xhr.setRequestHeader('Uuid', `${AppSdkData.I.uid}`);
  83 + // } else {
  84 + // xhr.setRequestHeader('Uuid', `909`);
  85 + // }
  86 +
80 } 87 }
81 - xhr.timeout = 10000; 88 + xhr.timeout = 3000;
  89 + // console.log(data)
82 xhr.send(data); 90 xhr.send(data);
83 }); 91 });
84 } 92 }
wxsdk/platform/wx/WxStorage.ts.meta
1 { 1 {
2 - "ver": "4.0.23",  
3 - "importer": "typescript",  
4 - "imported": true, 2 + "ver": "1.0.8",
5 "uuid": "6013014c-7aa3-4eb4-b818-583d937a9f05", 3 "uuid": "6013014c-7aa3-4eb4-b818-583d937a9f05",
6 - "files": [],  
7 - "subMetas": {},  
8 - "userData": {}  
9 -} 4 + "isPlugin": false,
  5 + "loadPluginInWeb": true,
  6 + "loadPluginInNative": true,
  7 + "loadPluginInEditor": false,
  8 + "subMetas": {}
  9 +}
10 \ No newline at end of file 10 \ No newline at end of file
wxsdk/qq/QQPay.ts
@@ -1,165 +0,0 @@ @@ -1,165 +0,0 @@
1 -import { GAMEDATA } from '../base/SDKConst';  
2 -import { EnvCode } from '../base/SDKEnum';  
3 -import { SDKApi } from '../http/SDKApi';  
4 -import DataService from '../service/DataService';  
5 -import WxSystem from '../wx/WxSystem';  
6 -  
7 -export default class QQPay {  
8 - /**  
9 - * 发起支付  
10 - */  
11 - pay(params: { payid: string, goodid: string, money: number; orderid: string }, opts: any = {}): Promise<any> {  
12 - return new Promise((resolve, reject) => {  
13 - let { Mode, OfferId, ZoneId, CurrencyType, Platform } = GAMEDATA.MidasPay;  
14 - // 环境配置,0:米大师正式环境 1:米大师沙箱环境  
15 - let env = DataService.I.EnvEnum === EnvCode.Prod ? 0 : 1;  
16 - // 平台类型,android or ios,config.js有配置走配置,否则判断系统id  
17 - let platform = DataService.I.Platform;  
18 - let pms = {  
19 - mode: Mode,  
20 - env,  
21 - platform,  
22 - offerId: OfferId,  
23 - currencyType: CurrencyType,  
24 - buyQuantity: params.money / 10,  
25 - zoneId: ZoneId  
26 - };  
27 - let extend = "";  
28 - for (let key in opts) {  
29 - extend += (`${key}=${opts[key]}&`)  
30 - }  
31 - extend = extend.substring(0, extend.length - 1);  
32 - extend = encodeURIComponent(extend);  
33 -  
34 - let payParams = {  
35 - ...this.buildParams(),  
36 - extend,  
37 - orderid: params.orderid,  
38 - // payid: params.payid,  
39 - goodid: params.goodid,  
40 - money: params.money,  
41 - platform  
42 - };  
43 - console.log("payParams", payParams);  
44 - SDKApi.qqOrderReport(payParams).then(res => {  
45 - console.log("res", res);  
46 - if (!res.code) {  
47 - let { prepayId,starCurrency,setEnv } = res.data;  
48 - qq.requestMidasPayment({  
49 - prepayId,  
50 - starCurrency,  
51 - setEnv,  
52 - success(res) {  
53 - // console.log("调用函数成功", res);  
54 - resolve({ code: 0, msg: '支付成功!' })  
55 - },  
56 - fail(err) {  
57 - // console.log("调用函数失败", res);  
58 - resolve({ code: err.errCode, msg: '支付失败' });  
59 - },  
60 - complete(res) {  
61 - console.log("调用完成", res);  
62 - },  
63 - })  
64 - } else {  
65 - reject(res);  
66 - }  
67 - })  
68 - });  
69 - }  
70 -  
71 - private async handlePaySuccess(data: { payid: string, goodid: string, money: number; orderid: string, platform: string }, opts: any, resolve: any, reject: any, t = 1000) {  
72 - let extend = "";  
73 - for (let key in opts) {  
74 - extend += (`${key}=${opts[key]}&`)  
75 - }  
76 - extend = extend.substring(0, extend.length - 1);  
77 - extend = encodeURIComponent(extend);  
78 - let params = {  
79 - ...this.buildParams(),  
80 - extend,  
81 - midasenv: DataService.I.EnvEnum === EnvCode.Prod ? 0 : 1,  
82 - orderid: data.orderid,  
83 - payid: data.payid, goodid: data.goodid,  
84 - type: 1,  
85 - money: data.money,  
86 - platform: data.platform  
87 - };  
88 - var that = this;  
89 - SDKApi.qqOrderReport(params)  
90 - .then(res => {  
91 - if (!res.code) {  
92 - resolve(res);  
93 - } else {  
94 - t = Math.min(t * 2, 60000)  
95 - // console.error("上报失败,重新上报", t)  
96 - setTimeout(() => {  
97 - that.handlePaySuccess(data, opts, resolve, reject, t)  
98 - }, t);  
99 - }  
100 - })  
101 - }  
102 -  
103 - private handlePayError(data: { payid: string, goodid: string, money: number; orderid: string, platform: string }, opts, err: any, reject: any) {  
104 - console.log("支付失败", JSON.stringify(err));  
105 - let type = 2;  
106 - if (err.errCode + '' == '1') {  
107 - type = 3;  
108 - }  
109 - let extend = "";  
110 - for (let key in opts) {  
111 - extend += (`${key}=${opts[key]}&`)  
112 - }  
113 - extend = extend.substring(0, extend.length - 1);  
114 - extend = encodeURIComponent(extend);  
115 - let params = {  
116 - ...this.buildParams(),  
117 - extend,  
118 - midasenv: DataService.I.EnvEnum === EnvCode.Prod ? 0 : 1,  
119 - orderid: data.orderid,  
120 - payid: data.payid, goodid: data.goodid,  
121 - type,  
122 - money: data.money,  
123 - platform: data.platform  
124 - };  
125 - SDKApi.qqOrderReport(params)  
126 - reject(err);  
127 - }  
128 -  
129 - /**  
130 - * 构建支付公用参数  
131 - */  
132 - private buildParams() {  
133 - let gameid = GAMEDATA.game_id;  
134 - let channel = DataService.I.ChannelId;  
135 - let openid = DataService.I.OpenId;  
136 - let brand = WxSystem.I.brand;  
137 - let model = WxSystem.I.model;  
138 - let version = WxSystem.I.version;  
139 - let system = WxSystem.I.system;  
140 - let sdkversion = WxSystem.I.SDKVersion;  
141 - let scene = DataService.I.Scene + '';  
142 - let uid = DataService.I.UserId;  
143 - let token = DataService.I.Token;  
144 - let env = DataService.I.EnvEnum === 1 ? 'pre' : 'prod';  
145 - return {  
146 - gameid,  
147 - openid,  
148 - channel,  
149 - brand,  
150 - model,  
151 - version,  
152 - system,  
153 - sdkversion,  
154 - scene,  
155 - uid,  
156 - token,  
157 - env  
158 - };  
159 - }  
160 -  
161 - private static _instance: QQPay;  
162 - static get I(): QQPay {  
163 - return this._instance || (this._instance = new QQPay);  
164 - }  
165 -}  
166 \ No newline at end of file 0 \ No newline at end of file
wxsdk/service/AdService.ts
@@ -4,8 +4,9 @@ import WxCustom from &quot;../wx/WxCustom&quot;; @@ -4,8 +4,9 @@ import WxCustom from &quot;../wx/WxCustom&quot;;
4 import WxInterstitial from "../wx/WxInterstitial"; 4 import WxInterstitial from "../wx/WxInterstitial";
5 import { GAMEDATA } from "../base/SDKConst"; 5 import { GAMEDATA } from "../base/SDKConst";
6 import LogService from "./LogService"; 6 import LogService from "./LogService";
7 -import DouyinInterstitial from "../douyin/DouyinInterstitial";  
8 -import { sys } from "cc"; 7 +import AlipayInterstitial from "../alipay/AlipayInterstitial";
  8 +import AlipayApi from "../alipay/AlipayApi";
  9 +import AlipayBanner from "../alipay/AlipayBanner";
9 10
10 11
11 12
@@ -17,37 +18,80 @@ export default class AdService { @@ -17,37 +18,80 @@ export default class AdService {
17 * @param adUnitId 18 * @param adUnitId
18 * @param opts 19 * @param opts
19 */ 20 */
20 - createBanner(adUnitId: string, opts?: { type?: number; bannerWidth?: number, offsetY?: number; adIntervals?: number, isOff?: boolean,isCreate?:boolean }) {  
21 - return WxBanner.I.create(adUnitId, opts); 21 + createBanner(adUnitId: string, opts?: { type?: number; bannerWidth?: number, offsetY?: number; adIntervals?: number, isOff?: boolean }) {
  22 +
  23 + if (cc.sys.platform === cc.sys.BYTEDANCE_GAME) {
  24 + return null
  25 + } else if (cc.sys.platform === cc.sys.ALIPAY_GAME) {
  26 + return AlipayBanner.I.create(adUnitId)
  27 + } else if (cc.sys.platform === cc.sys.WECHAT_GAME) {
  28 + return WxBanner.I.create(adUnitId, opts);
  29 + }
22 } 30 }
23 /** 31 /**
24 * banner 显示 ps:创建默认显示 32 * banner 显示 ps:创建默认显示
25 */ 33 */
26 showBanner() { 34 showBanner() {
27 - WxBanner.I.show() 35 + if (cc.sys.platform === cc.sys.BYTEDANCE_GAME) {
  36 +
  37 + } else if (cc.sys.platform === cc.sys.ALIPAY_GAME) {
  38 + AlipayBanner.I.show();
  39 + } else if (cc.sys.platform === cc.sys.WECHAT_GAME) {
  40 + WxBanner.I.show();
  41 + }
  42 +
28 } 43 }
29 /** 44 /**
30 * banner 隐藏 45 * banner 隐藏
31 */ 46 */
32 hideBanner() { 47 hideBanner() {
33 - WxBanner.I.hide(); 48 + if (cc.sys.platform === cc.sys.BYTEDANCE_GAME) {
  49 +
  50 + } else if (cc.sys.platform === cc.sys.ALIPAY_GAME) {
  51 + AlipayBanner.I.hide();
  52 + } else if (cc.sys.platform === cc.sys.WECHAT_GAME) {
  53 + WxBanner.I.hide();
  54 + }
34 } 55 }
35 /** 56 /**
36 * banner 销毁 57 * banner 销毁
37 */ 58 */
38 destoryBanner() { 59 destoryBanner() {
39 - WxBanner.I.destory(); 60 +
  61 + if (cc.sys.platform === cc.sys.BYTEDANCE_GAME) {
  62 +
  63 + } else if (cc.sys.platform === cc.sys.ALIPAY_GAME) {
  64 + AlipayBanner.I.destory();
  65 + } else if (cc.sys.platform === cc.sys.WECHAT_GAME) {
  66 + WxBanner.I.destory();
  67 + }
40 } 68 }
41 69
42 - 70 + /**
  71 + * 初始化插屏
  72 + * @param adUnitId
  73 + */
  74 + initInterstitialAd(adUnitId?: string) {
  75 + if (cc.sys.platform === cc.sys.BYTEDANCE_GAME) {
  76 + // return DouyinInterstitial.initInterstitialAd(adUnitId);
  77 + } else if (cc.sys.platform === cc.sys.ALIPAY_GAME) {
  78 + AlipayInterstitial.initInterstitialAd(adUnitId)
  79 + } else if (cc.sys.platform === cc.sys.WECHAT_GAME) {
  80 + return WxInterstitial.initInterstitialAd(adUnitId)
  81 + }
  82 + }
43 /** 83 /**
44 * 插屏 84 * 插屏
45 * @param adUnitId 85 * @param adUnitId
46 */ 86 */
47 createInterstitialAd(adUnitId: string) { 87 createInterstitialAd(adUnitId: string) {
48 - if (sys.platform === sys.Platform.BYTEDANCE_MINI_GAME) {  
49 - return DouyinInterstitial.showInterstitialAd(adUnitId);  
50 - } else { 88 + console.log('~~~~~~~~~~~插屏');
  89 + // return WxInterstitial.showInterstitialAd(adUnitId)
  90 + if (cc.sys.platform === cc.sys.BYTEDANCE_GAME) {
  91 + // return DouyinInterstitial.initInterstitialAd(adUnitId);
  92 + } else if (cc.sys.platform === cc.sys.ALIPAY_GAME) {
  93 + AlipayInterstitial.showInterstitialAd(adUnitId)
  94 + } else if (cc.sys.platform === cc.sys.WECHAT_GAME) {
51 return WxInterstitial.showInterstitialAd(adUnitId) 95 return WxInterstitial.showInterstitialAd(adUnitId)
52 } 96 }
53 } 97 }
@@ -86,7 +130,13 @@ export default class AdService { @@ -86,7 +130,13 @@ export default class AdService {
86 let { id, appid, path, game } = data; 130 let { id, appid, path, game } = data;
87 LogService.I.jumps(id, type); 131 LogService.I.jumps(id, type);
88 if (!path) path = `?channel_id=${GAMEDATA.channel_id}`; 132 if (!path) path = `?channel_id=${GAMEDATA.channel_id}`;
89 - return WxApi.I.navigateToMiniProgram(appid, path, opts) 133 + if (cc.sys.platform === cc.sys.BYTEDANCE_GAME) {
  134 + } else if (cc.sys.platform === cc.sys.ALIPAY_GAME) {
  135 + return AlipayApi.I.navigateToMiniProgram(appid, path, opts)
  136 + } else if (cc.sys.platform === cc.sys.WECHAT_GAME) {
  137 + return WxApi.I.navigateToMiniProgram(appid, path, opts)
  138 + }
  139 +
90 } 140 }
91 141
92 142
wxsdk/service/DataService.ts
@@ -16,25 +16,13 @@ export default class DataService { @@ -16,25 +16,13 @@ export default class DataService {
16 this._data = new SdkData; 16 this._data = new SdkData;
17 // 0点数据变动 17 // 0点数据变动
18 let expiration = +((this.nextDay() - Date.now()) / 1000).toFixed(0); 18 let expiration = +((this.nextDay() - Date.now()) / 1000).toFixed(0);
19 - setTimeout(this.resetData.bind(this), expiration * 1000);  
20 - if (typeof wx != 'undefined' || typeof my != 'undefined') {  
21 - wx.onShow(this.onShow.bind(this));  
22 - wx.onHide(this.onHide.bind(this));  
23 - }  
24 - } 19 + setTimeout(this.resetData, expiration * 1000);
25 20
26 - onShow() {  
27 - // console.log("dataOnshow");  
28 - this.updateTodayOnlineTime();  
29 - }  
30 - onHide() {  
31 - // console.log("dataOnhide");  
32 - clearInterval(this.timeInterval);  
33 } 21 }
34 22
35 - private resetData() { 23 + private resetData(){
36 this.setPtm(0);//更新当天是否300s 24 this.setPtm(0);//更新当天是否300s
37 - this.setLogindays(this.logindays + 1);// 更新登录天数 25 + this.setLogindays(this.logindays+1);// 更新登录天数
38 this.setIsnew(0);//更新新老用户 26 this.setIsnew(0);//更新新老用户
39 } 27 }
40 28
@@ -49,6 +37,7 @@ export default class DataService { @@ -49,6 +37,7 @@ export default class DataService {
49 }; 37 };
50 } 38 }
51 39
  40 +
52 get Data(): SdkData { 41 get Data(): SdkData {
53 return this._data; 42 return this._data;
54 } 43 }
@@ -527,13 +516,6 @@ export default class DataService { @@ -527,13 +516,6 @@ export default class DataService {
527 return this; 516 return this;
528 } 517 }
529 518
530 - // public addOnlineTime(t) {  
531 - // let expiration = +((this.nextDay() - Date.now()) / 1000).toFixed(0);  
532 - // let time = StorageUtils.I.get("pcsdk_today_online_time") || 0;  
533 - // time += t;  
534 - // StorageUtils.I.set("pcsdk_today_online_time", time, expiration)  
535 - // }  
536 -  
537 private timeInterval 519 private timeInterval
538 public updateTodayOnlineTime() { 520 public updateTodayOnlineTime() {
539 let dot = StorageUtils.I.get("pcsdk_today_online_time_300") || 0; 521 let dot = StorageUtils.I.get("pcsdk_today_online_time_300") || 0;
@@ -547,16 +529,14 @@ export default class DataService { @@ -547,16 +529,14 @@ export default class DataService {
547 return; 529 return;
548 } else { 530 } else {
549 this.setPtm(0) 531 this.setPtm(0)
550 - this.timeInterval = setInterval(this.stayFun.bind(this), 1000); 532 + this.timeInterval = setInterval(this.stayFun.bind(this), 5000);
551 } 533 }
552 } 534 }
553 -  
554 -  
555 private stayFun() { 535 private stayFun() {
556 let expiration = +((this.nextDay() - Date.now()) / 1000).toFixed(0); 536 let expiration = +((this.nextDay() - Date.now()) / 1000).toFixed(0);
557 let time = StorageUtils.I.get("pcsdk_today_online_time") || 0; 537 let time = StorageUtils.I.get("pcsdk_today_online_time") || 0;
558 - time += 1;  
559 - StorageUtils.I.set("pcsdk_today_online_time", time, expiration); 538 + time += 5;
  539 + StorageUtils.I.set("pcsdk_today_online_time", time, expiration)
560 let dot = StorageUtils.I.get("pcsdk_today_online_time_300") || 0; 540 let dot = StorageUtils.I.get("pcsdk_today_online_time_300") || 0;
561 if (dot === 1) { 541 if (dot === 1) {
562 this.setPtm(1) 542 this.setPtm(1)
@@ -567,7 +547,7 @@ export default class DataService { @@ -567,7 +547,7 @@ export default class DataService {
567 }, expiration * 1000); 547 }, expiration * 1000);
568 return; 548 return;
569 } 549 }
570 - // console.log("newUserTime", time, dot) 550 + // console.log("newUserTime", newUserTime, newUserDot)
571 if (time >= 300 && dot == 0) { 551 if (time >= 300 && dot == 0) {
572 StorageUtils.I.set("pcsdk_today_online_time_300", 1, expiration); 552 StorageUtils.I.set("pcsdk_today_online_time_300", 1, expiration);
573 this.setPtm(1) 553 this.setPtm(1)
wxsdk/service/GameService.ts
1 -import { sys } from "cc";  
2 -import { GAMEDATA, SDKVersion, __LOG__ } from "../base/SDKConst";  
3 -import DouyinPay from "../douyin/DouyinPay"; 1 +import DataService from "./DataService";
4 import { SDKApi } from "../http/SDKApi"; 2 import { SDKApi } from "../http/SDKApi";
5 -import QQPay from "../qq/QQPay";  
6 -import WxApi from "../wx/WxApi"; 3 +import { GAMEDATA, SDKVersion, __LOG__ } from "../base/SDKConst";
7 import WxLogin from "../wx/WxLogin"; 4 import WxLogin from "../wx/WxLogin";
  5 +import WxApi from "../wx/WxApi";
8 import WxPay from "../wx/WxPay"; 6 import WxPay from "../wx/WxPay";
9 import WxSystem from "../wx/WxSystem"; 7 import WxSystem from "../wx/WxSystem";
10 -import DataService from "./DataService";  
11 -import ZfbPay from "../alipay/zfbPay";  
12 8
13 9
14 export default class GameService { 10 export default class GameService {
@@ -39,6 +35,7 @@ export default class GameService { @@ -39,6 +35,7 @@ export default class GameService {
39 return WxLogin.I.login(isAuthorize); 35 return WxLogin.I.login(isAuthorize);
40 } 36 }
41 37
  38 +
42 saveData(key: string, content: string) { 39 saveData(key: string, content: string) {
43 return SDKApi.saveData({ key, content, uid: DataService.I.UserId, token: DataService.I.Token }); 40 return SDKApi.saveData({ key, content, uid: DataService.I.UserId, token: DataService.I.Token });
44 } 41 }
@@ -65,12 +62,38 @@ export default class GameService { @@ -65,12 +62,38 @@ export default class GameService {
65 adList(adtyp) { 62 adList(adtyp) {
66 return SDKApi.adList({ adtyp, uid: DataService.I.UserId, token: DataService.I.Token }) 63 return SDKApi.adList({ adtyp, uid: DataService.I.UserId, token: DataService.I.Token })
67 } 64 }
68 -  
69 - wxencrypted(iv, encryptedData) {  
70 - return SDKApi.wxencrypted({ iv, encryptedData, openid: DataService.I.OpenId, token: DataService.I.Token, uid: DataService.I.UserId }) 65 + getGameNotice() {
  66 + return SDKApi.notice();
71 } 67 }
72 68
73 69
  70 + // subScribe(tmplIds: Array<string>, ids: Array<string>): Promise<any> {
  71 + // return new Promise((resolve, reject) => {
  72 + // WxApi.I.subscribeMessage(tmplIds)
  73 + // .then((ret: any) => {
  74 + // ret = ret || {};
  75 + // let acceptKeys = tmplIds.filter((idKey: string) => ret[idKey] && ret[idKey] === 'accept');
  76 + // if (!acceptKeys.length) {
  77 + // reject({ errCode: 0, errMsg: '点击取消订阅' });
  78 + // } else {
  79 + // let uid = +DataService.I.UserId;
  80 + // let token = DataService.I.Token + '';
  81 + // let openid = DataService.I.OpenId + '';
  82 + // let id = ids//JSON.stringify()
  83 + // SDKApi.subscribe({
  84 + // uid,
  85 + // token,
  86 + // openid,
  87 + // status: 1,
  88 + // id,
  89 + // })
  90 + // resolve({ code: 0, msg: '订阅成功!' })
  91 + // }
  92 +
  93 + // })
  94 + // .catch(err => reject(err));
  95 + // });
  96 + // }
74 subScribe(tmplIds: Array<string>, success: Function, fail: Function): Promise<any> { 97 subScribe(tmplIds: Array<string>, success: Function, fail: Function): Promise<any> {
75 return new Promise((resolve, reject) => { 98 return new Promise((resolve, reject) => {
76 WxApi.I.subscribeMessage(tmplIds) 99 WxApi.I.subscribeMessage(tmplIds)
@@ -79,15 +102,55 @@ export default class GameService { @@ -79,15 +102,55 @@ export default class GameService {
79 let acceptKeys = tmplIds.filter((idKey: string) => ret[idKey] && ret[idKey] === 'accept'); 102 let acceptKeys = tmplIds.filter((idKey: string) => ret[idKey] && ret[idKey] === 'accept');
80 if (!acceptKeys.length) { 103 if (!acceptKeys.length) {
81 fail() 104 fail()
82 - resolve({ errCode: 0, errMsg: '点击取消订阅' }); 105 + reject({ errCode: 0, errMsg: '点击取消订阅' });
  106 +
83 } else { 107 } else {
  108 + // let uid = +DataService.I.UserId;
  109 + // let token = DataService.I.Token + '';
  110 + // let openid = DataService.I.OpenId + '';
  111 + // UserManager.I.issubscribe = true;
84 success(acceptKeys) 112 success(acceptKeys)
85 console.log('订阅成功', ret, acceptKeys) 113 console.log('订阅成功', ret, acceptKeys)
  114 + // SDKApi.subscribe({
  115 + // uid,
  116 + // token,
  117 + // openid,
  118 + // status: 1,
  119 + // message: encodeURI(message),
  120 + // sendtime: sendtime,
  121 + // time: time,
  122 + // })
86 resolve(ret); 123 resolve(ret);
87 } 124 }
  125 + // GameService.I.subScribe(acceptKeys)
  126 + // .then(() => {
  127 + // resolve(ret);
  128 + // DebugUtils.I.dynamic('====> PCSDK subScribe订阅消息成功', ret);
  129 + // })
  130 + // .catch((err) => reject(err || { errCode: 0, errMsg: 'GameApi subScribe请求错误' }));
  131 +
88 }) 132 })
89 - .catch(err => resolve(err)); 133 + .catch(err => reject(err));
90 }); 134 });
  135 + // return WxApi.I.subscribeMessage(template_ids);
  136 + }
  137 +
  138 + async sendSubScribe(tmplIds: Array<string>, message: string, sendtime: number, time: number = 0) {
  139 + let uid = +DataService.I.UserId;
  140 + let token = DataService.I.Token + '';
  141 + let openid = DataService.I.OpenId + '';
  142 +
  143 + let back = await SDKApi.sendsubscribe({
  144 + uid,
  145 + token,
  146 + openid,
  147 + status: 1,
  148 + message: encodeURIComponent(message),
  149 + sendtime: Math.floor(sendtime),
  150 + time: time,
  151 + temid: tmplIds[0]
  152 + })
  153 + return back;
91 } 154 }
92 155
93 /** 156 /**
@@ -97,18 +160,7 @@ export default class GameService { @@ -97,18 +160,7 @@ export default class GameService {
97 * @returns 160 * @returns
98 */ 161 */
99 pay(params: { payid: string, goodid: string, money: number; orderid: string }, opts: any = {}) { 162 pay(params: { payid: string, goodid: string, money: number; orderid: string }, opts: any = {}) {
100 - if (sys.platform === sys.Platform.BYTEDANCE_MINI_GAME) {  
101 - return DouyinPay.I.pay(params, opts);  
102 - } else {  
103 - if (typeof my != 'undefined') {  
104 - return ZfbPay.I.pay(params, opts);  
105 - } else if (typeof qq != 'undefined') {  
106 - console.log("QQ支付")  
107 - return QQPay.I.pay(params, opts);  
108 - } else {  
109 - return WxPay.I.pay(params, opts);  
110 - }  
111 - } 163 + return WxPay.I.pay(params, opts);
112 } 164 }
113 /** 165 /**
114 * 订单查询 166 * 订单查询
@@ -136,38 +188,6 @@ export default class GameService { @@ -136,38 +188,6 @@ export default class GameService {
136 return SDKApi.goodslist(); 188 return SDKApi.goodslist();
137 } 189 }
138 190
139 -  
140 - /**  
141 - * 文本检测  
142 - */  
143 - checkmsg(scene: number, content: string, nickname?: string, title?: string, signature?: string) {  
144 - let gameid = GAMEDATA.game_id;  
145 - let uid = DataService.I.UserId;  
146 - let token = DataService.I.Token;  
147 - let openid = DataService.I.OpenId;  
148 - return SDKApi.checkmsg({  
149 - gameid,  
150 - uid,  
151 - token,  
152 - openid,  
153 - scene, content, nickname, title, signature  
154 - })  
155 - }  
156 - /**  
157 - * 更换昵称和头像  
158 - */  
159 - updateNickname(nickname: string, headurl: string) {  
160 - let gameid = GAMEDATA.game_id;  
161 - let uid = DataService.I.UserId;  
162 - let token = DataService.I.Token;  
163 - let pkv = SDKVersion;  
164 - return SDKApi.updateNickname({  
165 - gameid, uid, token, pkv,  
166 - nickname, headurl  
167 - })  
168 - }  
169 -  
170 -  
171 /** 191 /**
172 * 构建登录/弱登录公用参数 192 * 构建登录/弱登录公用参数
173 */ 193 */
@@ -217,6 +237,58 @@ export default class GameService { @@ -217,6 +237,58 @@ export default class GameService {
217 } 237 }
218 238
219 239
  240 + //阿里增量任务
  241 + async aliMission(action_code, success: Function, fail: Function) {
  242 + let res = await SDKApi.aliMission({
  243 + ...this.buildParamsAli(action_code),
  244 + });
  245 + if (res.code) {
  246 + fail(res);
  247 + } else
  248 + success(res);
  249 + }
  250 +
  251 + /**
  252 + * {
  253 + "uid": 99,
  254 + "token": "12313123werwerwerewrw",
  255 + "openid": "2088012968344861",
  256 + "action_code": "pplwg_game_pass_level_3",
  257 + "action_finish_channel": "gamecenter"
  258 + }
  259 + * 阿里增量任务
  260 + */
  261 + public buildParamsAli(_action_code) {
  262 + console.log('阿里增量任务')
  263 + if (window['my'] == undefined) return;
  264 + let channel = 'other';
  265 + let info = my.getLaunchOptionsSync();
  266 + // console.log('~~~~~~~~~~~~action_finish_channel=', info);
  267 + // console.log('~~~~~~~~~~~~action_finish_channel=', info.query);
  268 + // console.log('~~~~~~~~~~~~action_finish_channel=', info.query.channel);
  269 + if (info.query.channel == undefined) {
  270 + channel = 'other';
  271 + } else {
  272 + if (info.query.channel.length <= 0 || info.query.channel == null) {
  273 + channel = 'other';
  274 + } else {
  275 + channel = info.query.channel;
  276 + }
  277 + }
  278 +
  279 + let uid = DataService.I.UserId;
  280 + let token = DataService.I.Token;
  281 + let openid = DataService.I.OpenId;
  282 + let action_code = _action_code;
  283 + let action_finish_channel = channel
  284 + return {
  285 + uid,
  286 + token,
  287 + openid,
  288 + action_code,
  289 + action_finish_channel
  290 + };
  291 + }
220 292
221 /** 293 /**
222 * 构建登录/弱登录公用参数 294 * 构建登录/弱登录公用参数
wxsdk/service/LogService.ts
@@ -199,7 +199,7 @@ export default class LogService { @@ -199,7 +199,7 @@ export default class LogService {
199 * @param times 时间 199 * @param times 时间
200 * @param perc 失败时的完成进度 (浮点数) 200 * @param perc 失败时的完成进度 (浮点数)
201 */ 201 */
202 - async levelEnd(stageid, stagename, pattern, event, times, perc?) { 202 + async levelEnd(stageid, stagename, pattern, event, times, perc?, valence=0) {
203 let fun = () => SDKApi.level({ 203 let fun = () => SDKApi.level({
204 ...this.buildParams(), 204 ...this.buildParams(),
205 stageid, 205 stageid,
@@ -208,7 +208,8 @@ export default class LogService { @@ -208,7 +208,8 @@ export default class LogService {
208 event, 208 event,
209 times, 209 times,
210 perc, 210 perc,
211 - typ: 3 211 + typ: 3,
  212 + valence
212 }) 213 })
213 this.checkLogin(fun); 214 this.checkLogin(fun);
214 } 215 }
@@ -458,25 +459,25 @@ export default class LogService { @@ -458,25 +459,25 @@ export default class LogService {
458 /** 459 /**
459 * 客户端日志 460 * 客户端日志
460 */ 461 */
461 - clientLog(content, level = SDKLogLevel.debug) { 462 + clientLog(content, level = LogLevel.debug) {
462 SDKApi.client_log({ 463 SDKApi.client_log({
463 APIVersion: '0.6.0', 464 APIVersion: '0.6.0',
464 gameid: GAMEDATA.game_id, 465 gameid: GAMEDATA.game_id,
465 cacheUserId: StorageUtils.I.get("userId") || "0", 466 cacheUserId: StorageUtils.I.get("userId") || "0",
466 - level: SDKLogLevel[level], 467 + level: LogLevel[level],
467 content 468 content
468 }) 469 })
469 switch (level) { 470 switch (level) {
470 - case SDKLogLevel.error: 471 + case LogLevel.error:
471 console.error(content); 472 console.error(content);
472 break; 473 break;
473 - case SDKLogLevel.debug: 474 + case LogLevel.debug:
474 console.log(content); 475 console.log(content);
475 break; 476 break;
476 - case SDKLogLevel.info: 477 + case LogLevel.info:
477 console.info(content); 478 console.info(content);
478 break; 479 break;
479 - case SDKLogLevel.warning: 480 + case LogLevel.warning:
480 console.warn(content); 481 console.warn(content);
481 break; 482 break;
482 default: 483 default:
@@ -510,22 +511,6 @@ export default class LogService { @@ -510,22 +511,6 @@ export default class LogService {
510 }) 511 })
511 this.checkLogin(fun); 512 this.checkLogin(fun);
512 } 513 }
513 - /**  
514 - * loading上报  
515 - * @param typ 1开始加载、2加载进行中、3加载结束  
516 - * @param stageid 加载id  
517 - * @param stagename 加载内容  
518 - * @param event complete:成功 fail:失败  
519 - * @param times 加载消耗时间 单位毫秒  
520 - * @param perc 完成度  
521 - */  
522 - loading(typ: string, stageid: string, stagename: string, event: string, times: string, perc?: number) {  
523 - let fun = () => SDKApi.loading({  
524 - ...this.buildParams(),  
525 - typ, stageid, stagename, event, times, perc  
526 - })  
527 - this.checkLogin(fun);  
528 - }  
529 514
530 515
531 /** 516 /**
@@ -586,7 +571,7 @@ export default class LogService { @@ -586,7 +571,7 @@ export default class LogService {
586 error:更严重的问题,软件没能执行一些功能 571 error:更严重的问题,软件没能执行一些功能
587 critical:一个严重的错误,这表明程序本身可能无法继续运行 572 critical:一个严重的错误,这表明程序本身可能无法继续运行
588 */ 573 */
589 -export enum SDKLogLevel { 574 +export enum LogLevel {
590 debug, 575 debug,
591 info, 576 info,
592 warning, 577 warning,
wxsdk/service/ShareVideoService.ts
@@ -6,7 +6,6 @@ import { __LOG__, GAMEDATA } from &quot;../base/SDKConst&quot;; @@ -6,7 +6,6 @@ import { __LOG__, GAMEDATA } from &quot;../base/SDKConst&quot;;
6 import { SDKApi } from "../http/SDKApi"; 6 import { SDKApi } from "../http/SDKApi";
7 import DataService from "./DataService"; 7 import DataService from "./DataService";
8 import SDKVideo from "../share/SDKVideo"; 8 import SDKVideo from "../share/SDKVideo";
9 -import { sys } from "cc";  
10 9
11 export default class ShareVideoService { 10 export default class ShareVideoService {
12 private forwardKey?: string; 11 private forwardKey?: string;
@@ -28,28 +27,18 @@ export default class ShareVideoService { @@ -28,28 +27,18 @@ export default class ShareVideoService {
28 this.forward(this.forwardKey); 27 this.forward(this.forwardKey);
29 } 28 }
30 29
31 - private cnt: number = 1  
32 - async initList() { //初始化List 30 + async init() {
33 let data = await SDKApi.ShareList(); 31 let data = await SDKApi.ShareList();
34 - if (data.code) {  
35 - console.log('拉取ShareList失败!')  
36 - setTimeout(this.initList.bind(this), 200 * this.cnt)  
37 - this.cnt++;  
38 - return  
39 - }  
40 - console.log('拉取ShareList成功!')  
41 - console.log('拉取ShareList成功!',JSON.stringify(data));  
42 this.setShareVideoData(data); 32 this.setShareVideoData(data);
43 - if (this.forwardKey) this.forward(this.forwardKey);  
44 - }  
45 - async init() {  
46 - this.initList(); 33 + // console.log(JSON.stringify(data))
47 SDKShare.I.updateShareMenu(true);//打开群分享 34 SDKShare.I.updateShareMenu(true);//打开群分享
48 - if (sys.platform === sys.Platform.WECHAT_GAME) {  
49 - if (GAMEDATA.shareMessageToFriend.scene > 0) {  
50 - wx.setMessageToFriendQuery({ shareMessageToFriendScene: GAMEDATA.shareMessageToFriend.scene })  
51 - } 35 +
  36 +
  37 + if (GAMEDATA.shareMessageToFriend.scene > 0) {
  38 + my.setMessageToFriendQuery({ shareMessageToFriendScene: GAMEDATA.shareMessageToFriend.scene })
52 } 39 }
  40 +
  41 + if (this.forwardKey) this.forward(this.forwardKey);
53 } 42 }
54 43
55 preload = true; 44 preload = true;
@@ -411,10 +400,6 @@ export default class ShareVideoService { @@ -411,10 +400,6 @@ export default class ShareVideoService {
411 return list[index]; 400 return list[index];
412 } 401 }
413 402
414 - onShareTimeline(title?: string, imageUrl?: string, imagePreviewUrl?: string, query?: string) {  
415 - return SDKShare.I.onShareTimeline(title, imageUrl, imagePreviewUrl, query);  
416 - }  
417 -  
418 private createQuery(params = {}): string { 403 private createQuery(params = {}): string {
419 let q = params["query"]; 404 let q = params["query"];
420 delete params["query"]; 405 delete params["query"];
wxsdk/service/entity/SdkData.ts.meta
1 { 1 {
2 - "ver": "4.0.23",  
3 - "importer": "typescript",  
4 - "imported": true, 2 + "ver": "1.0.8",
5 "uuid": "f09e38ff-4d68-417e-8904-949127e4d321", 3 "uuid": "f09e38ff-4d68-417e-8904-949127e4d321",
6 - "files": [],  
7 - "subMetas": {},  
8 - "userData": {}  
9 -} 4 + "isPlugin": false,
  5 + "loadPluginInWeb": true,
  6 + "loadPluginInNative": true,
  7 + "loadPluginInEditor": false,
  8 + "subMetas": {}
  9 +}
10 \ No newline at end of file 10 \ No newline at end of file
wxsdk/service/entity/ShareData.ts.meta
1 { 1 {
2 - "ver": "4.0.23",  
3 - "importer": "typescript",  
4 - "imported": true, 2 + "ver": "1.0.8",
5 "uuid": "d9db9b13-470b-456d-95ff-75354ec23ca0", 3 "uuid": "d9db9b13-470b-456d-95ff-75354ec23ca0",
6 - "files": [],  
7 - "subMetas": {},  
8 - "userData": {}  
9 -} 4 + "isPlugin": false,
  5 + "loadPluginInWeb": true,
  6 + "loadPluginInNative": true,
  7 + "loadPluginInEditor": false,
  8 + "subMetas": {}
  9 +}
10 \ No newline at end of file 10 \ No newline at end of file
wxsdk/share/SDKShare.ts
@@ -48,18 +48,20 @@ export default class SDKShare { @@ -48,18 +48,20 @@ export default class SDKShare {
48 reject(null); 48 reject(null);
49 } 49 }
50 }; 50 };
  51 + // 是否模拟分享
  52 + this.shareSimulate && !opts.closeSimulate && this.simulate({ ...callbackObj });
51 53
52 if (this.shareSimulate && opts.closeSimulate) { 54 if (this.shareSimulate && opts.closeSimulate) {
53 LogService.I.share(shareKey, share_id, DOT_SHARE_TYPE.share) 55 LogService.I.share(shareKey, share_id, DOT_SHARE_TYPE.share)
54 } 56 }
55 // 主动拉起转发 57 // 主动拉起转发
56 - if (typeof my != 'undefined') { 58 + if (cc.sys.platform === cc.sys.ALIPAY_GAME) {
57 //模拟分享支付宝上面会失败 59 //模拟分享支付宝上面会失败
58 return AlipayApi.I.shareAppMessage(commonObj, callbackObj) 60 return AlipayApi.I.shareAppMessage(commonObj, callbackObj)
  61 + } else if (cc.sys.platform === cc.sys.WECHAT_GAME) {
  62 + return wx.shareAppMessage(commonObj);
59 } else { 63 } else {
60 - // 是否模拟分享  
61 - this.shareSimulate && !opts.closeSimulate && this.simulate({ ...callbackObj });  
62 - wx.shareAppMessage(commonObj); 64 + return callbackObj.success();
63 } 65 }
64 }); 66 });
65 } 67 }
@@ -69,7 +71,7 @@ export default class SDKShare { @@ -69,7 +71,7 @@ export default class SDKShare {
69 */ 71 */
70 updateShareMenu(value) { 72 updateShareMenu(value) {
71 if (typeof wx == 'undefined') return 73 if (typeof wx == 'undefined') return
72 - wx.updateShareMenu({ 74 + my.updateShareMenu({
73 withShareTicket: value 75 withShareTicket: value
74 }); 76 });
75 } 77 }
@@ -81,12 +83,10 @@ export default class SDKShare { @@ -81,12 +83,10 @@ export default class SDKShare {
81 forward(params: any, opts: any = {}) { 83 forward(params: any, opts: any = {}) {
82 let me = this; 84 let me = this;
83 let { title, imageUrl, query, imageUrlId } = params; 85 let { title, imageUrl, query, imageUrlId } = params;
84 - if (typeof my != 'undefined') { 86 + if (cc.sys.platform === cc.sys.ALIPAY_GAME) {
85 my.onShareAppMessage = function () { 87 my.onShareAppMessage = function () {
86 return { 88 return {
87 title: title, 89 title: title,
88 - scImgUrl: imageUrl,  
89 - bgImgUrl: 'https://wxsdk-cdn.miso-lab.com/moon-island/share/zfbshare.jpeg',  
90 success: (ret?: any) => { 90 success: (ret?: any) => {
91 __LOG__ && console.error('WxShare forward success'); 91 __LOG__ && console.error('WxShare forward success');
92 opts.success && opts.success.call(opts.context, ret); 92 opts.success && opts.success.call(opts.context, ret);
@@ -100,36 +100,33 @@ export default class SDKShare { @@ -100,36 +100,33 @@ export default class SDKShare {
100 } 100 }
101 } 101 }
102 } 102 }
103 - return; 103 + } else {
  104 + wx.onShareAppMessage(function () {
  105 + let obj = {
  106 + title,
  107 + imageUrl,
  108 + query,
  109 + imageUrlId: imageUrlId || '',
  110 + success: (ret?: any) => {
  111 + __LOG__ && console.error('WxShare forward success');
  112 + opts.success && opts.success.call(opts.context, ret);
  113 + },
  114 + fail: (err?: any) => {
  115 + __LOG__ && console.error('WxShare forward fail');
  116 + opts.fail && opts.fail.call(opts.context, err);
  117 + },
  118 + cancel: () => {
  119 + __LOG__ && console.error('WxShare forward cancel', null);
  120 + opts.fail && opts.fail.call(opts.context, null);
  121 + }
  122 + };
  123 + // 模拟分享
  124 + me.shareSimulate && !opts.closeSimulate && me.simulate({ ...obj });
  125 + return obj;
  126 + });
  127 + // 显示当前页面的转发按钮
  128 + wx.showShareMenu({});
104 } 129 }
105 - wx.onShareAppMessage(function () {  
106 - let obj = {  
107 - title,  
108 - imageUrl,  
109 - query,  
110 - imageUrlId: imageUrlId || '',  
111 - success: (ret?: any) => {  
112 - __LOG__ && console.error('WxShare forward success');  
113 - opts.success && opts.success.call(opts.context, ret);  
114 - },  
115 - fail: (err?: any) => {  
116 - __LOG__ && console.error('WxShare forward fail');  
117 - opts.fail && opts.fail.call(opts.context, err);  
118 - },  
119 - cancel: () => {  
120 - __LOG__ && console.error('WxShare forward cancel', null);  
121 - opts.fail && opts.fail.call(opts.context, null);  
122 - }  
123 - };  
124 - // 模拟分享  
125 - me.shareSimulate && !opts.closeSimulate && me.simulate({ ...obj });  
126 - return obj;  
127 - });  
128 - // 显示当前页面的转发按钮 "shareAppMessage"表示“发送给朋友”按钮,"shareTimeline"表示“分享到朋友圈”按钮  
129 - wx.showShareMenu({  
130 - withShareTicket: true,  
131 - menus: ['shareAppMessage', 'shareTimeline']  
132 - })  
133 130
134 } 131 }
135 132
@@ -151,18 +148,4 @@ export default class SDKShare { @@ -151,18 +148,4 @@ export default class SDKShare {
151 SimulateShare.I.bind(data); 148 SimulateShare.I.bind(data);
152 } 149 }
153 150
154 - onShareTimeline(title?: string, imageUrl?: string, imagePreviewUrl?: string, query?: string) {  
155 - if (wx?.onShareTimeline) {  
156 - wx.onShareTimeline(() => {  
157 - return {  
158 - title,//朋友圈标题  
159 - imageUrl, // 朋友圈 小图  
160 - imagePreviewUrl,//朋友圈 预览大图  
161 - query,  
162 - }  
163 - })  
164 - }  
165 -  
166 - }  
167 -  
168 } 151 }
169 \ No newline at end of file 152 \ No newline at end of file
wxsdk/share/SDKVideo.ts
1 -import { sys } from "cc";  
2 import { ShareVideoError, __LOG__ } from "../base/SDKConst"; 1 import { ShareVideoError, __LOG__ } from "../base/SDKConst";
3 import { DOT_AD_TYPE, DOT_AD_STATUS } from "../base/SDKEnum"; 2 import { DOT_AD_TYPE, DOT_AD_STATUS } from "../base/SDKEnum";
4 import LogService from "../service/LogService"; 3 import LogService from "../service/LogService";
5 -import TAMgr from "../../ta/TAMgr";  
6 import AlipayApi from "../alipay/AlipayApi"; 4 import AlipayApi from "../alipay/AlipayApi";
7 5
8 /* 6 /*
@@ -36,6 +34,7 @@ export default class SDKVideo { @@ -36,6 +34,7 @@ export default class SDKVideo {
36 private isPreload: boolean = false 34 private isPreload: boolean = false
37 preloadVideo(adUnitId: string) { 35 preloadVideo(adUnitId: string) {
38 if (this.preloadVideoAd || this.isPreload) return 36 if (this.preloadVideoAd || this.isPreload) return
  37 + // console.log('preloadVideo--')
39 this.isPreload = true; 38 this.isPreload = true;
40 let ad; 39 let ad;
41 if (typeof my != 'undefined') { 40 if (typeof my != 'undefined') {
@@ -96,12 +95,9 @@ export default class SDKVideo { @@ -96,12 +95,9 @@ export default class SDKVideo {
96 return reject({ ...ShareVideoError.VideoInvalid }); 95 return reject({ ...ShareVideoError.VideoInvalid });
97 96
98 LogService.I.adStat(videoKey, this.adUnitId, DOT_AD_TYPE.video, DOT_AD_STATUS.request); 97 LogService.I.adStat(videoKey, this.adUnitId, DOT_AD_TYPE.video, DOT_AD_STATUS.request);
99 - TAMgr.Ins.dot('video', {  
100 - ad_key: videoKey,  
101 - type: DOT_AD_STATUS.request  
102 - })  
103 - let videoAd  
104 - let hasVideo 98 + let videoAd;
  99 + let hasVideo;
  100 +
105 if (this.preloadVideoAd) { 101 if (this.preloadVideoAd) {
106 __LOG__ && console.log("使用预加载视频") 102 __LOG__ && console.log("使用预加载视频")
107 hasVideo = true 103 hasVideo = true
@@ -167,7 +163,7 @@ export default class SDKVideo { @@ -167,7 +163,7 @@ export default class SDKVideo {
167 } 163 }
168 164
169 } 165 }
170 - this.preloadVideo(adUnitId); 166 + // this.preloadVideo(adUnitId);
171 __LOG__ && console.warn('====> PCSDK WxVideo 请求视频adUnitId', adUnitId); 167 __LOG__ && console.warn('====> PCSDK WxVideo 请求视频adUnitId', adUnitId);
172 }); 168 });
173 } 169 }
@@ -183,11 +179,7 @@ export default class SDKVideo { @@ -183,11 +179,7 @@ export default class SDKVideo {
183 try { 179 try {
184 __LOG__ && console.warn("handleLoaded2"); 180 __LOG__ && console.warn("handleLoaded2");
185 LogService.I.adStat(this.videoKey, this.adUnitId, DOT_AD_TYPE.video, DOT_AD_STATUS.show) 181 LogService.I.adStat(this.videoKey, this.adUnitId, DOT_AD_TYPE.video, DOT_AD_STATUS.show)
186 - TAMgr.Ins.dot('video', {  
187 - ad_key: this.videoKey,  
188 - type: DOT_AD_STATUS.show  
189 - })  
190 - if (sys.platform === sys.Platform.WECHAT_GAME && typeof qq == 'undefined') { 182 + if (cc.sys.platform === cc.sys.WECHAT_GAME && typeof qq == 'undefined') {
191 if (that.videoAd.isReady()) {//抖音、qq 没有 isReady 183 if (that.videoAd.isReady()) {//抖音、qq 没有 isReady
192 that.show_time = Date.now(); 184 that.show_time = Date.now();
193 await that.videoAd.show(); 185 await that.videoAd.show();
@@ -218,18 +210,10 @@ export default class SDKVideo { @@ -218,18 +210,10 @@ export default class SDKVideo {
218 if (res && res.isEnded || res === undefined) { 210 if (res && res.isEnded || res === undefined) {
219 // 统计看视频成功 211 // 统计看视频成功
220 LogService.I.adStat(that.videoKey, that.adUnitId, DOT_AD_TYPE.video, DOT_AD_STATUS.complete) 212 LogService.I.adStat(that.videoKey, that.adUnitId, DOT_AD_TYPE.video, DOT_AD_STATUS.complete)
221 - TAMgr.Ins.dot('video', {  
222 - ad_key: that.videoKey,  
223 - type: DOT_AD_STATUS.complete  
224 - })  
225 that.resolve && that.resolve({ type: 2 }); 213 that.resolve && that.resolve({ type: 2 });
226 } else { 214 } else {
227 // console.log("视频关闭时间:", t) 215 // console.log("视频关闭时间:", t)
228 LogService.I.adStat(that.videoKey, that.adUnitId, DOT_AD_TYPE.video, DOT_AD_STATUS.interrupt, t) 216 LogService.I.adStat(that.videoKey, that.adUnitId, DOT_AD_TYPE.video, DOT_AD_STATUS.interrupt, t)
229 - TAMgr.Ins.dot('video', {  
230 - ad_key: that.videoKey,  
231 - type: DOT_AD_STATUS.interrupt  
232 - })  
233 that.reject && that.reject({ ...ShareVideoError.VideoQuit }); 217 that.reject && that.reject({ ...ShareVideoError.VideoQuit });
234 } 218 }
235 if (typeof my != 'undefined') { 219 if (typeof my != 'undefined') {
@@ -237,7 +221,7 @@ export default class SDKVideo { @@ -237,7 +221,7 @@ export default class SDKVideo {
237 } else { 221 } else {
238 that.videoAd.offClose(that.handleClose); 222 that.videoAd.offClose(that.handleClose);
239 } 223 }
240 - 224 + that.preloadVideo(that.adUnitId);
241 that._isPlaying = false; 225 that._isPlaying = false;
242 that._isErrored = false; 226 that._isErrored = false;
243 } 227 }
@@ -246,11 +230,15 @@ export default class SDKVideo { @@ -246,11 +230,15 @@ export default class SDKVideo {
246 __LOG__ && console.warn('====> PCSDK WxVideo 加载视频广告失败', err); 230 __LOG__ && console.warn('====> PCSDK WxVideo 加载视频广告失败', err);
247 let that = SDKVideo.I; 231 let that = SDKVideo.I;
248 LogService.I.adStat(that.videoKey, that.adUnitId, DOT_AD_TYPE.video, DOT_AD_STATUS.fail) 232 LogService.I.adStat(that.videoKey, that.adUnitId, DOT_AD_TYPE.video, DOT_AD_STATUS.fail)
249 - TAMgr.Ins.dot('video', {  
250 - ad_key: that.videoKey,  
251 - type: DOT_AD_STATUS.fail  
252 - })  
253 - that.reject && that.reject({ ...ShareVideoError.VideoFail }); 233 + // that.reject && that.reject({ ...ShareVideoError.VideoFail });
  234 + if (that.reject) {
  235 + if (that.videoAd)
  236 + that.reject({ ...ShareVideoError.VideoFail })
  237 + else {
  238 + let fail = { code: 1010, msg: '查看次数过多,请稍后再看!' }
  239 + that.reject({ ...fail })
  240 + }
  241 + }
254 if (typeof my != 'undefined') { 242 if (typeof my != 'undefined') {
255 243
256 } else { 244 } else {
wxsdk/utils/RandomUtils.ts
@@ -20,7 +20,7 @@ export default class RandomUtils { @@ -20,7 +20,7 @@ export default class RandomUtils {
20 static rand(min: number, max: number) { 20 static rand(min: number, max: number) {
21 min = min || 0; 21 min = min || 0;
22 max = max || 10000; 22 max = max || 10000;
23 - return Math.floor(Math.random() * 10000) % (max - min) + min; 23 + return Math.floor(Math.random() * 10000) % (max - min) + min;
24 } 24 }
25 25
26 static rang(min: number, max: number) { 26 static rang(min: number, max: number) {
@@ -30,5 +30,4 @@ export default class RandomUtils { @@ -30,5 +30,4 @@ export default class RandomUtils {
30 static randFloat(min: number, max: number) { 30 static randFloat(min: number, max: number) {
31 return parseFloat((Math.random() * (max - min) + min).toFixed(2)); 31 return parseFloat((Math.random() * (max - min) + min).toFixed(2));
32 } 32 }
33 -  
34 } 33 }
wxsdk/utils/SDKUtils.ts
@@ -65,6 +65,7 @@ export default class SDKUtils { @@ -65,6 +65,7 @@ export default class SDKUtils {
65 65
66 // 兼容方式 - 版本比较 66 // 兼容方式 - 版本比较
67 static compareVersion(v1: any, v2: any) { 67 static compareVersion(v1: any, v2: any) {
  68 + // console.log("compareVersion", v1, v2)
68 v1 = v1.split('.'); 69 v1 = v1.split('.');
69 v2 = v2.split('.'); 70 v2 = v2.split('.');
70 let len = Math.max(v1.length, v2.length); 71 let len = Math.max(v1.length, v2.length);
wxsdk/utils/SignUtils.ts
@@ -11,7 +11,7 @@ export default class SignUtils { @@ -11,7 +11,7 @@ export default class SignUtils {
11 11
12 createSign(params: any) { 12 createSign(params: any) {
13 let signStr = this.createQuery(params) + '' + GAMEDATA.appkey; 13 let signStr = this.createQuery(params) + '' + GAMEDATA.appkey;
14 - // console.error("signStr",signStr) 14 + // console.error("signStr:::"+ signStr)
15 return Md5.hashStr(signStr); 15 return Md5.hashStr(signStr);
16 } 16 }
17 17
@@ -71,7 +71,7 @@ export default class SignUtils { @@ -71,7 +71,7 @@ export default class SignUtils {
71 let query = ''; 71 let query = '';
72 for (let i = 0, len = keys.length; i < len; i++) { 72 for (let i = 0, len = keys.length; i < len; i++) {
73 // 为空,为 0的参数不参与签名,参数名为ver,pkv的参数不参与签名, 字符集为 utf-8 73 // 为空,为 0的参数不参与签名,参数名为ver,pkv的参数不参与签名, 字符集为 utf-8
74 - if (params[keys[i]] == undefined ||params[keys[i]] === 'undefined' || params[keys[i]] === '' || params[keys[i]] === '0' || params[keys[i]] === 0 || keys[i] === 'ver' || keys[i] === 'pkv') continue 74 + if (!params[keys[i]] || params[keys[i]] === '0' || keys[i] === 'ver' || keys[i] === 'pkv') continue
75 key = keys[i]; 75 key = keys[i];
76 i && (query += ''); 76 i && (query += '');
77 if (SDKUtils.isArray(params[key])) { 77 if (SDKUtils.isArray(params[key])) {
wxsdk/utils/StorageUtils.ts
@@ -9,11 +9,7 @@ export default class StorageUtils { @@ -9,11 +9,7 @@ export default class StorageUtils {
9 private store: any = null 9 private store: any = null
10 10
11 constructor() { 11 constructor() {
12 - if (typeof localStorage === 'object')  
13 - this.store = new Storage;  
14 -  
15 - if (typeof (wx) != "undefined")  
16 - this.store = new WxStorage; 12 + this.store = cc.sys.localStorage;
17 } 13 }
18 14
19 private __isExpired(entity: any) { 15 private __isExpired(entity: any) {
wxsdk/wx/Version.ts
@@ -2,20 +2,23 @@ import { __LOG__ } from &quot;../base/SDKConst&quot;; @@ -2,20 +2,23 @@ import { __LOG__ } from &quot;../base/SDKConst&quot;;
2 2
3 enum PlatformType { 3 enum PlatformType {
4 WX = 'wx', 4 WX = 'wx',
5 - QQ = 'qq' 5 + QQ = 'qq',
  6 + MY = 'my'
6 } 7 }
7 enum Platform{ 8 enum Platform{
8 - PlatformType = 'wx' 9 + PlatformType = 'my'
9 } 10 }
10 export default class Version { 11 export default class Version {
11 private DEFUALT = '0.0.0'; 12 private DEFUALT = '0.0.0';
12 private VERSION = { 13 private VERSION = {
13 createRewardedVideoAd: { 14 createRewardedVideoAd: {
14 [PlatformType.WX]: '2.0.4', 15 [PlatformType.WX]: '2.0.4',
15 - [PlatformType.QQ]: '0.1.26' 16 + [PlatformType.QQ]: '0.1.26',
  17 + [PlatformType.MY]: '10.3.70'
16 }, 18 },
17 createInterstitialAd: { 19 createInterstitialAd: {
18 - [PlatformType.WX]: '2.6.0' 20 + [PlatformType.WX]: '2.6.0',
  21 + [PlatformType.MY]: '10.3.66'
19 }, 22 },
20 createFeedbackButton: { 23 createFeedbackButton: {
21 [PlatformType.WX]: '2.1.2' 24 [PlatformType.WX]: '2.1.2'
@@ -25,7 +28,8 @@ export default class Version { @@ -25,7 +28,8 @@ export default class Version {
25 }, 28 },
26 createBannerAd: { 29 createBannerAd: {
27 [PlatformType.WX]: '2.0.4', 30 [PlatformType.WX]: '2.0.4',
28 - [PlatformType.QQ]: '0.1.26' 31 + [PlatformType.QQ]: '0.1.26',
  32 + [PlatformType.MY]: '10.3.66'
29 }, 33 },
30 createGameBanner: { 34 createGameBanner: {
31 [PlatformType.WX]: '2.7.5' 35 [PlatformType.WX]: '2.7.5'
wxsdk/wx/WxApi.ts
@@ -62,7 +62,7 @@ export default class WxApi { @@ -62,7 +62,7 @@ export default class WxApi {
62 if (!this.canIUse(Version.I.getVBannerAd())) return null; 62 if (!this.canIUse(Version.I.getVBannerAd())) return null;
63 63
64 adIntervals = adIntervals || 30; 64 adIntervals = adIntervals || 30;
65 - return wx.createBannerAd({ 65 + return my.createBannerAd({
66 adUnitId, 66 adUnitId,
67 style 67 style
68 }); 68 });
@@ -84,8 +84,9 @@ export default class WxApi { @@ -84,8 +84,9 @@ export default class WxApi {
84 * 创建插屏广告组件 84 * 创建插屏广告组件
85 */ 85 */
86 createInterstitialAd(adUnitId: string) { 86 createInterstitialAd(adUnitId: string) {
87 - if (!this.canIUse(Version.I.getVInterstitialAd())) return null;  
88 - return wx.createInterstitialAd({ 87 + // if (!this.canIUse(Version.I.getVInterstitialAd())) return null;
  88 + if (typeof my === 'undefined') return null
  89 + return my.createInterstitialAd({
89 adUnitId 90 adUnitId
90 }); 91 });
91 } 92 }
@@ -116,7 +117,7 @@ export default class WxApi { @@ -116,7 +117,7 @@ export default class WxApi {
116 createRewardedVideoAd(adUnitId: string) { 117 createRewardedVideoAd(adUnitId: string) {
117 if (!this.canIUse(Version.I.getVRewardedVideoAd())) return null; 118 if (!this.canIUse(Version.I.getVRewardedVideoAd())) return null;
118 119
119 - return wx.createRewardedVideoAd({ 120 + return my.createRewardedAd({
120 adUnitId 121 adUnitId
121 }); 122 });
122 } 123 }
@@ -163,10 +164,10 @@ export default class WxApi { @@ -163,10 +164,10 @@ export default class WxApi {
163 } 164 }
164 165
165 vibrateShort() { 166 vibrateShort() {
166 - if (!this.canIUse(Version.I.getVVibrate())) return Promise.reject(null); 167 + // if (!this.canIUse(Version.I.getVVibrate())) return Promise.reject(null);
167 168
168 return new Promise((resolve, reject) => { 169 return new Promise((resolve, reject) => {
169 - wx.vibrateShort({ 170 + my.vibrateShort({
170 success: () => { 171 success: () => {
171 resolve(1); 172 resolve(1);
172 }, 173 },
@@ -299,16 +300,25 @@ export default class WxApi { @@ -299,16 +300,25 @@ export default class WxApi {
299 */ 300 */
300 login(): Promise<any> { 301 login(): Promise<any> {
301 return new Promise((resolve, reject) => { 302 return new Promise((resolve, reject) => {
302 - wx.login({  
303 - success: (ret: any) => {  
304 - resolve(ret.code); 303 + // wx.login({
  304 + // success: (ret: any) => {
  305 + // resolve(ret.code);
  306 + // },
  307 + // fail: (err: any) => {
  308 + // reject(err);
  309 + // WxApi.I.setAuthorize({
  310 + // errorTip: 'wx.login fail',
  311 + // ...err
  312 + // });
  313 + // }
  314 + // });
  315 + my.getAuthCode({
  316 + scopes: 'auth_base',
  317 + success: (res) => {
  318 + resolve(res.authCode);
305 }, 319 },
306 fail: (err: any) => { 320 fail: (err: any) => {
307 reject(err); 321 reject(err);
308 - WxApi.I.setAuthorize({  
309 - errorTip: 'wx.login fail',  
310 - ...err  
311 - });  
312 } 322 }
313 }); 323 });
314 }); 324 });
@@ -371,8 +381,8 @@ export default class WxApi { @@ -371,8 +381,8 @@ export default class WxApi {
371 /** 381 /**
372 * 米大师充值 382 * 米大师充值
373 */ 383 */
374 - requestMidasPayment(params: { mode: string; env: number; offerId: string; currencyType: string; platform: string; buyQuantity: number; zoneId: string,outTradeNo:string }): Promise<any> {  
375 - let { mode, env, offerId, currencyType, platform, buyQuantity, zoneId,outTradeNo } = params; 384 + requestMidasPayment(params: { mode: string; env: number; offerId: string; currencyType: string; platform: string; buyQuantity: number; zoneId: string }): Promise<any> {
  385 + let { mode, env, offerId, currencyType, platform, buyQuantity, zoneId } = params;
376 console.warn('====> PCSDK WxApi requestMidasPayment 支付参数', { 386 console.warn('====> PCSDK WxApi requestMidasPayment 支付参数', {
377 mode, 387 mode,
378 env, 388 env,
@@ -380,8 +390,7 @@ export default class WxApi { @@ -380,8 +390,7 @@ export default class WxApi {
380 currencyType, 390 currencyType,
381 platform, 391 platform,
382 buyQuantity, 392 buyQuantity,
383 - zoneId,  
384 - outTradeNo 393 + zoneId
385 }); 394 });
386 return new Promise((resolve, reject) => { 395 return new Promise((resolve, reject) => {
387 wx.requestMidasPayment({ 396 wx.requestMidasPayment({
@@ -392,7 +401,6 @@ export default class WxApi { @@ -392,7 +401,6 @@ export default class WxApi {
392 platform, 401 platform,
393 buyQuantity, 402 buyQuantity,
394 zoneId, 403 zoneId,
395 - outTradeNo,  
396 success: ret => { 404 success: ret => {
397 if (ret && ret.errMsg === 'requestMidasPayment:ok') 405 if (ret && ret.errMsg === 'requestMidasPayment:ok')
398 resolve(ret); 406 resolve(ret);
wxsdk/wx/WxBanner.ts
@@ -42,7 +42,15 @@ export default class WxBanner { @@ -42,7 +42,15 @@ export default class WxBanner {
42 private queue: Function[] = []; 42 private queue: Function[] = [];
43 private isEnd: boolean = false; 43 private isEnd: boolean = false;
44 44
45 - create(adUnitId: string, opts?: { type?: number; bannerWidth?: number, offsetY?: number; adIntervals?: number, isOff?: boolean ,isCreate?:boolean}) { 45 + create(adUnitId: string, opts?: { type?: number; bannerWidth?: number, offsetY?: number; adIntervals?: number, isOff?: boolean }) {
  46 + // console.log('wxbanner can not')
  47 + // console.log(my.env.clientVersion())
  48 + if (SDKUtils.compareVersion(my.env.clientVersion, '10.3.66') < 0) return null;
  49 + // let a = my.env.clientVersion()
  50 + // console.log(a)
  51 + // if (!WxApi.I.canIUse(Version.I.getVBannerAd()))
  52 + // console.log('wxbanner can')
  53 +
46 this.bannerParams = opts || {}; 54 this.bannerParams = opts || {};
47 if (opts && opts.bannerWidth) { 55 if (opts && opts.bannerWidth) {
48 this.bannerWidth = opts.bannerWidth; 56 this.bannerWidth = opts.bannerWidth;
@@ -67,24 +75,19 @@ export default class WxBanner { @@ -67,24 +75,19 @@ export default class WxBanner {
67 let style = { top: 0, left: (WxSystem.I.winWidth - this.bannerWidth) / 2, width: this.bannerWidth }; 75 let style = { top: 0, left: (WxSystem.I.winWidth - this.bannerWidth) / 2, width: this.bannerWidth };
68 style = { 76 style = {
69 ...style, 77 ...style,
70 - top: 0 + this.bannerParams.offsetY, 78 + top: WxSystem.I.winHeight - 100,
71 }; 79 };
72 // 创建并判断是否存在 80 // 创建并判断是否存在
73 // if (this.bannerParams.type === 2) 81 // if (this.bannerParams.type === 2)
74 // this.bannerAd = wx.createGameBanner({ adUnitId, style: { left: style.left, top: this.bannerHeight } }); 82 // this.bannerAd = wx.createGameBanner({ adUnitId, style: { left: style.left, top: this.bannerHeight } });
75 // else 83 // else
76 if (this.bannerAd) { 84 if (this.bannerAd) {
77 - if(opts && opts.isCreate){  
78 - //重新创建  
79 - console.log("重新创建banner")  
80 - }else{  
81 - if (!opts || (opts && !opts.isOff)) {  
82 - this.show(false);  
83 - }  
84 - return 85 + if (!opts || (opts && !opts.isOff)) {
  86 + this.show(false);
85 } 87 }
  88 + return
86 } 89 }
87 - this.bannerAd = wx.createBannerAd({ adUnitId, style, adIntervals: this.bannerParams.adIntervals }); 90 + this.bannerAd = my.createBannerAd({ adUnitId, style, adIntervals: this.bannerParams.adIntervals });
88 LogService.I.adStat('banner', this.adUnitId, DOT_AD_TYPE.banner, DOT_AD_STATUS.request) 91 LogService.I.adStat('banner', this.adUnitId, DOT_AD_TYPE.banner, DOT_AD_STATUS.request)
89 if (!this.bannerAd) { 92 if (!this.bannerAd) {
90 WxBanner.I.handleQueue(); 93 WxBanner.I.handleQueue();
@@ -204,6 +207,7 @@ export default class WxBanner { @@ -204,6 +207,7 @@ export default class WxBanner {
204 let that = WxBanner.I; 207 let that = WxBanner.I;
205 that.unbind(); 208 that.unbind();
206 that._isErrored = true; 209 that._isErrored = true;
  210 + that.bannerAd?.destroy();
207 that.bannerAd = null; 211 that.bannerAd = null;
208 that.handleQueue() 212 that.handleQueue()
209 LogService.I.adStat('banner', that.adUnitId, DOT_AD_TYPE.banner, DOT_AD_STATUS.fail) 213 LogService.I.adStat('banner', that.adUnitId, DOT_AD_TYPE.banner, DOT_AD_STATUS.fail)
@@ -213,9 +217,9 @@ export default class WxBanner { @@ -213,9 +217,9 @@ export default class WxBanner {
213 217
214 private unbind() { 218 private unbind() {
215 if (this.bannerAd) { 219 if (this.bannerAd) {
216 - this.bannerAd.offLoad(this.onLoad);  
217 - this.bannerAd.offError(this.onError);  
218 - this.bannerAd.offResize(this.onResize); 220 + // this.bannerAd.offLoad(this.onLoad);
  221 + // this.bannerAd.offError(this.onError);
  222 + // this.bannerAd.offResize(this.onResize);
219 } 223 }
220 } 224 }
221 225
wxsdk/wx/WxCustom.ts
@@ -178,9 +178,9 @@ export default class WxCustom { @@ -178,9 +178,9 @@ export default class WxCustom {
178 178
179 private unbind() { 179 private unbind() {
180 if (this.customAd) { 180 if (this.customAd) {
181 - this.customAd.offLoad(this.onLoad);  
182 - this.customAd.offClose(this.onClose);  
183 - this.customAd.offError(this.onError); 181 + // this.customAd.offLoad(this.onLoad);
  182 + // this.customAd.offClose(this.onClose);
  183 + // this.customAd.offError(this.onError);
184 } 184 }
185 } 185 }
186 186
wxsdk/wx/WxInit.ts
@@ -15,15 +15,15 @@ export default class WxInit { @@ -15,15 +15,15 @@ export default class WxInit {
15 15
16 private constructor() { 16 private constructor() {
17 this.onlineTime = DateUtils.nowTime; 17 this.onlineTime = DateUtils.nowTime;
18 - wx.onShow(this.onShow.bind(this));  
19 - wx.onHide(this.onHide.bind(this));  
20 - wx.onNetworkStatusChange(this.onNetworkStatusChange.bind(this)); 18 + my.onShow(this.onShow.bind(this));
  19 + my.onHide(this.onHide.bind(this));
  20 + my.onNetworkStatusChange(this.onNetworkStatusChange.bind(this));
21 } 21 }
22 22
23 init() { 23 init() {
24 let { platform } = WxSystem.I.SystemData; 24 let { platform } = WxSystem.I.SystemData;
25 let launchData = WxLaunch.I.LaunchData; 25 let launchData = WxLaunch.I.LaunchData;
26 - console.log("启动信息", JSON.stringify(launchData)); 26 + console.log("启动信息", launchData);
27 let { query, scene, referrerInfo } = launchData; 27 let { query, scene, referrerInfo } = launchData;
28 let { 28 let {
29 invite_type, 29 invite_type,
@@ -41,7 +41,6 @@ export default class WxInit { @@ -41,7 +41,6 @@ export default class WxInit {
41 // 抖音投放相关信息 41 // 抖音投放相关信息
42 clue_token, 42 clue_token,
43 ad_id, 43 ad_id,
44 - promotion_id,  
45 creative_id, 44 creative_id,
46 advertister_id, 45 advertister_id,
47 request_id 46 request_id
@@ -59,10 +58,6 @@ export default class WxInit { @@ -59,10 +58,6 @@ export default class WxInit {
59 if (ad_id) { 58 if (ad_id) {
60 fromChannel = ad_id; 59 fromChannel = ad_id;
61 } 60 }
62 - // 设置抖音投放转化跟踪 v2  
63 - if(promotion_id){  
64 - fromChannel = promotion_id;  
65 - }  
66 61
67 //定向分享统计 62 //定向分享统计
68 if (shareMessageToFriendScene && shareMessageToFriendScene >= 0 && shareMessageToFriendScene <= 50) { 63 if (shareMessageToFriendScene && shareMessageToFriendScene >= 0 && shareMessageToFriendScene <= 50) {
wxsdk/wx/WxLaunch.ts
@@ -3,7 +3,8 @@ export default class WxLaunch { @@ -3,7 +3,8 @@ export default class WxLaunch {
3 private data: LaunchInfoSyncReturnValue; 3 private data: LaunchInfoSyncReturnValue;
4 4
5 private constructor() { 5 private constructor() {
6 - this.data = wx.getLaunchOptionsSync(); 6 + this.data = my.getLaunchOptionsSync();
  7 + // console.log('lauch--',this.data);
7 } 8 }
8 9
9 get LaunchData() { 10 get LaunchData() {
wxsdk/wx/WxLogin.ts
@@ -8,7 +8,7 @@ import LogService from &quot;../service/LogService&quot;; @@ -8,7 +8,7 @@ import LogService from &quot;../service/LogService&quot;;
8 import { DOT_SHARE_TYPE } from "../base/SDKEnum"; 8 import { DOT_SHARE_TYPE } from "../base/SDKEnum";
9 import ShareVideoService from "../service/ShareVideoService"; 9 import ShareVideoService from "../service/ShareVideoService";
10 import OnlineService from "../service/OnlineService"; 10 import OnlineService from "../service/OnlineService";
11 -import AlipayApi from "../alipay/AlipayApi"; 11 +import AlipayApi from '../alipay/AlipayApi';
12 12
13 export default class WxLogin { 13 export default class WxLogin {
14 /** 14 /**
@@ -18,21 +18,25 @@ export default class WxLogin { @@ -18,21 +18,25 @@ export default class WxLogin {
18 * tip2:必须先调用wxLogin才能使用getUserInfo 18 * tip2:必须先调用wxLogin才能使用getUserInfo
19 */ 19 */
20 async login(isAuthorize: boolean): Promise<any> { 20 async login(isAuthorize: boolean): Promise<any> {
21 - if (typeof my !== 'undefined') { 21 +
  22 + if (cc.sys.platform === cc.sys.BYTEDANCE_GAME) {
  23 + return
  24 + } else if (cc.sys.platform === cc.sys.ALIPAY_GAME) {
  25 + let self = this;
22 return new Promise(async (resolve, reject) => { 26 return new Promise(async (resolve, reject) => {
23 - console.log("-----login4-------")  
24 - let code = await AlipayApi.I.login();  
25 - console.log("-----login5-------")  
26 - console.log(code)  
27 if (isAuthorize) { 27 if (isAuthorize) {
28 AlipayApi.I.getUserinfo() 28 AlipayApi.I.getUserinfo()
29 - .then((ret: any) => this.authedlogin(ret, code, resolve, reject))  
30 - .catch((err: any) => this.weakLogin(err, code, resolve, reject)); 29 + .then((ret: any) => this.authedlogin(ret, ret.authCode, resolve, reject))
  30 + .catch(async (err: any) => {
  31 + let code = await AlipayApi.I.login();
  32 + self.weakLogin(err, code, resolve, reject);
  33 + });
31 } else { 34 } else {
32 - this.weakLogin({ errCode: 1, msg: '默认未授权登录' }, code, resolve, reject) 35 + let code = await AlipayApi.I.login();
  36 + self.weakLogin({ errCode: 1, msg: '默认未授权登录' }, code, resolve, reject)
33 } 37 }
34 }); 38 });
35 - } else { 39 + } else if (cc.sys.platform === cc.sys.WECHAT_GAME) {
36 return new Promise(async (resolve, reject) => { 40 return new Promise(async (resolve, reject) => {
37 let code = await WxApi.I.login(); 41 let code = await WxApi.I.login();
38 if (isAuthorize) { 42 if (isAuthorize) {
@@ -107,9 +111,7 @@ export default class WxLogin { @@ -107,9 +111,7 @@ export default class WxLogin {
107 * @param isAuthorize 是否授权:true=已授权 false=没有授权成功 111 * @param isAuthorize 是否授权:true=已授权 false=没有授权成功
108 */ 112 */
109 private handleLogin(data: any, resolve: any, isAuthorize: boolean) { 113 private handleLogin(data: any, resolve: any, isAuthorize: boolean) {
110 - // console.log("登录请求结果data", data)  
111 -  
112 - console.log("-----login5-------") 114 + console.log("登录请求结果data"+JSON.stringify(data))
113 if (data) { 115 if (data) {
114 // 设置登录信息 116 // 设置登录信息
115 if (data.data) { 117 if (data.data) {
@@ -135,13 +137,11 @@ export default class WxLogin { @@ -135,13 +137,11 @@ export default class WxLogin {
135 } 137 }
136 try { //修改时间后会报错,未找到原因 138 try { //修改时间后会报错,未找到原因
137 this.handleExpire(expire) 139 this.handleExpire(expire)
  140 + // 支付宝会报错,如有自定义分享请解决
  141 + // ShareVideoService.I.forward()
138 } catch (error) { 142 } catch (error) {
139 console.log("handleExpire_error", error) 143 console.log("handleExpire_error", error)
140 } 144 }
141 - // 支付宝没有  
142 - if(typeof my == 'undefined'){  
143 - ShareVideoService.I.forward()  
144 - }  
145 } 145 }
146 } 146 }
147 resolve(data) 147 resolve(data)
@@ -209,11 +209,7 @@ export default class WxLogin { @@ -209,11 +209,7 @@ export default class WxLogin {
209 refToken: reftoken, 209 refToken: reftoken,
210 expire, 210 expire,
211 }); 211 });
212 - try { //修改时间后会报错,未找到原因  
213 - this.handleExpire(expire)  
214 - } catch (error) {  
215 - console.log("handleExpire_error", error)  
216 - } 212 + this.handleExpire(expire)
217 }) 213 })
218 } 214 }
219 215
wxsdk/wx/WxPay.ts
@@ -23,8 +23,7 @@ export default class WxPay { @@ -23,8 +23,7 @@ export default class WxPay {
23 offerId: OfferId, 23 offerId: OfferId,
24 currencyType: CurrencyType, 24 currencyType: CurrencyType,
25 buyQuantity: params.money / 10, 25 buyQuantity: params.money / 10,
26 - zoneId: ZoneId,  
27 - outTradeNo:params.orderid 26 + zoneId: ZoneId
28 }; 27 };
29 let extend = ""; 28 let extend = "";
30 for (let key in opts) { 29 for (let key in opts) {
@@ -49,7 +48,7 @@ export default class WxPay { @@ -49,7 +48,7 @@ export default class WxPay {
49 WxApi.I.requestMidasPayment(pms) 48 WxApi.I.requestMidasPayment(pms)
50 .then(() => this.handlePaySuccess({ ...params, platform }, opts, resolve, reject)) 49 .then(() => this.handlePaySuccess({ ...params, platform }, opts, resolve, reject))
51 .catch(err => this.handlePayError({ ...params, platform }, opts, err, reject)); 50 .catch(err => this.handlePayError({ ...params, platform }, opts, err, reject));
52 - } else { 51 + }else{
53 reject(res); 52 reject(res);
54 } 53 }
55 }) 54 })
@@ -91,7 +90,7 @@ export default class WxPay { @@ -91,7 +90,7 @@ export default class WxPay {
91 } 90 }
92 91
93 private handlePayError(data: { payid: string, goodid: string, money: number; orderid: string, platform: string }, opts, err: any, reject: any) { 92 private handlePayError(data: { payid: string, goodid: string, money: number; orderid: string, platform: string }, opts, err: any, reject: any) {
94 - console.log("handlePayError支付失败", JSON.stringify(err)); 93 + console.log("支付失败", JSON.stringify(err));
95 let type = 2; 94 let type = 2;
96 if (err.errCode + '' == '1') { 95 if (err.errCode + '' == '1') {
97 type = 3; 96 type = 3;
wxsdk/wx/WxSystem.ts
@@ -3,7 +3,8 @@ export default class WxSystem { @@ -3,7 +3,8 @@ export default class WxSystem {
3 private data: SystemInfoSyncReturnValue; 3 private data: SystemInfoSyncReturnValue;
4 4
5 private constructor() { 5 private constructor() {
6 - this.data = wx.getSystemInfoSync(); 6 + this.data = my.getSystemInfoSync();
  7 + // console.log('WxSystem',this.data)
7 } 8 }
8 9
9 get SystemData() { 10 get SystemData() {
@@ -42,7 +43,8 @@ export default class WxSystem { @@ -42,7 +43,8 @@ export default class WxSystem {
42 } 43 }
43 44
44 get SDKVersion() { 45 get SDKVersion() {
45 - return this.data.SDKVersion || this.data.version; 46 + //version 是支付宝返回的
  47 + return this.data.SDKVersion||this.data.version;
46 } 48 }
47 49
48 get brand() { 50 get brand() {