This commit is contained in:
YZ\249929363 2025-08-08 16:19:10 +08:00
parent 753d4c6a9a
commit c336935589
4 changed files with 57 additions and 41 deletions

View File

@ -110,7 +110,7 @@ export default class Revive extends cc.Component {
else if (data.code == 2) {
this.closeLoad();
console.log("轮训超时");
MiniGameSdk.API.showToast("订单已关闭");
MiniGameSdk.API.showToast("请检查网络,如充值成功,请重新登录领取");
const dataFail = {
outTradeNo: iosOutTradeNo,
pay_amount: iosAmount,

View File

@ -203,49 +203,64 @@ export default class Utils {
}
});
}
// static getIosPayInfo(order, callBack) {
// // 延迟时间数组,按照 1 秒 3 次、2 秒 5 次、5 秒 6 次、15 秒 5 次的规则生成
// const iosOutTradeNo = order;
// console.log("请求uid:" + Utils.uid);
// console.log("outTradeNo:" + iosOutTradeNo);
// Utils.POST("wx/iosgetPayInfo", { outTradeNo: iosOutTradeNo }, res => {
// console.log("查询字符结果IOS");
// console.log(res);
// if (res.code === 1) {
// callBack(res);
// } else {
// callBack(res);
// }
// });
// }
static getIosPayInfo(order, callBack) {
// 延迟时间数组,按照 1 秒 3 次、2 秒 5 次、5 秒 6 次、15 秒 5 次的规则生成
const delays = [
...Array(3).fill(1000),
...Array(5).fill(2000),
...Array(6).fill(5000),
...Array(5).fill(10000)
];
let attempt = 0; // 轮询次数
const iosOutTradeNo = order;
const poll = () => {
if (attempt >= delays.length) {
MiniGameSdk.API.showToast("网络异常,如充值成功,重进游戏可领取奖励");
callBack({ code: 2, data: null, message: '轮询超时' });
return;
}
//console.log("请求uid:" + Utils.uid);
//console.log("outTradeNo:" + iosOutTradeNo);
Utils.POST("wx/iosgetPayInfo", { outTradeNo: iosOutTradeNo }, res => {
console.log("查询字符结果IOS");
console.log(res);
if (res.code === 1) {
callBack(res);
} else if (res.code === 0) {
callBack(res);
}
else {
attempt++;
setTimeout(poll, delays[attempt - 1]);
}
});
};
// 延迟 0.5 秒执行后续逻辑
setTimeout(() => {
poll();
// 最大重试次数
const maxRetries = 3;
let retryCount = 0;
// 标志位,用于记录 callBack 是否已经被调用
let isCallBackCalled = false;
const makeRequest = () => {
if (retryCount > maxRetries) {
if (!isCallBackCalled) {
MiniGameSdk.API.showToast("网络异常,如充值成功,重进游戏可领取奖励");
callBack({ code: 2, data: null, message: '轮询超时,达到最大重试次数' });
isCallBackCalled = true;
}
return;
}
// 设置超时定时器
const timeoutId = setTimeout(() => {
retryCount++;
console.log(`请求超时,第 ${retryCount} 次重新申请接口`);
makeRequest();
}, 3000);
const iosOutTradeNo = order;
console.log("请求uid:" + Utils.uid);
console.log("outTradeNo:" + iosOutTradeNo);
Utils.POST("wx/iosgetPayInfo", { outTradeNo: iosOutTradeNo }, res => {
console.log("查询字符结果IOS");
console.log(res);
// 清除超时定时器
clearTimeout(timeoutId);
if (!isCallBackCalled) {
callBack(res);
isCallBackCalled = true;
}
});
};
makeRequest();
}, 500);
}
//#endregion
//#region 微信云

View File

@ -119,6 +119,7 @@ export default class NewClass extends cc.Component {
else if (data.code == 2) {
this.closeLoad();
console.log("轮训超时");
MiniGameSdk.API.showToast("请检查网络,如充值成功,请重新登录领取");
// MiniGameSdk.API.showToast("订单已关闭");
const dataFail = {
outTradeNo: iosOutTradeNo,

View File

@ -285,7 +285,7 @@ export default class NewClass extends cc.Component {
else if (data.code == 2) {
this.closeLoad();
console.log("轮训超时");
MiniGameSdk.API.showToast("订单已关闭");
MiniGameSdk.API.showToast("请检查网络,如充值成功,请重新登录领取");
const dataFail = {
outTradeNo: iosOutTradeNo,
pay_amount: iosAmount,