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
 | |
| }
 |