From 8ddaa2c95dff6bc5a03d20f19650f7e4cbc64677 Mon Sep 17 00:00:00 2001 From: hahwu <31872165+hahwu@users.noreply.github.com> Date: Tue, 21 Jan 2025 14:36:32 +0800 Subject: [PATCH 1/6] =?UTF-8?q?=E5=AE=9D=E7=AE=B1=E9=9B=A8=E4=BC=98?= =?UTF-8?q?=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/server/game/RegisterNetworkFunc.go | 2 +- src/server/game/UnitTest.go | 5 ++--- src/server/game/mod/chess/Chess.go | 4 ++++ 3 files changed, 7 insertions(+), 4 deletions(-) diff --git a/src/server/game/RegisterNetworkFunc.go b/src/server/game/RegisterNetworkFunc.go index d84923e3..d854c3ba 100644 --- a/src/server/game/RegisterNetworkFunc.go +++ b/src/server/game/RegisterNetworkFunc.go @@ -249,7 +249,7 @@ func ReqRewardOrder(args []interface{}) error { ChestRainItems = []*item.Item{{Id: ItemId, Num: 1}} } if ProductLv > 0 { - Color := order.RandChessColor(ChessMod.GetOrderEmit()) + Color := order.RandChessColor(ChessMod.GetEmitList()) ChessId := mergeDataCfg.GetChessIdByLvAndColor(ProductLv, Color) if ChessId == 0 { log.Error("GetChessIdByLvAndColor error color:%d, lv:%d", Color, ProductLv) diff --git a/src/server/game/UnitTest.go b/src/server/game/UnitTest.go index 7feb4a44..524f2e19 100644 --- a/src/server/game/UnitTest.go +++ b/src/server/game/UnitTest.go @@ -67,9 +67,8 @@ func UnitOrder(p *Player) error { func UnitChess(p *Player) error { ChessMod := p.PlayMod.getChessMod() - Emit := ChessMod.GetEmitList() - ChargeMod := p.PlayMod.getChargeMod() - ChargeMod.InitChessShop(Emit) + Color := order.RandChessColor(ChessMod.GetEmitList()) + fmt.Print(Color) return nil } diff --git a/src/server/game/mod/chess/Chess.go b/src/server/game/mod/chess/Chess.go index 612a5cfe..f1ad4cc8 100644 --- a/src/server/game/mod/chess/Chess.go +++ b/src/server/game/mod/chess/Chess.go @@ -234,6 +234,10 @@ func (cb *ChessBorad) GetEmitList() []int { result := make([]int, 0, len(cb.EmitList)) EM := make(map[string]int) for k, v := range cb.EmitList { + if v <= 0 { + delete(cb.EmitList, k) + continue + } EmitID := mergeDataCfg.GetEmitId(k) if EmitID == "" { continue From 2caa12d4afdb2539689776a7b58f900efc080306 Mon Sep 17 00:00:00 2001 From: hahwu <31872165+hahwu@users.noreply.github.com> Date: Tue, 21 Jan 2025 15:06:50 +0800 Subject: [PATCH 2/6] =?UTF-8?q?=E6=94=AF=E4=BB=98=E4=BC=98=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/server/game/Trigger.go | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/src/server/game/Trigger.go b/src/server/game/Trigger.go index 7d36f044..e7ada184 100644 --- a/src/server/game/Trigger.go +++ b/src/server/game/Trigger.go @@ -21,7 +21,9 @@ func TriggerShippingOrder(player *Player, req *msg.ReqShippingOrder) { } OrderData := &db.SqlChargeOrderStruct{} var err error + n := 0 for { + n++ OrderData, err = GoogleVerify(player, OrderSn, req.ProduceId, req.Token) if err != nil { time.Sleep(1 * time.Second) @@ -34,6 +36,9 @@ func TriggerShippingOrder(player *Player, req *msg.ReqShippingOrder) { if OrderData.PayStatus == MergeConst.ORDER_STATUS_PAY { break } + if n > 5 { + break + } } player.lock.Lock() defer player.lock.Unlock() From eea0ed6cdb907090286f50347d375fa116fefce8 Mon Sep 17 00:00:00 2001 From: hahwu <31872165+hahwu@users.noreply.github.com> Date: Tue, 21 Jan 2025 15:10:32 +0800 Subject: [PATCH 3/6] =?UTF-8?q?=E4=BC=98=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/server/game/Trigger.go | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/server/game/Trigger.go b/src/server/game/Trigger.go index e7ada184..ac0f2c48 100644 --- a/src/server/game/Trigger.go +++ b/src/server/game/Trigger.go @@ -5,6 +5,7 @@ import ( "server/conf" "server/db" "server/msg" + "server/pkg/github.com/name5566/leaf/log" "time" ) @@ -26,6 +27,7 @@ func TriggerShippingOrder(player *Player, req *msg.ReqShippingOrder) { n++ OrderData, err = GoogleVerify(player, OrderSn, req.ProduceId, req.Token) if err != nil { + log.Debug("GoogleVerify err:%v", err) time.Sleep(1 * time.Second) continue } From 02c916c11b54fac621bf55ce6aaedf3906dee090 Mon Sep 17 00:00:00 2001 From: hahwu <31872165+hahwu@users.noreply.github.com> Date: Tue, 21 Jan 2025 15:30:57 +0800 Subject: [PATCH 4/6] =?UTF-8?q?facebook=E4=BC=98=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/server/game/PlayerBaseMod.go | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/src/server/game/PlayerBaseMod.go b/src/server/game/PlayerBaseMod.go index f677650e..30d55535 100644 --- a/src/server/game/PlayerBaseMod.go +++ b/src/server/game/PlayerBaseMod.go @@ -241,7 +241,8 @@ func (p *PlayerBaseData) ReqBindFacebookAccount(player *Player, buf []byte) { "is_reward": false, }) } - + BaseMod := player.PlayMod.getBaseMod() + BaseMod.FackBookId = req.BindAccountId agent := player.GetAgentByPlayer() data, _ := proto.Marshal(res) G_getGameLogic().PackResInfo(agent, "ResBindFacebookAccount", data) @@ -255,7 +256,8 @@ func (p *PlayerBaseData) ReqUnBindFacebook(player *Player, buf []byte) { res.ResultCode = 0 res.BindAccountId = req.BindAccountId p.Data.FaceBookId = "" - + BaseMod := player.PlayMod.getBaseMod() + BaseMod.FackBookId = "" agent := player.GetAgentByPlayer() data, _ := proto.Marshal(res) G_getGameLogic().PackResInfo(agent, "ResUnBindFacebook", data) @@ -304,6 +306,8 @@ func (p *PlayerBaseData) ReqOnlyBindFacebook(player *Player, buf []byte) { res.ResultCode = 0 p.Data.FaceBookId = req.BindAccountId + BaseMod := player.PlayMod.getBaseMod() + BaseMod.FackBookId = req.BindAccountId res.BindAccountId = req.BindAccountId player.TeLog("platform_connect", map[string]interface{}{ "platform_type": "facebook", From fad68b78dc4cc789617d8509a5a0fd86344726e7 Mon Sep 17 00:00:00 2001 From: hahwu <31872165+hahwu@users.noreply.github.com> Date: Tue, 21 Jan 2025 16:08:19 +0800 Subject: [PATCH 5/6] =?UTF-8?q?=E8=AE=A2=E5=8D=95=E4=BC=98=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/server/game/PlayerFunc.go | 15 ++++++++++++++- src/server/game/Trigger.go | 8 +++++--- 2 files changed, 19 insertions(+), 4 deletions(-) diff --git a/src/server/game/PlayerFunc.go b/src/server/game/PlayerFunc.go index 990c4a94..bf403ffb 100644 --- a/src/server/game/PlayerFunc.go +++ b/src/server/game/PlayerFunc.go @@ -23,6 +23,7 @@ import ( proto "server/msg" "server/pkg/github.com/name5566/leaf/log" "sort" + "strings" ) // 处理玩家异步请求 @@ -420,6 +421,11 @@ func GoogleVerify(p *Player, OrderSn, ProduceId, Token string) (*db.SqlChargeOrd if err != nil { return nil, err } + // 将输出转换为字符串 + outputStr := string(output) + + // 替换单引号为双引号 + outputStr = strings.Replace(outputStr, "'", "\"", -1) type VerifyData struct { PurchaseState int `json:"purchaseState"` DeveloperPayload string `json:"developerPayload"` @@ -427,7 +433,14 @@ func GoogleVerify(p *Player, OrderSn, ProduceId, Token string) (*db.SqlChargeOrd ConsumptionState int `json:"consumptionState"` } r := &VerifyData{} - json.Unmarshal(output, r) + err = json.Unmarshal([]byte(outputStr), &r) + if err != nil { + log.Debug("output %s", string(output)) + return nil, err + } + if r.DeveloperPayload != OrderSn { + return nil, fmt.Errorf("订单号不匹配") + } if r.ConsumptionState != 1 { return nil, fmt.Errorf("订单未消费") } diff --git a/src/server/game/Trigger.go b/src/server/game/Trigger.go index ac0f2c48..1cc4d123 100644 --- a/src/server/game/Trigger.go +++ b/src/server/game/Trigger.go @@ -25,6 +25,9 @@ func TriggerShippingOrder(player *Player, req *msg.ReqShippingOrder) { n := 0 for { n++ + if n > 5 { + break + } OrderData, err = GoogleVerify(player, OrderSn, req.ProduceId, req.Token) if err != nil { log.Debug("GoogleVerify err:%v", err) @@ -38,10 +41,9 @@ func TriggerShippingOrder(player *Player, req *msg.ReqShippingOrder) { if OrderData.PayStatus == MergeConst.ORDER_STATUS_PAY { break } - if n > 5 { - break - } + } + log.Debug("[order verify success] Uid:%d;OrderSn:%s;PayOrder:%s;", player.M_DwUin, OrderData.OrderId, OrderData.PayChannelOrderId) player.lock.Lock() defer player.lock.Unlock() Charge(player, int(OrderData.ProductId)) From 06f177031b842a715891d5df0d941603c436f134 Mon Sep 17 00:00:00 2001 From: hahwu <31872165+hahwu@users.noreply.github.com> Date: Tue, 21 Jan 2025 16:14:59 +0800 Subject: [PATCH 6/6] =?UTF-8?q?=E8=AE=A2=E5=8D=95=E6=94=AF=E4=BB=98?= =?UTF-8?q?=E4=BC=98=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/server/game/Trigger.go | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/src/server/game/Trigger.go b/src/server/game/Trigger.go index 1cc4d123..0d5a38be 100644 --- a/src/server/game/Trigger.go +++ b/src/server/game/Trigger.go @@ -43,6 +43,9 @@ func TriggerShippingOrder(player *Player, req *msg.ReqShippingOrder) { } } + if OrderData == nil { + return + } log.Debug("[order verify success] Uid:%d;OrderSn:%s;PayOrder:%s;", player.M_DwUin, OrderData.OrderId, OrderData.PayChannelOrderId) player.lock.Lock() defer player.lock.Unlock() @@ -62,4 +65,5 @@ func TriggerShippingOrder(player *Player, req *msg.ReqShippingOrder) { "PayType": OrderData.PayType, } player.Kafka("pay", orderDataMap) + player.SendClientRes() }