108 lines
2.5 KiB
Go
108 lines
2.5 KiB
Go
|
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
|
||
|
}
|