package game import ( "crypto/md5" "encoding/hex" "fmt" "golib.gaore.com/GaoreGo/gaore-common-sdk-go/sdk/requests" "golib.gaore.com/GaoreGo/gaore-common-sdk-go/sdk/responses" "time" ) var ( gameServerKey = "gaoreapi" ) // GetGameServerSign 子游戏区服信息,特有验签 func GetGameServerSign(gameId int) (ts int64, sign string) { ts = time.Now().Unix() hash := md5.New() hash.Write([]byte(fmt.Sprintf("%v%v%v", gameId, ts, gameServerKey))) hashBytes := hash.Sum(nil) sign = hex.EncodeToString(hashBytes) return } type GetServerIdRequest struct { *requests.RpcRequest } type GetServerIdResponse struct { *responses.BaseResponse Code int `json:"code"` Msg string `json:"msg"` Data map[string]string `json:"data"` } // CreateGetServerIdRequest // Deprecated 方法已废弃,不要用 func CreateGetServerIdRequest(gameId int) (req *GetServerIdRequest) { req = &GetServerIdRequest{ RpcRequest: &requests.RpcRequest{}, } req.InitWithApiInfo(HOST, VERSION, "/api/game/getServerId") // 获取时间戳、签名 ts, sign := GetGameServerSign(gameId) req.FormParams = map[string]string{ "appid": fmt.Sprintf("%v", gameId), "time": fmt.Sprintf("%v", ts), "sign": sign, } req.Method = requests.POST return } // CreateGetServerIdResponse // Deprecated 方法已废弃,不要用 func CreateGetServerIdResponse() (response *GetServerIdResponse) { response = &GetServerIdResponse{ BaseResponse: &responses.BaseResponse{}, } return } // --------------游戏区服v2列表查询---------- // GetServerV2Request 请求结构体 type GetServerV2Request struct { *requests.RpcRequest } type GetServerV2Response struct { *responses.BaseResponse Code int `json:"code"` Msg string `json:"msg"` Data []GameServerV2 `json:"data"` } type GameServerV2 struct { ServerId int `json:"server_id"` Name string `json:"name"` GameSign string `json:"game_sign"` ServerSign int `json:"server_sign"` } func CreateGetServerV2Request(gameSign string, serverSigns string, types string) (req *GetServerV2Request) { req = &GetServerV2Request{ RpcRequest: &requests.RpcRequest{}, } req.InitWithApiInfo(HOST, VERSION, "/api/game/getServerV2") req.FormParams = map[string]string{ "game_sign": gameSign, "server_signs": serverSigns, "types": types, } req.Method = requests.POST return } func CreateGetServerV2Response() (response *GetServerV2Response) { response = &GetServerV2Response{ BaseResponse: &responses.BaseResponse{}, } return }