package game import ( "server/MergeConst" "server/conf" "server/db" "server/msg" "time" ) func TriggerShippingOrder(player *Player, req *msg.ReqShippingOrder) { OrderSn := req.OrderSn Status := int(req.Status) if Status == MergeConst.ORDER_STATUS_CANCEL { // 取消支付 CancelOrder(player, OrderSn) player.PushClientRes(&msg.ResShippingOrder{ Code: msg.RES_CODE_SUCCESS, Msg: "cancel success", }) return } OrderData := &db.SqlChargeOrderStruct{} var err error for { OrderData, err = GoogleVerify(player, OrderSn, req.ProduceId, req.Token) if err != nil { time.Sleep(1 * time.Second) continue } if OrderData.PayStatus != MergeConst.ORDER_STATUS_PAY { time.Sleep(1 * time.Second) continue } if OrderData.PayStatus == MergeConst.ORDER_STATUS_PAY { break } } player.lock.Lock() defer player.lock.Unlock() Charge(player, int(OrderData.ProductId)) OrderData.PayStatus = MergeConst.ORDER_STATUS_SHIP db.UpdatePlayerChargeData(OrderData) player.PlayMod.save() orderDataMap := map[string]interface{}{ "AppId": conf.Server.AppID, "ServerId": conf.Server.ServerID, "OrderId": OrderData.OrderId, "PayChannelOrderId": OrderData.PayChannelOrderId, "ProductId": OrderData.ProductId, "CreateTime": OrderData.CreateTime, "PayTime": OrderData.PayTime, "Price": OrderData.Price, "PayType": OrderData.PayType, } player.Kafka("pay", orderDataMap) }