package pg2 import ( "encoding/json" "fmt" "server/call" "server/common" "server/config" "server/modules/web/providers/base" utils "server/util" "strconv" "time" "github.com/liangdas/mqant/log" ) type Sub struct { Base *base.Base } func NewSub(base *base.Base) { base.Sub = &Sub{Base: base} base.SubInitRouter = PG } func (s *Sub) Init() { API = APITest AgentMap = AgentMapTest if config.GetBase().Release { API = APIRlease AgentMap = AgentMapRelease } } func (s *Sub) EnterGame() string { url := fmt.Sprintf("%s/api/usr/ingame", API) timestamp := time.Now().Unix() uid := s.Base.EnterGameReq.UID token := s.Base.EnterGameReq.Token providerID := s.Base.EnterGameReq.ProviderID gameID := s.Base.EnterGameReq.GameID /** 玩家再次点击游戏,根据玩家盈利倍数(盈利倍数=(玩家余额+已提现金额)/玩家总充值金额),调取假PG不同档位的接口: 1、盈利倍数≤1,进入90%档位 2、盈利倍数1-7,进入80%档位 3、盈利倍数7-10,进入60%档位 4、盈利倍数≥10,进入30%档位 */ rechargeInfo := call.GetRechargeInfo(uid) cash := call.GetUserCurrency(uid, common.CurrencyINR) earnBet := (rechargeInfo.TotalWithdraw + cash) / rechargeInfo.TotalRecharge log.Info("uid:%d,earnBet:%d", uid, earnBet) mchid := "" key := "" if earnBet <= 7 { mchid = AgentMap[80].MchId key = AgentMap[80].Key } else if earnBet <= 10 { mchid = AgentMap[60].MchId key = AgentMap[60].Key } else { mchid = AgentMap[30].MchId key = AgentMap[30].Key } headers := map[string]string{ "X-Atgame-Mchid": mchid, "X-Atgame-Timestamp": strconv.FormatInt(timestamp, 10), "Content-Type": "application/json;charset=UTF-8", } // Generate sign game := call.GetConfigGameListByID(providerID, gameID) if game == nil { return "" } request := EnterGameRequest{ Uname: fmt.Sprintf("%d", uid), GameID: game.GameCode, Token: token, Lang: Lang, Nick: "", } body, _ := json.Marshal(request) sign := GenerateSign(string(body), timestamp, key) headers["X-Atgame-Sign"] = sign // Decode response var response EnterGameResponse err := utils.HttpPost(url, request, &response, headers) if err != nil { log.Error("err:%v", err) return "" } return response.Data.GameURL }