From c9a3ab1d1459b203e18daf9d114b76144da4bcf1 Mon Sep 17 00:00:00 2001 From: chenxi Date: Thu, 8 Jun 2023 17:30:16 +0800 Subject: [PATCH 01/12] =?UTF-8?q?=E5=90=AF=E5=8A=A8=E7=95=8C=E9=9D=A2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- lua/app/first/first.lua | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/lua/app/first/first.lua b/lua/app/first/first.lua index 81d15463..c98aabf4 100644 --- a/lua/app/first/first.lua +++ b/lua/app/first/first.lua @@ -145,7 +145,9 @@ function First:initLaunchRequester() -- 多选对话框 lr:SetShowDialogComplexAction(function(eCode, okCallback, cancelCallback) local str = self.dialogStr[eCode] or "" - if eCode == 1 or eCode == 6 then -- 前往商店的时候设置一下确认按钮的文本 + if eCode == 1 then -- 强制前往商店的时候设置一下确认按钮的文本 + self:showDialog(str, okCallback, self.strGoto) + elseif eCode == 6 then -- 建议前往商店的时候设置一下确认按钮的文本 self:showDialogComplex(str, okCallback, cancelCallback, self.strGoto) else self:showDialogComplex(str, okCallback, cancelCallback) @@ -493,10 +495,10 @@ function First:setSliderPercentText(value) end -- 显示对话框, ok -function First:showDialog(contentStr, callback) +function First:showDialog(contentStr, callback, confirmStr) self.dialogTrans.gameObject:SetActive(true) self.contentText.text = contentStr - self.confirmText.text = self.strOK + self.confirmText.text = confirmStr or self.strOK self.confirmCallback = callback self.cancelBtnTrans.gameObject:SetActive(false) self.confirmBtnTrans.localPosition = { @@ -515,7 +517,7 @@ function First:showDialogComplex(contentStr, okCallback, cancelCallback, confirm self.cancelCallback = cancelCallback self.cancelBtnTrans.gameObject:SetActive(true) self.confirmBtnTrans.localPosition = { - x = 124, + x = -124, y = -120, z = 0 } From c56d52f640146991eac345a5774c2745c997dc61 Mon Sep 17 00:00:00 2001 From: chenxi Date: Thu, 8 Jun 2023 18:29:17 +0800 Subject: [PATCH 02/12] fix bug --- lua/app/ui/main_city/component/chapter_comp.lua | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lua/app/ui/main_city/component/chapter_comp.lua b/lua/app/ui/main_city/component/chapter_comp.lua index 182ac533..004f252e 100644 --- a/lua/app/ui/main_city/component/chapter_comp.lua +++ b/lua/app/ui/main_city/component/chapter_comp.lua @@ -146,7 +146,7 @@ function ChapterComp:refreshChapter(force) objs.box:addClickListener(function() if needWave <= curMaxWave and not rewardGot then objs.spineObj:setVisible(true) - objs.spineObj:playAnimComplete("open", true, false, function() + objs.spineObj:playAnimComplete("open", false, false, function() ModuleManager.ChapterManager:openBox(rewardChapterId, index) end) else From 339d005e7345950ec3823d0d9c6b0e584a529676 Mon Sep 17 00:00:00 2001 From: chenxi Date: Fri, 9 Jun 2023 11:46:47 +0800 Subject: [PATCH 03/12] =?UTF-8?q?=E5=B9=B3=E5=8F=B0=E5=90=8D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- lua/app/common/platform.lua | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lua/app/common/platform.lua b/lua/app/common/platform.lua index d4ae73f9..4ac16406 100644 --- a/lua/app/common/platform.lua +++ b/lua/app/common/platform.lua @@ -87,7 +87,7 @@ end function Platform:getPlatformStr() if self.platformStr == nil then if self:isIosPlatform() then - self.platformStr = "IOS" + self.platformStr = "iOS" elseif self:isAndroidPlatform() then self.platformStr = "Android" else From c300705012af5ac056d742eb9b12c1618785a657 Mon Sep 17 00:00:00 2001 From: chenxi Date: Fri, 9 Jun 2023 15:07:37 +0800 Subject: [PATCH 04/12] proto --- lua/app/proto/proto_msg_type.lua | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) diff --git a/lua/app/proto/proto_msg_type.lua b/lua/app/proto/proto_msg_type.lua index 5a3e7739..ab4849b5 100644 --- a/lua/app/proto/proto_msg_type.lua +++ b/lua/app/proto/proto_msg_type.lua @@ -23,6 +23,8 @@ local ProtoMsgType = { [613795629] = "WatchADRsp", [737107384] = "BuyMallIdleReq", [737109217] = "BuyMallIdleRsp", + [834139466] = "ChapterGoldChallengeStartReq", + [834141299] = "ChapterGoldChallengeStartRsp", [1008447203] = "DeleteReq", [1008449036] = "DeleteRsp", [1068769299] = "ReconnectReq", @@ -31,6 +33,8 @@ local ProtoMsgType = { [1070843294] = "LoginRsp", [1433352538] = "ChapterDailyChallengeResetReq", [1433354371] = "ChapterDailyChallengeResetRsp", + [1435947790] = "AppStorePaidReq", + [1435949623] = "AppStorePaidRsp", [1471116409] = "BindReq", [1471118242] = "BindRsp", [1584689751] = "ActPaidResultReq", @@ -83,6 +87,8 @@ local ProtoMsgType = { [3309820798] = "HeroPutOnReq", [3309822631] = "HeroPutOnRsp", [3341173994] = "BountyBoughtNtf", + [3359969683] = "ChapterGoldChallengeSettlementReq", + [3359971516] = "ChapterGoldChallengeSettlementRsp", [3363939655] = "TaskDailyAdReq", [3363941488] = "TaskDailyAdRsp", [3421550443] = "GlobalGiftReq", @@ -112,6 +118,8 @@ local ProtoMsgType = { [3933877450] = "ChapterStartRsp", [4106156009] = "BountyLevelUnlockReq", [4106157842] = "BountyLevelUnlockRsp", + [4133057746] = "ChapterGoldChallengeFarmReq", + [4133059579] = "ChapterGoldChallengeFarmRsp", [4256333947] = "ExistReq", [4256335780] = "ExistRsp", }, @@ -139,6 +147,8 @@ local ProtoMsgType = { WatchADRsp = 613795629, BuyMallIdleReq = 737107384, BuyMallIdleRsp = 737109217, + ChapterGoldChallengeStartReq = 834139466, + ChapterGoldChallengeStartRsp = 834141299, DeleteReq = 1008447203, DeleteRsp = 1008449036, ReconnectReq = 1068769299, @@ -147,6 +157,8 @@ local ProtoMsgType = { LoginRsp = 1070843294, ChapterDailyChallengeResetReq = 1433352538, ChapterDailyChallengeResetRsp = 1433354371, + AppStorePaidReq = 1435947790, + AppStorePaidRsp = 1435949623, BindReq = 1471116409, BindRsp = 1471118242, ActPaidResultReq = 1584689751, @@ -199,6 +211,8 @@ local ProtoMsgType = { HeroPutOnReq = 3309820798, HeroPutOnRsp = 3309822631, BountyBoughtNtf = 3341173994, + ChapterGoldChallengeSettlementReq = 3359969683, + ChapterGoldChallengeSettlementRsp = 3359971516, TaskDailyAdReq = 3363939655, TaskDailyAdRsp = 3363941488, GlobalGiftReq = 3421550443, @@ -228,6 +242,8 @@ local ProtoMsgType = { ChapterStartRsp = 3933877450, BountyLevelUnlockReq = 4106156009, BountyLevelUnlockRsp = 4106157842, + ChapterGoldChallengeFarmReq = 4133057746, + ChapterGoldChallengeFarmRsp = 4133059579, ExistReq = 4256333947, ExistRsp = 4256335780, }, @@ -255,6 +271,8 @@ local ProtoMsgType = { WatchADRsp = "WatchADRsp", BuyMallIdleReq = "BuyMallIdleReq", BuyMallIdleRsp = "BuyMallIdleRsp", + ChapterGoldChallengeStartReq = "ChapterGoldChallengeStartReq", + ChapterGoldChallengeStartRsp = "ChapterGoldChallengeStartRsp", DeleteReq = "DeleteReq", DeleteRsp = "DeleteRsp", ReconnectReq = "ReconnectReq", @@ -263,6 +281,8 @@ local ProtoMsgType = { LoginRsp = "LoginRsp", ChapterDailyChallengeResetReq = "ChapterDailyChallengeResetReq", ChapterDailyChallengeResetRsp = "ChapterDailyChallengeResetRsp", + AppStorePaidReq = "AppStorePaidReq", + AppStorePaidRsp = "AppStorePaidRsp", BindReq = "BindReq", BindRsp = "BindRsp", ActPaidResultReq = "ActPaidResultReq", @@ -315,6 +335,8 @@ local ProtoMsgType = { HeroPutOnReq = "HeroPutOnReq", HeroPutOnRsp = "HeroPutOnRsp", BountyBoughtNtf = "BountyBoughtNtf", + ChapterGoldChallengeSettlementReq = "ChapterGoldChallengeSettlementReq", + ChapterGoldChallengeSettlementRsp = "ChapterGoldChallengeSettlementRsp", TaskDailyAdReq = "TaskDailyAdReq", TaskDailyAdRsp = "TaskDailyAdRsp", GlobalGiftReq = "GlobalGiftReq", @@ -344,6 +366,8 @@ local ProtoMsgType = { ChapterStartRsp = "ChapterStartRsp", BountyLevelUnlockReq = "BountyLevelUnlockReq", BountyLevelUnlockRsp = "BountyLevelUnlockRsp", + ChapterGoldChallengeFarmReq = "ChapterGoldChallengeFarmReq", + ChapterGoldChallengeFarmRsp = "ChapterGoldChallengeFarmRsp", ExistReq = "ExistReq", ExistRsp = "ExistRsp", }, From 1ddb7bd43bb019e837375421e8e6bda09a4d3471 Mon Sep 17 00:00:00 2001 From: xiekaidong Date: Fri, 9 Jun 2023 16:08:22 +0800 Subject: [PATCH 05/12] =?UTF-8?q?ios=E6=94=AF=E4=BB=98=E5=A4=84=E7=90=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- lua/app/common/pay_manager.lua | 40 +++++++++++++++++----- lua/app/common/sdk_manager.lua | 16 +++++++-- lua/app/common/sdk_pay_default_manager.lua | 2 +- lua/app/common/sdk_pay_google_manager.lua | 6 ++-- lua/app/common/sdk_pay_ios_manager.lua | 18 +++++++--- lua/app/net/net_manager.lua | 11 ++++-- 6 files changed, 72 insertions(+), 21 deletions(-) diff --git a/lua/app/common/pay_manager.lua b/lua/app/common/pay_manager.lua index 61fe559d..9acf822c 100644 --- a/lua/app/common/pay_manager.lua +++ b/lua/app/common/pay_manager.lua @@ -136,6 +136,9 @@ end function PayManager:requestRewards(purchaseToken, orderId, originOrderId, notShowRewardsBox) self:sendMsgToServer(purchaseToken, orderId, function(binder, msgData) if msgData.status == 0 then + if Platform:isIosPlatform() then + SDKManager:delIosPayInfo(purchaseToken) + end local showRewards = not notShowRewardsBox if DataManager.TutorialData and DataManager.TutorialData:getIsInTutorial() then -- 引导时不弹 showRewards = false @@ -204,7 +207,7 @@ function PayManager:checkAndPay(productId, id, purchaseType, rechargeId) if msgData.uuid and msgData.uuid ~= GConst.EMPTY_STRING then local giftType = PayManager:getGiftType(purchaseType, id) BIReport:postPayTurn(giftType, id, rechargeId) - SDKManager:pay(productId, msgData.uuid, rechargeId, giftType, id, function(purchaseToken, orderId, originOrderId) + SDKManager:pay(productId, msgData.uuid, rechargeId, giftType, purchaseType, id, function(purchaseToken, orderId, originOrderId) if purchaseToken and orderId then self:requestRewards(purchaseToken, orderId, originOrderId) end @@ -229,15 +232,34 @@ function PayManager:checkAndPay(productId, id, purchaseType, rechargeId) end function PayManager:sendMsgToServer(purchaseToken, orderId, callback) - local args = { - uuid = {orderId}, - channel = SDKManager:getSDKPayType(), - pay_token = purchaseToken - } - if EDITOR_MODE then - args.channel = SDKManager.PAY_TYPE.DEBUG + if Platform:isIosPlatform() then + local payParams = SDKManager:getIosPayInfo(purchaseToken) + if not payParams or not payParams.order then + return -- 支付错误 + end + local info = string.split(payParams.order, "|") + local gift_type = tonumber(info[1]) + local gift_id = tonumber(info[2]) + if not gift_id or not gift_id then + return -- 解析错误 + end + local args = { + id = gift_id, + act_type = gift_type, + pay_token = purchaseToken + } + self:sendMessage(ProtoMsgType.FromMsgEnum.AppStorePaidReq, args, {}, callback) + else + local args = { + uuid = {orderId}, + channel = SDKManager:getSDKPayType(), + pay_token = purchaseToken + } + if EDITOR_MODE then + args.channel = SDKManager.PAY_TYPE.DEBUG + end + self:sendMessage(ProtoMsgType.FromMsgEnum.ActPaidResultReq, args, {}, callback) end - self:sendMessage(ProtoMsgType.FromMsgEnum.ActPaidResultReq, args, {}, callback) end return PayManager \ No newline at end of file diff --git a/lua/app/common/sdk_manager.lua b/lua/app/common/sdk_manager.lua index 5707f474..94e67e2b 100644 --- a/lua/app/common/sdk_manager.lua +++ b/lua/app/common/sdk_manager.lua @@ -166,14 +166,26 @@ function SDKManager:checkPay(productId, callback) end -- 支付 -function SDKManager:pay(productId, orderId, rechargeId, giftType, giftId, callback) - SDKPayMgr:pay(productId, orderId, rechargeId, giftType, giftId, callback) +function SDKManager:pay(productId, orderId, rechargeId, giftType, purchaseType, giftId, callback) + SDKPayMgr:pay(productId, orderId, rechargeId, giftType, purchaseType, giftId, callback) end function SDKManager:doUncompletePay(callback) SDKPayMgr:doUncompletePay(callback) end +function SDKManager:getIosPayInfo(transactionID) + if SDKPayMgr.getIosPayInfo then + return SDKPayMgr:getIosPayInfo(transactionID) + end +end + +function SDKManager:delIosPayInfo(transactionID) + if SDKPayMgr.delIosPayInfo then + return SDKPayMgr:delIosPayInfo(transactionID) + end +end + -- 支付相关接口 ********************************************************************** 结束 -- 获取设备语言 diff --git a/lua/app/common/sdk_pay_default_manager.lua b/lua/app/common/sdk_pay_default_manager.lua index 924a07ac..67b66ced 100644 --- a/lua/app/common/sdk_pay_default_manager.lua +++ b/lua/app/common/sdk_pay_default_manager.lua @@ -45,7 +45,7 @@ function SDKPayDefaultManager:checkPay(productId, callback) end -- 支付 -function SDKPayDefaultManager:pay(productId, orderId, rechargeId, giftType, giftId, callback) +function SDKPayDefaultManager:pay(productId, orderId, rechargeId, giftType, purchaseType, giftId, callback) callback("", orderId) end diff --git a/lua/app/common/sdk_pay_google_manager.lua b/lua/app/common/sdk_pay_google_manager.lua index 1925a878..89217f8e 100644 --- a/lua/app/common/sdk_pay_google_manager.lua +++ b/lua/app/common/sdk_pay_google_manager.lua @@ -313,8 +313,8 @@ function SDKPayGoogleManager:checkPay(productId, callback) end -- 支付 -function SDKPayGoogleManager:pay(productId, orderId, rechargeId, giftType, giftId, callback) - self:doGooglePay(productId, orderId, rechargeId, giftType, giftId, callback) +function SDKPayGoogleManager:pay(productId, orderId, rechargeId, giftType, purchaseType, giftId, callback) + self:doGooglePay(productId, orderId, rechargeId, giftType, purchaseType, giftId, callback) end -- 连接Google商店 @@ -326,7 +326,7 @@ function SDKPayGoogleManager:connectGoogleStore(callback) end) end -function SDKPayGoogleManager:doGooglePay(productId, orderId, rechargeId, giftType, giftId, callback) +function SDKPayGoogleManager:doGooglePay(productId, orderId, rechargeId, giftType, purchaseType, giftId, callback) local payType = PAY_TYPE_IN_APP local rechargeCfg = ConfigManager:getConfig("recharge")[rechargeId] if rechargeCfg.subscribe then diff --git a/lua/app/common/sdk_pay_ios_manager.lua b/lua/app/common/sdk_pay_ios_manager.lua index 8709471b..117d2893 100644 --- a/lua/app/common/sdk_pay_ios_manager.lua +++ b/lua/app/common/sdk_pay_ios_manager.lua @@ -227,8 +227,8 @@ function SDKPayiOSManager:checkPay(productId, callback) end -- 支付 -function SDKPayiOSManager:pay(productId, orderId, rechargeId, giftType, giftId, callback) - self:doIosPay(productId, orderId, rechargeId, giftType, giftId, callback) +function SDKPayiOSManager:pay(productId, orderId, rechargeId, giftType, purchaseType, giftId, callback) + self:doIosPay(productId, orderId, rechargeId, giftType, purchaseType, giftId, callback) end -- sdk将已完成的订单消耗掉 @@ -239,7 +239,7 @@ function SDKPayiOSManager:consumePurchase(token, callback) end end -function SDKPayiOSManager:doIosPay(productId, orderId, rechargeId, giftType, giftId, callback) +function SDKPayiOSManager:doIosPay(productId, orderId, rechargeId, giftType, purchaseType, giftId, callback) self.blockTouch = true UIManager:showWaitNet() CS.BF.BFMain.Instance.SDKMgr.IosPaySDKMgr.buyCallback = function(isSuccess, result, errorStr) @@ -252,7 +252,7 @@ function SDKPayiOSManager:doIosPay(productId, orderId, rechargeId, giftType, gif Logger.log("ios pay transactionID = %s", result.transactionID) Logger.log("ios pay hasReceipt = %s", result.hasReceipt) Logger.log("ios pay receipt = %s", result.receipt) - self:saveIosPayInfo(result.transactionID, result.receipt, orderId, productId) + self:saveIosPayInfo(result.transactionID, result.receipt, purchaseType .. "|" .. giftId, productId) if callback then callback(result.receipt, orderId, result.transactionID) end @@ -301,6 +301,16 @@ function SDKPayiOSManager:saveIosPayInfo(transactionID, receipt, order, productI LocalData:save() end +function SDKPayiOSManager:delIosPayInfo(transactionID) + self.iosPayInfos[transactionID] = nil + LocalData:setIosPayInfo(self.iosPayInfos) + LocalData:save() +end + +function SDKPayiOSManager:getIosPayInfo(transactionID) + return self.iosPayInfos[transactionID] +end + function SDKPayiOSManager:saveIosOrder(productId, order) self.iosOrders[productId] = order LocalData:setIosOrders(self.iosOrders) diff --git a/lua/app/net/net_manager.lua b/lua/app/net/net_manager.lua index 272d14ae..9bc51ae2 100644 --- a/lua/app/net/net_manager.lua +++ b/lua/app/net/net_manager.lua @@ -702,7 +702,7 @@ function NetManager:onReceive(msgId, data) if NOT_PUBLISH then Logger.printTable(responseData) end - if pbData.rewards then + if pbData.err_code == GConst.ERROR_STR.SUCCESS and pbData.rewards then local getType = receiveCallback.getType if sendMsgName == "ActPayReq" then getType = PayManager:getItemGetType(pbData.act_type, pbData.id) @@ -713,6 +713,13 @@ function NetManager:onReceive(msgId, data) break end end + elseif sendMsgName == "AppStorePaidReq" then -- ios支付上报统一处理 + if pbData.gift then + for _, gift in ipairs(pbData.gift) do + getType = PayManager:getItemGetType(gift.act_type, gift.id) + break + end + end end if EDITOR_MODE and not getType then @@ -721,7 +728,7 @@ function NetManager:onReceive(msgId, data) GFunc.addRewards(pbData.rewards, getType) end - if pbData.costs and not self:getNotAddCostsRsp(msgName) then + if pbData.err_code == GConst.ERROR_STR.SUCCESS and pbData.costs and not self:getNotAddCostsRsp(msgName) then local getType = receiveCallback.getType if sendMsgName == "ActPayReq" then getType = PayManager:getItemGetType(pbData.mall_type, pbData.id) From 89d068133eb8bb86608aa728baa33b759017dd20 Mon Sep 17 00:00:00 2001 From: chenxi Date: Fri, 9 Jun 2023 16:30:17 +0800 Subject: [PATCH 06/12] =?UTF-8?q?ios=E6=94=AF=E4=BB=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- lua/app/common/pay_manager.lua | 18 +++++-- lua/app/common/sdk_pay_ios_manager.lua | 73 ++++++++++++++------------ 2 files changed, 54 insertions(+), 37 deletions(-) diff --git a/lua/app/common/pay_manager.lua b/lua/app/common/pay_manager.lua index 9acf822c..74808b7f 100644 --- a/lua/app/common/pay_manager.lua +++ b/lua/app/common/pay_manager.lua @@ -109,6 +109,18 @@ function PayManager:getGiftConfigInfo(purchaseType, id) return cfg[id] end +function PayManager:getPackageRechargeId(purchaseType, id) + local cfgName = PayManager.PURCHARSE_TYPE_CONFIG[purchaseType] + if not cfgName then + return + end + local cfg = ConfigManager:getConfig(cfgName) + if not cfg or not cfg[id] then + return + end + return cfg[id].recharge_id +end + function PayManager:purchasePackage(id, purchaseType) local cfgName = PayManager.PURCHARSE_TYPE_CONFIG[purchaseType] if not cfgName then @@ -134,7 +146,7 @@ function PayManager:purchasePackage(id, purchaseType) end function PayManager:requestRewards(purchaseToken, orderId, originOrderId, notShowRewardsBox) - self:sendMsgToServer(purchaseToken, orderId, function(binder, msgData) + self:sendMsgToServer(purchaseToken, orderId, originOrderId, function(binder, msgData) if msgData.status == 0 then if Platform:isIosPlatform() then SDKManager:delIosPayInfo(purchaseToken) @@ -231,9 +243,9 @@ function PayManager:checkAndPay(productId, id, purchaseType, rechargeId) end) end -function PayManager:sendMsgToServer(purchaseToken, orderId, callback) +function PayManager:sendMsgToServer(purchaseToken, orderId, originOrderId, callback) if Platform:isIosPlatform() then - local payParams = SDKManager:getIosPayInfo(purchaseToken) + local payParams = SDKManager:getIosPayInfo(originOrderId) if not payParams or not payParams.order then return -- 支付错误 end diff --git a/lua/app/common/sdk_pay_ios_manager.lua b/lua/app/common/sdk_pay_ios_manager.lua index 117d2893..451ad8c6 100644 --- a/lua/app/common/sdk_pay_ios_manager.lua +++ b/lua/app/common/sdk_pay_ios_manager.lua @@ -26,39 +26,44 @@ function SDKPayiOSManager:initPay(callback) CS.BF.BFMain.Instance.SDKMgr.IosPaySDKMgr.buyCallback = function(isSuccess, result, errorStr) if isSuccess then - -- if self.handleUncompleteIosOrder then - -- local payParams = self.iosPayInfos[result.transactionID] - -- local needConsumePurchase = true - -- if payParams ~= nil and payParams.order then - -- PayManager:requestRewards(result.receipt, payParams.order) - -- needConsumePurchase = false - -- end - -- if needConsumePurchase then - -- self:delIosPayInfo(result.transactionID) - -- self:delIosOrder(result.definition.id) - -- self:consumePurchase(result.definition.id) - -- BIReport:postPayFailed(result.definition.id, result.transactionID, nil, "error order") - -- end - -- else - -- -- 回调时机太早的话,就先保存起来,等后续补单的时候一起补 - -- local order = self.iosOrders[result.definition.id] - -- if order then - -- self:saveIosPayInfo(result.transactionID, result.receipt, order, result.definition.id) - -- self:delIosOrder(result.definition.id) - -- else - -- -- 之前没有记录只能算掉单了 - -- self:delIosPayInfo(result.transactionID) - -- self:delIosOrder(result.definition.id) - -- self:consumePurchase(result.definition.id) - -- BIReport:postPayFailed(result.definition.id, result.transactionID, nil, "not have order") - -- end - -- end + if self.handleUncompleteIosOrder then + local payParams = self.iosPayInfos[result.transactionID] + local needConsumePurchase = true + if payParams ~= nil and payParams.order then + PayManager:requestRewards(result.receipt, payParams.order, result.transactionID) + needConsumePurchase = false + end + if needConsumePurchase then + self:delIosPayInfo(result.transactionID) + self:delIosOrder(result.definition.id) + self:consumePurchase(result.definition.id) + local arr = string.split(payParams.order, "|") + local giftId = tonumber(arr[2]) + local purchaseType = tonumber(arr[1]) + local giftType = PayManager:getGiftType(purchaseType, giftId) + local rechargeId = PayManager:getPackageRechargeId(purchaseType, giftId) + BIReport:postPayFailed(result.definition.id, result.transactionID, rechargeId, "error order", giftType, giftId) + end + else + -- 回调时机太早的话,就先保存起来,等后续补单的时候一起补 + local order = self.iosOrders[result.definition.id] + if order then + self:saveIosPayInfo(result.transactionID, result.receipt, order, result.definition.id) + self:delIosOrder(result.definition.id) + else + -- 之前没有记录只能算掉单了 + self:delIosPayInfo(result.transactionID) + self:delIosOrder(result.definition.id) + self:consumePurchase(result.definition.id) + BIReport:postPayFailed(result.definition.id, result.transactionID, nil, "not have order") + end + end else - -- if errorStr and errorStr ~= "" then - -- BIReport:postPayFailed(result.definition.id, result.transactionID, nil, errorStr) - -- else - -- BIReport:postPayFailed(result.definition.id, result.transactionID, nil, "1") - -- end + if errorStr and errorStr ~= "" then + BIReport:postPayFailed(result.definition.id, result.transactionID, nil, errorStr) + else + BIReport:postPayFailed(result.definition.id, result.transactionID, nil, "1") + end end end @@ -110,7 +115,7 @@ function SDKPayiOSManager:doUncompleteOrder(callback, productId) end -- 去服务器验证 if uncompleteOrder.order then - PayManager:requestRewards(uncompleteOrder.receipt, uncompleteOrder.order) + PayManager:requestRewards(uncompleteOrder.receipt, uncompleteOrder.order, uncompleteOrder.transactionID) else SDKManager:delIosPayInfo(uncompleteOrder.transactionID) SDKManager:delIosOrder(uncompleteOrder.productId) @@ -265,7 +270,7 @@ function SDKPayiOSManager:doIosPay(productId, orderId, rechargeId, giftType, pur end self:delIosOrder(productId) end - self:saveIosOrder(productId, orderId) + self:saveIosOrder(productId, purchaseType .. "|" .. giftId) CS.BF.BFMain.Instance.SDKMgr.IosPaySDKMgr:Buy(productId, orderId) end From 4e4719a51e082d3fb4e31feb5d3c4d92299da03a Mon Sep 17 00:00:00 2001 From: chenxi Date: Fri, 9 Jun 2023 16:39:45 +0800 Subject: [PATCH 07/12] =?UTF-8?q?ios=20=E6=94=AF=E4=BB=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- lua/app/common/pay_manager.lua | 5 ++++- lua/app/common/sdk_pay_google_manager.lua | 5 ++++- lua/app/common/sdk_pay_ios_manager.lua | 5 ++++- 3 files changed, 12 insertions(+), 3 deletions(-) diff --git a/lua/app/common/pay_manager.lua b/lua/app/common/pay_manager.lua index 74808b7f..f907bde9 100644 --- a/lua/app/common/pay_manager.lua +++ b/lua/app/common/pay_manager.lua @@ -145,7 +145,7 @@ function PayManager:purchasePackage(id, purchaseType) self:checkAndPay(productId, id, purchaseType, rechargeId) end -function PayManager:requestRewards(purchaseToken, orderId, originOrderId, notShowRewardsBox) +function PayManager:requestRewards(purchaseToken, orderId, originOrderId, notShowRewardsBox, callback) self:sendMsgToServer(purchaseToken, orderId, originOrderId, function(binder, msgData) if msgData.status == 0 then if Platform:isIosPlatform() then @@ -207,6 +207,9 @@ function PayManager:requestRewards(purchaseToken, orderId, originOrderId, notSho } GFunc.showMessageBox(params) end + if callback then + callback() + end end) end diff --git a/lua/app/common/sdk_pay_google_manager.lua b/lua/app/common/sdk_pay_google_manager.lua index 89217f8e..e0768cde 100644 --- a/lua/app/common/sdk_pay_google_manager.lua +++ b/lua/app/common/sdk_pay_google_manager.lua @@ -125,7 +125,10 @@ function SDKPayGoogleManager:reqPayReward(uncompleteList, productId, callback) elseif uncompleteOrder.purchaseToken then -- 去服务器验证 if uncompleteOrder.obfuscatedAccountId then - PayManager:requestRewards(uncompleteOrder.purchaseToken, uncompleteOrder.obfuscatedAccountId, uncompleteOrder.orderId, true) + PayManager:requestRewards(uncompleteOrder.purchaseToken, uncompleteOrder.obfuscatedAccountId, uncompleteOrder.orderId, true, function() + index = index + 1 + handleOrder(uncompleteList[index]) + end) else SDKManager:consumePurchase(uncompleteOrder.purchaseToken, function() index = index + 1 diff --git a/lua/app/common/sdk_pay_ios_manager.lua b/lua/app/common/sdk_pay_ios_manager.lua index 451ad8c6..fe9a0184 100644 --- a/lua/app/common/sdk_pay_ios_manager.lua +++ b/lua/app/common/sdk_pay_ios_manager.lua @@ -115,7 +115,10 @@ function SDKPayiOSManager:doUncompleteOrder(callback, productId) end -- 去服务器验证 if uncompleteOrder.order then - PayManager:requestRewards(uncompleteOrder.receipt, uncompleteOrder.order, uncompleteOrder.transactionID) + PayManager:requestRewards(uncompleteOrder.receipt, uncompleteOrder.order, uncompleteOrder.transactionID, true, function() + index = index + 1 + handleOrder(uncompleteList[index]) + end) else SDKManager:delIosPayInfo(uncompleteOrder.transactionID) SDKManager:delIosOrder(uncompleteOrder.productId) From 2fd8f49f3229d17dab2b7eb40f68ba4fdb1ccc2a Mon Sep 17 00:00:00 2001 From: chenxi Date: Fri, 9 Jun 2023 17:08:04 +0800 Subject: [PATCH 08/12] rechargeid --- lua/app/config/recharge.lua | 38 ++++++++++++++++++------------------- 1 file changed, 19 insertions(+), 19 deletions(-) diff --git a/lua/app/config/recharge.lua b/lua/app/config/recharge.lua index be154893..ffa31627 100644 --- a/lua/app/config/recharge.lua +++ b/lua/app/config/recharge.lua @@ -1,6 +1,6 @@ local recharge = { [1]={ - ["payId"]="com.knight.connect.rpg.0.99dollar", + ["payId"]="com.combo.heroes.puzzle.rpg.0.99dollar", ["price"]=0.99, ["price_cn"]=6, ["same_price"]=1, @@ -8,7 +8,7 @@ local recharge = { ["score"]=1 }, [2]={ - ["payId"]="com.knight.connect.rpg.1.99dollar", + ["payId"]="com.combo.heroes.puzzle.rpg.1.99dollar", ["price"]=1.99, ["price_cn"]=12, ["same_price"]=2, @@ -16,7 +16,7 @@ local recharge = { ["score"]=2 }, [3]={ - ["payId"]="com.knight.connect.rpg.2.99dollar", + ["payId"]="com.combo.heroes.puzzle.rpg.2.99dollar", ["price"]=2.99, ["price_cn"]=18, ["same_price"]=3, @@ -24,7 +24,7 @@ local recharge = { ["score"]=3 }, [4]={ - ["payId"]="com.knight.connect.rpg.3.99dollar", + ["payId"]="com.combo.heroes.puzzle.rpg.3.99dollar", ["price"]=3.99, ["price_cn"]=24, ["same_price"]=4, @@ -32,7 +32,7 @@ local recharge = { ["score"]=4 }, [5]={ - ["payId"]="com.knight.connect.rpg.4.99dollar", + ["payId"]="com.combo.heroes.puzzle.rpg.4.99dollar", ["price"]=4.99, ["price_cn"]=30, ["same_price"]=5, @@ -40,7 +40,7 @@ local recharge = { ["score"]=5 }, [6]={ - ["payId"]="com.knight.connect.rpg.5.99dollar", + ["payId"]="com.combo.heroes.puzzle.rpg.5.99dollar", ["price"]=5.99, ["price_cn"]=38, ["same_price"]=6, @@ -48,7 +48,7 @@ local recharge = { ["score"]=6 }, [7]={ - ["payId"]="com.knight.connect.rpg.6.99dollar", + ["payId"]="com.combo.heroes.puzzle.rpg.6.99dollar", ["price"]=6.99, ["price_cn"]=45, ["same_price"]=7, @@ -56,7 +56,7 @@ local recharge = { ["score"]=7 }, [8]={ - ["payId"]="com.knight.connect.rpg.7.99dollar", + ["payId"]="com.combo.heroes.puzzle.rpg.7.99dollar", ["price"]=7.99, ["price_cn"]=52, ["same_price"]=8, @@ -64,7 +64,7 @@ local recharge = { ["score"]=8 }, [9]={ - ["payId"]="com.knight.connect.rpg.8.99dollar", + ["payId"]="com.combo.heroes.puzzle.rpg.8.99dollar", ["price"]=8.99, ["price_cn"]=60, ["same_price"]=9, @@ -72,7 +72,7 @@ local recharge = { ["score"]=9 }, [10]={ - ["payId"]="com.knight.connect.rpg.9.99dollar", + ["payId"]="com.combo.heroes.puzzle.rpg.9.99dollar", ["price"]=9.99, ["price_cn"]=68, ["same_price"]=10, @@ -80,7 +80,7 @@ local recharge = { ["score"]=10 }, [11]={ - ["payId"]="com.knight.connect.rpg.11.99dollar", + ["payId"]="com.combo.heroes.puzzle.rpg.11.99dollar", ["price"]=11.99, ["price_cn"]=78, ["same_price"]=12, @@ -88,7 +88,7 @@ local recharge = { ["score"]=12 }, [12]={ - ["payId"]="com.knight.connect.rpg.14.99dollar", + ["payId"]="com.combo.heroes.puzzle.rpg.14.99dollar", ["price"]=14.99, ["price_cn"]=98, ["same_price"]=15, @@ -96,7 +96,7 @@ local recharge = { ["score"]=15 }, [13]={ - ["payId"]="com.knight.connect.rpg.19.99dollar", + ["payId"]="com.combo.heroes.puzzle.rpg.19.99dollar", ["price"]=19.99, ["price_cn"]=128, ["same_price"]=20, @@ -104,7 +104,7 @@ local recharge = { ["score"]=20 }, [14]={ - ["payId"]="com.knight.connect.rpg.24.99dollar", + ["payId"]="com.combo.heroes.puzzle.rpg.24.99dollar", ["price"]=24.99, ["price_cn"]=168, ["same_price"]=25, @@ -112,7 +112,7 @@ local recharge = { ["score"]=25 }, [15]={ - ["payId"]="com.knight.connect.rpg.29.99dollar", + ["payId"]="com.combo.heroes.puzzle.rpg.29.99dollar", ["price"]=29.99, ["price_cn"]=198, ["same_price"]=30, @@ -120,7 +120,7 @@ local recharge = { ["score"]=30 }, [16]={ - ["payId"]="com.knight.connect.rpg.49.99dollar", + ["payId"]="com.combo.heroes.puzzle.rpg.49.99dollar", ["price"]=49.99, ["price_cn"]=328, ["same_price"]=50, @@ -128,7 +128,7 @@ local recharge = { ["score"]=50 }, [17]={ - ["payId"]="com.knight.connect.rpg.69.99dollar", + ["payId"]="com.combo.heroes.puzzle.rpg.69.99dollar", ["price"]=69.99, ["price_cn"]=448, ["same_price"]=70, @@ -136,7 +136,7 @@ local recharge = { ["score"]=70 }, [18]={ - ["payId"]="com.knight.connect.rpg.99.99dollar", + ["payId"]="com.combo.heroes.puzzle.rpg.99.99dollar", ["price"]=99.99, ["price_cn"]=648, ["same_price"]=100, @@ -144,7 +144,7 @@ local recharge = { ["score"]=100 }, [19]={ - ["payId"]="com.knight.connect.rpg.199.99dollar", + ["payId"]="com.combo.heroes.puzzle.rpg.199.99dollar", ["price"]=199.99, ["price_cn"]=1298, ["same_price"]=200, From acccd99660e00f337ba1d3359a4a5d6cc1232733 Mon Sep 17 00:00:00 2001 From: chenxi Date: Fri, 9 Jun 2023 19:00:54 +0800 Subject: [PATCH 09/12] =?UTF-8?q?adjust=E4=BA=8B=E4=BB=B6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- lua/app/common/pay_manager.lua | 1 + lua/app/module/login/login_manager.lua | 1 - 2 files changed, 1 insertion(+), 1 deletion(-) diff --git a/lua/app/common/pay_manager.lua b/lua/app/common/pay_manager.lua index f907bde9..abb4a93f 100644 --- a/lua/app/common/pay_manager.lua +++ b/lua/app/common/pay_manager.lua @@ -187,6 +187,7 @@ function PayManager:requestRewards(purchaseToken, orderId, originOrderId, notSho if rechargeCfg then BIReport:postPurchase(rechargeCfg.price, rechargeCfg.payId, originOrderId, orderId) end + BIReport:postAdjustSimpleTrackEvent("rumq9q", {}) end -- 支付验证成功后消耗此订单 diff --git a/lua/app/module/login/login_manager.lua b/lua/app/module/login/login_manager.lua index 6aeeb8b4..b1ed2a54 100644 --- a/lua/app/module/login/login_manager.lua +++ b/lua/app/module/login/login_manager.lua @@ -19,7 +19,6 @@ end ---- 登录界面资源加载完毕后调用 function LoginManager:loginGame() -- adjust 打开应用事件识别码 - BIReport:postAdjustSimpleTrackEvent("xbszrl", {}) ModuleManager.MaincityManager:firstEnterMainCity() end From d8b335daf52f577542f3634026ee0e51c6bf1f6e Mon Sep 17 00:00:00 2001 From: chenxi Date: Mon, 12 Jun 2023 22:19:11 +0800 Subject: [PATCH 10/12] =?UTF-8?q?=E6=94=AF=E4=BB=98=E8=BD=AC=E8=8F=8A?= =?UTF-8?q?=E8=8A=B1?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- lua/app/common/sdk_pay_ios_manager.lua | 4 ++-- lua/app/global/global_const.lua | 3 ++- lua/app/ui/ui_manager.lua | 30 +++++++++++++++++++++++++- 3 files changed, 33 insertions(+), 4 deletions(-) diff --git a/lua/app/common/sdk_pay_ios_manager.lua b/lua/app/common/sdk_pay_ios_manager.lua index fe9a0184..e016700f 100644 --- a/lua/app/common/sdk_pay_ios_manager.lua +++ b/lua/app/common/sdk_pay_ios_manager.lua @@ -249,11 +249,11 @@ end function SDKPayiOSManager:doIosPay(productId, orderId, rechargeId, giftType, purchaseType, giftId, callback) self.blockTouch = true - UIManager:showWaitNet() + UIManager:showWaitPay() CS.BF.BFMain.Instance.SDKMgr.IosPaySDKMgr.buyCallback = function(isSuccess, result, errorStr) if self.blockTouch then self.blockTouch = false - UIManager:hideWaitNet() + UIManager:hideWaitPay() end if isSuccess then Logger.log("ios pay availableToPurchase = %s", result.availableToPurchase) diff --git a/lua/app/global/global_const.lua b/lua/app/global/global_const.lua index 02c84fcd..776bee8b 100644 --- a/lua/app/global/global_const.lua +++ b/lua/app/global/global_const.lua @@ -264,7 +264,8 @@ GConst.DOTWEEN_IDS = { WAIT_NET = 4, TUTORIAL = 5, TASK_TOAST = 6, - BATTLE_UI = 7 + BATTLE_UI = 7, + WAIT_PAY = 8 } GConst.MESSAGE_BOX_TYPE = { diff --git a/lua/app/ui/ui_manager.lua b/lua/app/ui/ui_manager.lua index f1c9a958..02119b18 100644 --- a/lua/app/ui/ui_manager.lua +++ b/lua/app/ui/ui_manager.lua @@ -753,6 +753,33 @@ function UIManager:getUICameraComponent() return self.uiCamera:getComponent(GConst.TYPEOF_UNITY_CLASS.CAMERA) end +function UIManager:showWaitPay() + if self.waitNetCount == 0 then + if self.waitPaySeq == nil then + local seq = DOTweenManager:createSeqWithIntId(GConst.DOTWEEN_IDS.WAIT_PAY) + seq:SetAutoKill(false) + seq:AppendInterval(1) + seq:AppendCallback(function() + self.netCanvas:setActive(true) + end) + self.waitPaySeq = seq + elseif not self.waitPaySeq:IsPlaying() then + self.waitPaySeq:Restart() + end + end + self.waitNetCount = self.waitNetCount + 1 + self:disableTouch() +end + +function UIManager:hideWaitPay() + self:hideWaitNet() + if self.waitNetCount <= 0 then + if self.waitPaySeq then + self.waitPaySeq:Pause() + end + end +end + function UIManager:showWaitNet(forceRestart) if self.waitNetCount == 0 or forceRestart then if self.waitNetSeq == nil then @@ -1183,7 +1210,8 @@ if NOT_PUBLISH then [BaseUI.disableUITouch] = true, [BaseScene.disableTouch] = true, [UIManager.showLoading] = true, - [UIManager.showWaitNet] = true + [UIManager.showWaitNet] = true, + [UIManager.showWaitPay] = true } end local currFunc = debug.getinfo(2, "f").func From 1b27a8dfae82795793a2fcbcb2069df7bb645b02 Mon Sep 17 00:00:00 2001 From: chenxi Date: Tue, 13 Jun 2023 18:05:16 +0800 Subject: [PATCH 11/12] =?UTF-8?q?ios=E6=94=AF=E4=BB=98=E5=8F=82=E6=95=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- lua/app/common/pay_manager.lua | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/lua/app/common/pay_manager.lua b/lua/app/common/pay_manager.lua index abb4a93f..df7be623 100644 --- a/lua/app/common/pay_manager.lua +++ b/lua/app/common/pay_manager.lua @@ -259,10 +259,14 @@ function PayManager:sendMsgToServer(purchaseToken, orderId, originOrderId, callb if not gift_id or not gift_id then return -- 解析错误 end + local purchaseTokenObj = json.decode(purchaseToken) + if purchaseTokenObj == nil then + return -- 解析错误 + end local args = { id = gift_id, act_type = gift_type, - pay_token = purchaseToken + pay_token = purchaseTokenObj.Payload } self:sendMessage(ProtoMsgType.FromMsgEnum.AppStorePaidReq, args, {}, callback) else From 02cdb96b4b5ecec28b8eeb960c87a75b33622665 Mon Sep 17 00:00:00 2001 From: chenxi Date: Tue, 13 Jun 2023 18:19:01 +0800 Subject: [PATCH 12/12] =?UTF-8?q?ios=E6=94=AF=E4=BB=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- lua/app/common/pay_manager.lua | 35 ++++++++++------------------------ 1 file changed, 10 insertions(+), 25 deletions(-) diff --git a/lua/app/common/pay_manager.lua b/lua/app/common/pay_manager.lua index df7be623..68228074 100644 --- a/lua/app/common/pay_manager.lua +++ b/lua/app/common/pay_manager.lua @@ -248,38 +248,23 @@ function PayManager:checkAndPay(productId, id, purchaseType, rechargeId) end function PayManager:sendMsgToServer(purchaseToken, orderId, originOrderId, callback) + local args = { + uuid = {orderId}, + channel = SDKManager:getSDKPayType(), + } if Platform:isIosPlatform() then - local payParams = SDKManager:getIosPayInfo(originOrderId) - if not payParams or not payParams.order then - return -- 支付错误 - end - local info = string.split(payParams.order, "|") - local gift_type = tonumber(info[1]) - local gift_id = tonumber(info[2]) - if not gift_id or not gift_id then - return -- 解析错误 - end local purchaseTokenObj = json.decode(purchaseToken) if purchaseTokenObj == nil then return -- 解析错误 end - local args = { - id = gift_id, - act_type = gift_type, - pay_token = purchaseTokenObj.Payload - } - self:sendMessage(ProtoMsgType.FromMsgEnum.AppStorePaidReq, args, {}, callback) + args.pay_token = purchaseTokenObj.Payload else - local args = { - uuid = {orderId}, - channel = SDKManager:getSDKPayType(), - pay_token = purchaseToken - } - if EDITOR_MODE then - args.channel = SDKManager.PAY_TYPE.DEBUG - end - self:sendMessage(ProtoMsgType.FromMsgEnum.ActPaidResultReq, args, {}, callback) + args.pay_token = purchaseToken end + if EDITOR_MODE then + args.channel = SDKManager.PAY_TYPE.DEBUG + end + self:sendMessage(ProtoMsgType.FromMsgEnum.ActPaidResultReq, args, {}, callback) end return PayManager \ No newline at end of file