Merge branch 'master' of https://golib.gaore.com/GaoreGo/gaore-common-sdk-go
This commit is contained in:
		
						commit
						85ab17cfd6
					
				@ -18,38 +18,40 @@ func signRpcRequest(request requests.AcsRequest, signer Signer) (err error) {
 | 
			
		||||
	if err != nil {
 | 
			
		||||
		return
 | 
			
		||||
	}
 | 
			
		||||
	if _, isContainsSign := request.GetQueryParams()["sign"]; isContainsSign {
 | 
			
		||||
		delete(request.GetQueryParams(), "sign")
 | 
			
		||||
	if signer != nil {
 | 
			
		||||
		if _, isContainsSign := request.GetQueryParams()["sign"]; isContainsSign {
 | 
			
		||||
			delete(request.GetQueryParams(), "sign")
 | 
			
		||||
		}
 | 
			
		||||
		stringToSign := buildRpcStringToSign(request)
 | 
			
		||||
		request.SetStringToSign(stringToSign)
 | 
			
		||||
		signature := signer.Sign(stringToSign, "&")
 | 
			
		||||
		request.GetQueryParams()["sign"] = signature
 | 
			
		||||
		debug("GrSdk sign: %s", signature)
 | 
			
		||||
		debug("GrSdk sign string: %s", stringToSign)
 | 
			
		||||
		debug("GrSdk sign: \r\n")
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	stringToSign := buildRpcStringToSign(request)
 | 
			
		||||
	request.SetStringToSign(stringToSign)
 | 
			
		||||
	signature := signer.Sign(stringToSign, "&")
 | 
			
		||||
	request.GetQueryParams()["sign"] = signature
 | 
			
		||||
	debug("GrSdk sign: %s", signature)
 | 
			
		||||
	debug("GrSdk sign string: %s", stringToSign)
 | 
			
		||||
	debug("GrSdk sign: \r\n")
 | 
			
		||||
	return
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func completeRpcSignParams(request requests.AcsRequest, signer Signer) (err error) {
 | 
			
		||||
	if signer != nil {
 | 
			
		||||
		var accessKeyFrom string
 | 
			
		||||
		if accessKeyFrom, err = signer.GetAccessKeyFrom(); err != nil {
 | 
			
		||||
			return
 | 
			
		||||
		}
 | 
			
		||||
 | 
			
		||||
	var accessKeyFrom string
 | 
			
		||||
	if accessKeyFrom, err = signer.GetAccessKeyFrom(); err != nil {
 | 
			
		||||
		return
 | 
			
		||||
		queryParams := request.GetQueryParams()
 | 
			
		||||
		queryParams["access_time"] = fmt.Sprintf("%d", time.Now().Unix())
 | 
			
		||||
		queryParams["access_key"], err = signer.GetAccessKeyId()
 | 
			
		||||
		queryParams["access_from"] = accessKeyFrom
 | 
			
		||||
		request.GetHeaders()["Gr-Sdk-From"] = accessKeyFrom
 | 
			
		||||
 | 
			
		||||
		if err != nil {
 | 
			
		||||
			return
 | 
			
		||||
		}
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	queryParams := request.GetQueryParams()
 | 
			
		||||
	queryParams["access_time"] = fmt.Sprintf("%d", time.Now().Unix())
 | 
			
		||||
	queryParams["access_key"], err = signer.GetAccessKeyId()
 | 
			
		||||
	queryParams["access_from"] = accessKeyFrom
 | 
			
		||||
 | 
			
		||||
	if err != nil {
 | 
			
		||||
		return
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	request.GetHeaders()["Content-type"] = requests.Form
 | 
			
		||||
	request.GetHeaders()["Gr-Sdk-From"] = accessKeyFrom
 | 
			
		||||
 | 
			
		||||
	formString := utils.GetUrlFormedMap(request.GetFormParams())
 | 
			
		||||
	request.SetContent(bytes.NewBufferString(formString).Bytes())
 | 
			
		||||
	return
 | 
			
		||||
 | 
			
		||||
@ -91,11 +91,15 @@ func (client *Client) Init() (err error) {
 | 
			
		||||
 | 
			
		||||
func (client *Client) InitWithAccessKey(accessKeyId, accessKeySecret, accessKeyFrom string) (err error) {
 | 
			
		||||
	config := client.InitWithConfig()
 | 
			
		||||
	credential := &credentials.BaseCredential{
 | 
			
		||||
		AccessKeyId:     accessKeyId,
 | 
			
		||||
		AccessKeySecret: accessKeySecret,
 | 
			
		||||
		AccessKeyFrom:   accessKeyFrom,
 | 
			
		||||
	var credential auth.Credential
 | 
			
		||||
	if accessKeyId != "" {
 | 
			
		||||
		credential = &credentials.BaseCredential{
 | 
			
		||||
			AccessKeyId:     accessKeyId,
 | 
			
		||||
			AccessKeySecret: accessKeySecret,
 | 
			
		||||
			AccessKeyFrom:   accessKeyFrom,
 | 
			
		||||
		}
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	return client.InitWithOptions(config, credential)
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
@ -133,8 +137,9 @@ func (client *Client) InitWithOptions(config *Config, credential auth.Credential
 | 
			
		||||
	if config.Timeout > 0 {
 | 
			
		||||
		client.httpClient.Timeout = config.Timeout
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	client.signer, err = auth.NewSignerWithCredential(credential, client.ProcessCommonRequestWithSigner)
 | 
			
		||||
	if credential != nil {
 | 
			
		||||
		client.signer, err = auth.NewSignerWithCredential(credential, client.ProcessCommonRequestWithSigner)
 | 
			
		||||
	}
 | 
			
		||||
	return
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
@ -89,7 +89,7 @@ func Unmarshal(response AcsResponse, httpResponse *http.Response, format string)
 | 
			
		||||
		return
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	if _, isCommonResponse := response.(CommonResponse); isCommonResponse {
 | 
			
		||||
	if _, isCommonResponse := response.(*CommonResponse); isCommonResponse {
 | 
			
		||||
		return
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
@ -109,3 +109,8 @@ func InitStructWithDefaultTag(bean interface{}) {
 | 
			
		||||
		}
 | 
			
		||||
	}
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func Md5(data string) string {
 | 
			
		||||
	s := md5.Sum([]byte(data))
 | 
			
		||||
	return hex.EncodeToString(s[:])
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
@ -23,3 +23,7 @@ func TestInitStructWithDefaultTag(t *testing.T) {
 | 
			
		||||
	InitStructWithDefaultTag(testcase)
 | 
			
		||||
	fmt.Printf("%+v", testcase)
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func TestMd5(t *testing.T) {
 | 
			
		||||
	t.Log(Md5("123456"))
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
							
								
								
									
										61
									
								
								services/msdk/client.go
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										61
									
								
								services/msdk/client.go
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,61 @@
 | 
			
		||||
package msdk
 | 
			
		||||
 | 
			
		||||
import (
 | 
			
		||||
	"golib.gaore.com/GaoreGo/gaore-common-sdk-go/sdk"
 | 
			
		||||
	"golib.gaore.com/GaoreGo/gaore-common-sdk-go/sdk/requests"
 | 
			
		||||
	"golib.gaore.com/GaoreGo/gaore-common-sdk-go/sdk/responses"
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
const VERSION = "2024-06-25"
 | 
			
		||||
 | 
			
		||||
var HOST = requests.Host{
 | 
			
		||||
	Default: "msdk.api.gaore.com",
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
type Client struct {
 | 
			
		||||
	sdk.Client
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func NewClient() (client *Client, err error) {
 | 
			
		||||
	client = &Client{}
 | 
			
		||||
	err = client.Init()
 | 
			
		||||
	return
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// GetIdfa 获取设备归因信息
 | 
			
		||||
func (c *Client) GetIdfa(req *GetIdfaReq) (resp *GetIdfaResp, err error) {
 | 
			
		||||
	resp = &GetIdfaResp{
 | 
			
		||||
		BaseResponse: &responses.BaseResponse{},
 | 
			
		||||
	}
 | 
			
		||||
	if req.Imei == "" && req.Idfa != "" {
 | 
			
		||||
		req.Imei = req.Idfa
 | 
			
		||||
	}
 | 
			
		||||
	err = c.DoAction(req, resp)
 | 
			
		||||
	return
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// GetUserAttr 获取用户归因信息
 | 
			
		||||
func (c *Client) GetUserAttr(req *GetUserAttrReq) (resp *GetUserAttrResp, err error) {
 | 
			
		||||
	resp = &GetUserAttrResp{
 | 
			
		||||
		BaseResponse: &responses.BaseResponse{},
 | 
			
		||||
	}
 | 
			
		||||
	err = c.DoAction(req, resp)
 | 
			
		||||
	return
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// GetImei 用户注册归因
 | 
			
		||||
func (c *Client) GetImei(req *GetImeiReq) (resp *GetImeiResp, err error) {
 | 
			
		||||
	resp = &GetImeiResp{
 | 
			
		||||
		BaseResponse: &responses.BaseResponse{},
 | 
			
		||||
	}
 | 
			
		||||
	err = c.DoAction(req, resp)
 | 
			
		||||
	return
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func (c *Client) SetImei(req *SetImeiReq) (resp *SetImeiResp, err error) {
 | 
			
		||||
	resp = &SetImeiResp{
 | 
			
		||||
		BaseResponse: &responses.BaseResponse{},
 | 
			
		||||
	}
 | 
			
		||||
	err = c.DoAction(req, resp)
 | 
			
		||||
	return
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										141
									
								
								services/msdk/client_test.go
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										141
									
								
								services/msdk/client_test.go
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,141 @@
 | 
			
		||||
package msdk
 | 
			
		||||
 | 
			
		||||
import (
 | 
			
		||||
	"testing"
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
func TestClient_GetUserAttr(t *testing.T) {
 | 
			
		||||
	client, err := NewClient()
 | 
			
		||||
	if err != nil {
 | 
			
		||||
		t.Error(err)
 | 
			
		||||
		return
 | 
			
		||||
	}
 | 
			
		||||
	req := CreateGetUserAttrReq("ql83649336", "xxhbbxxl")
 | 
			
		||||
	resp, err := client.GetUserAttr(req)
 | 
			
		||||
	if err != nil {
 | 
			
		||||
		t.Error(err)
 | 
			
		||||
		return
 | 
			
		||||
	}
 | 
			
		||||
	t.Log(resp)
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func TestGetIdfa(t *testing.T) {
 | 
			
		||||
	client, err := NewClient()
 | 
			
		||||
	if err != nil {
 | 
			
		||||
		t.Error(err)
 | 
			
		||||
		return
 | 
			
		||||
	}
 | 
			
		||||
	req := CreateGetIdfaReq()
 | 
			
		||||
	req.ChannelId = 1
 | 
			
		||||
	req.GameId = 3706
 | 
			
		||||
	req.Ip = "112.23.230.210"
 | 
			
		||||
	req.Imei = "00000000-0000-0000-0000-000000000000"
 | 
			
		||||
	req.LongId = "daff65f07c7cf84862f4217773e3d613"
 | 
			
		||||
	req.SdkVersion = "1.7.2"
 | 
			
		||||
	req.Os = "ios"
 | 
			
		||||
	req.GameOs = 2
 | 
			
		||||
	req.GameSubOs = 0
 | 
			
		||||
	req.Ua = "Mozilla/5.0 (iPad; CPU OS 15_6_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148"
 | 
			
		||||
	req.GameSign = "hlhj"
 | 
			
		||||
	req.PkgAgentId = "100"
 | 
			
		||||
	req.PkgSiteId = "1001"
 | 
			
		||||
	req.Network = "Wifi"
 | 
			
		||||
	req.Idfv = "53F2A5F7-B1D4-4716-9775-07727C29BC7A"
 | 
			
		||||
	req.ScreenResolution = "2360*1640"
 | 
			
		||||
	req.System = "15.6.1"
 | 
			
		||||
	req.ProcessorModel = "iPad13,16"
 | 
			
		||||
	req.BaseBand = ""
 | 
			
		||||
	req.Model = "iPad13,16"
 | 
			
		||||
	req.Battery = "74"
 | 
			
		||||
	req.Oaid = ""
 | 
			
		||||
	req.AdInfo = ""
 | 
			
		||||
	req.WxPlatform = ""
 | 
			
		||||
	req.AdDevice = "{\"bootTimeInSec\":\"1745364499\",\"countryCode\":\"CN\",\"language\":\"zh-Hans-CN\",\"deviceName\":\"1b9018182a49e16ba85bb095f224867c\",\"systemVersion\":\"15.6.1\",\"machine\":\"iPad13,16\",\"carrierInfo\":\"unknown\",\"memory\":\"8000356352\",\"disk\":\"255983177728\",\"sysFileTime\":\"1663537105.729985\",\"model\":\"J407AP\",\"timeZone\":\"28800\",\"mntId\":\"A058368B97B0D073829608AAC13FFA64D9BEFD0FE3E14EDB106F2BABD6DF94B1C2BFC7509CBB683EE5B22D91A19FF67A@/dev/disk0s1s1\",\"deviceInitTime\":\"1663537056.906820124\"}"
 | 
			
		||||
	resp, err := client.GetIdfa(req)
 | 
			
		||||
	if err != nil {
 | 
			
		||||
		t.Error(err)
 | 
			
		||||
		return
 | 
			
		||||
	}
 | 
			
		||||
	t.Log(resp)
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func TestGetImei(t *testing.T) {
 | 
			
		||||
	client, err := NewClient()
 | 
			
		||||
	if err != nil {
 | 
			
		||||
		t.Error(err)
 | 
			
		||||
		return
 | 
			
		||||
	}
 | 
			
		||||
	req := CreateGetImeiReq()
 | 
			
		||||
	req.Uid = 218047048
 | 
			
		||||
	req.UserName = "ct939725671"
 | 
			
		||||
	req.GameId = 8050
 | 
			
		||||
	req.GameSign = "mrwld"
 | 
			
		||||
	req.RegTime = 1750939725
 | 
			
		||||
	req.Imei = "of5wO5sKWep0OFPt9rWQf6xNJVPg"
 | 
			
		||||
	req.ChannelId = 1
 | 
			
		||||
	req.AgentId = 100
 | 
			
		||||
	req.SiteId = 1001
 | 
			
		||||
	req.Ip = "1864204063"
 | 
			
		||||
	req.Idfa = "of5wO5sKWep0OFPt9rWQf6xNJVPg"
 | 
			
		||||
	req.Logined = 1
 | 
			
		||||
	req.MatchType = 1
 | 
			
		||||
	req.GameAwemeId = ""
 | 
			
		||||
	req.ComeBackUser = 0
 | 
			
		||||
	req.FanCode = ""
 | 
			
		||||
	req.Network = ""
 | 
			
		||||
	req.Idfv = ""
 | 
			
		||||
	req.ScreenResolution = ""
 | 
			
		||||
	req.System = ""
 | 
			
		||||
	req.Electric = ""
 | 
			
		||||
	req.ProcessorModel = ""
 | 
			
		||||
	req.BaseBand = ""
 | 
			
		||||
	req.Model = ""
 | 
			
		||||
	req.Battery = ""
 | 
			
		||||
	req.Oaid = ""
 | 
			
		||||
	req.AdInfo = ""
 | 
			
		||||
	req.AdDevice = ""
 | 
			
		||||
	req.Ua = "WebSdk GaoreGame/1.3.1"
 | 
			
		||||
	req.WxPlatform = ""
 | 
			
		||||
	resp, err := client.GetImei(req)
 | 
			
		||||
	if err != nil {
 | 
			
		||||
		t.Error(err)
 | 
			
		||||
	}
 | 
			
		||||
	t.Log(resp)
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func TestSetImei(t *testing.T) {
 | 
			
		||||
	client, err := NewClient()
 | 
			
		||||
	if err != nil {
 | 
			
		||||
		t.Error(err)
 | 
			
		||||
		return
 | 
			
		||||
	}
 | 
			
		||||
	req := CreateSetImeiReq()
 | 
			
		||||
	// 基础字段赋值
 | 
			
		||||
	req.UserName = "15179405888"
 | 
			
		||||
	req.GameId = 6062
 | 
			
		||||
	req.GameSign = "hlhj"
 | 
			
		||||
	req.ChannelId = 1 // mtype
 | 
			
		||||
	req.MatchType = 2
 | 
			
		||||
	req.Imei = "96d9acdd57535c92-null"
 | 
			
		||||
	req.Idfa = "96d9acdd57535c92-null"
 | 
			
		||||
	req.Network = "4G"
 | 
			
		||||
	req.Idfv = ""
 | 
			
		||||
	req.ScreenResolution = "2132x1080"
 | 
			
		||||
	req.System = "11"
 | 
			
		||||
	req.ProcessorModel = ""
 | 
			
		||||
	req.BaseBand = ""
 | 
			
		||||
	req.Model = "PCDM10"
 | 
			
		||||
	req.Battery = "45"
 | 
			
		||||
	req.Oaid = "B9258E43A5084B43B72D94580C830898343a97328d6fd210b9e23859b1d5e83d_gaore_"
 | 
			
		||||
	req.AdInfo = ""
 | 
			
		||||
	req.AdDevice = ""
 | 
			
		||||
	req.Ua = "Mozilla/5.0 (Linux; Android 11; PCDM10 Build/RP1A.200720.011; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/83.0.4103.106 Mobile Safari/537.36; SHGR GaoreGame/2.3.5"
 | 
			
		||||
	req.WxPlatform = ""
 | 
			
		||||
 | 
			
		||||
	resp, err := client.SetImei(req)
 | 
			
		||||
	if err != nil {
 | 
			
		||||
		t.Error(err)
 | 
			
		||||
		return
 | 
			
		||||
	}
 | 
			
		||||
	t.Log(resp)
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										218
									
								
								services/msdk/user.go
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										218
									
								
								services/msdk/user.go
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,218 @@
 | 
			
		||||
package msdk
 | 
			
		||||
 | 
			
		||||
import (
 | 
			
		||||
	"fmt"
 | 
			
		||||
	"golib.gaore.com/GaoreGo/gaore-common-sdk-go/sdk/requests"
 | 
			
		||||
	"golib.gaore.com/GaoreGo/gaore-common-sdk-go/sdk/responses"
 | 
			
		||||
	"golib.gaore.com/GaoreGo/gaore-common-sdk-go/sdk/utils"
 | 
			
		||||
	"time"
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
const msdkKey = "msdk@gaore.com#!!"
 | 
			
		||||
 | 
			
		||||
type GetIdfaReq struct {
 | 
			
		||||
	*requests.RpcRequest
 | 
			
		||||
	ChannelId        int    `position:"Query" field:"mtype"`
 | 
			
		||||
	GameId           int    `position:"Query" field:"game_id"`
 | 
			
		||||
	GameSign         string `position:"Query" field:"game_sign"`
 | 
			
		||||
	Ip               string `position:"Query" field:"ip"`
 | 
			
		||||
	Imei             string `position:"Query" field:"imei"`
 | 
			
		||||
	Idfa             string `position:"Query" field:"idfa"`
 | 
			
		||||
	Idfv             string `position:"Query" field:"idfv"`
 | 
			
		||||
	LongId           string `position:"Query" field:"long_id"`
 | 
			
		||||
	SdkVersion       string `position:"Query" field:"version"`
 | 
			
		||||
	Os               string `position:"Query" field:"os"`
 | 
			
		||||
	GameOs           int    `position:"Query" field:"game_os"`
 | 
			
		||||
	GameSubOs        int    `position:"Query" field:"game_sub_os"`
 | 
			
		||||
	UserName         string `position:"Query" field:"user_name"`
 | 
			
		||||
	Ua               string `position:"Query" field:"ua"`
 | 
			
		||||
	LiveCode         string `position:"Query" field:"live_code"`
 | 
			
		||||
	AdDevice         string `position:"Query" field:"ad_device"`
 | 
			
		||||
	PkgAgentId       string `position:"Query" field:"pkg_agent_id"`
 | 
			
		||||
	PkgSiteId        string `position:"Query" field:"pkg_site_id"`
 | 
			
		||||
	Network          string `position:"Query" field:"network"`
 | 
			
		||||
	ScreenResolution string `position:"Query" field:"screen_resolution"`
 | 
			
		||||
	System           string `position:"Query" field:"system"`
 | 
			
		||||
	Electric         string `position:"Query" field:"electric"`
 | 
			
		||||
	ProcessorModel   string `position:"Query" field:"processor_model"`
 | 
			
		||||
	BaseBand         string `position:"Query" field:"baseband"`
 | 
			
		||||
	Model            string `position:"Query" field:"model"`
 | 
			
		||||
	Battery          string `position:"Query" field:"battery"`
 | 
			
		||||
	Oaid             string `position:"Query" field:"oaid"`
 | 
			
		||||
	AdInfo           string `position:"Query" field:"adinfo"`
 | 
			
		||||
	WxPlatform       string `position:"Query" field:"wx_platform"`
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
type GetIdfaResp struct {
 | 
			
		||||
	*responses.BaseResponse
 | 
			
		||||
	GameId      int    `json:"game_id"`
 | 
			
		||||
	AgentId     int    `json:"agent_id"`
 | 
			
		||||
	SiteId      int    `json:"site_id"`
 | 
			
		||||
	GameAwemeId string `json:"game_aweme_id"`
 | 
			
		||||
	LongId      string `json:"long_id"`
 | 
			
		||||
	DeviceId    string `json:"device_id"`
 | 
			
		||||
	Exists      bool   `json:"exists"`
 | 
			
		||||
	FromAd      bool   `json:"from_ad"`
 | 
			
		||||
	MatchType   int    `json:"match_type"`
 | 
			
		||||
	ClickId     string `json:"click_id,omitempty"`    // 非必要字段,使用 omitempty 忽略空值
 | 
			
		||||
	MatchTrace  string `json:"match_trace,omitempty"` // 非必要字段
 | 
			
		||||
	RegTime     int64  `json:"reg_time"`
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func CreateGetIdfaReq() *GetIdfaReq {
 | 
			
		||||
	req := &GetIdfaReq{
 | 
			
		||||
		RpcRequest: &requests.RpcRequest{},
 | 
			
		||||
	}
 | 
			
		||||
	req.InitWithApiInfo(HOST, VERSION, "/getIdfa.php")
 | 
			
		||||
	req.Method = requests.GET
 | 
			
		||||
	return req
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
type GetUserAttrReq struct {
 | 
			
		||||
	*requests.RpcRequest
 | 
			
		||||
	UserName string `position:"Query" field:"user_name"`
 | 
			
		||||
	GameSign string `position:"Query" field:"game_sign"`
 | 
			
		||||
	Ts       int64  `position:"Query" field:"ts"`
 | 
			
		||||
	Sign     string `position:"Query" field:"sign"`
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
type GetUserAttrResp struct {
 | 
			
		||||
	*responses.BaseResponse
 | 
			
		||||
	Code int    `json:"code"`
 | 
			
		||||
	Msg  string `json:"msg"`
 | 
			
		||||
	Data struct {
 | 
			
		||||
		Uid         int    `json:"uid"`
 | 
			
		||||
		UserName    string `json:"user_name"`
 | 
			
		||||
		RegTime     int    `json:"reg_time"` // 假设注册时间是时间戳
 | 
			
		||||
		GameID      int    `json:"game_id"`
 | 
			
		||||
		RegIP       string `json:"reg_ip"`
 | 
			
		||||
		AgentId     int    `json:"agent_id"`
 | 
			
		||||
		SiteId      int    `json:"site_id"`
 | 
			
		||||
		Imei        string `json:"imei"`
 | 
			
		||||
		Oaid        string `json:"oaid"`
 | 
			
		||||
		LongId      string `json:"long_id"`
 | 
			
		||||
		PromotionId string `json:"promotion_id"`
 | 
			
		||||
		Mid3        string `json:"mid3"`
 | 
			
		||||
	} `json:"data"`
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func CreateGetUserAttrReq(userName, gameSign string) *GetUserAttrReq {
 | 
			
		||||
	req := &GetUserAttrReq{
 | 
			
		||||
		RpcRequest: &requests.RpcRequest{},
 | 
			
		||||
	}
 | 
			
		||||
	req.UserName = userName
 | 
			
		||||
	req.GameSign = gameSign
 | 
			
		||||
	req.Ts = time.Now().Unix()
 | 
			
		||||
	req.Sign = utils.Md5(fmt.Sprintf("%d%s", req.Ts, msdkKey))
 | 
			
		||||
	req.InitWithApiInfo(HOST, VERSION, "/getUserAttr.php")
 | 
			
		||||
	req.Method = requests.GET
 | 
			
		||||
	return req
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
type GetImeiReq struct {
 | 
			
		||||
	*requests.RpcRequest
 | 
			
		||||
	Uid              int    `position:"Query" field:"uid"`
 | 
			
		||||
	UserName         string `position:"Query" field:"user_name"`
 | 
			
		||||
	GameId           int    `position:"Query" field:"game_id"`
 | 
			
		||||
	GameSign         string `position:"Query" field:"game_sign"`
 | 
			
		||||
	RegTime          int64  `position:"Query" field:"reg_time"`
 | 
			
		||||
	Imei             string `position:"Query" field:"imei"`
 | 
			
		||||
	ChannelId        int    `position:"Query" field:"mtype"`
 | 
			
		||||
	AgentId          int    `position:"Query" field:"agent_id"`
 | 
			
		||||
	SiteId           int    `position:"Query" field:"site_id"`
 | 
			
		||||
	Ip               string `position:"Query" field:"ip"`
 | 
			
		||||
	UserIp           string `position:"Query" field:"user_ip"`
 | 
			
		||||
	Idfa             string `position:"Query" field:"idfa"`
 | 
			
		||||
	Logined          int    `position:"Query" field:"logined"`
 | 
			
		||||
	MatchType        int    `position:"Query" field:"match_type"`
 | 
			
		||||
	GameAwemeId      string `position:"Query" field:"game_aweme_id"`
 | 
			
		||||
	ComeBackUser     int    `position:"Query" field:"come_back_user"` //回流用户标识 1=>回流用户
 | 
			
		||||
	LpReg            int    `position:"Query" field:"lp_reg"`         // 落地页注册用户标识
 | 
			
		||||
	FanCode          string `position:"Query" field:"fan_code"`       // 粉丝码
 | 
			
		||||
	Network          string `position:"Query" field:"network"`
 | 
			
		||||
	Idfv             string `position:"Query" field:"idfv"`
 | 
			
		||||
	ScreenResolution string `position:"Query" field:"screen_resolution"`
 | 
			
		||||
	System           string `position:"Query" field:"system"`
 | 
			
		||||
	Electric         string `position:"Query" field:"electric"`
 | 
			
		||||
	ProcessorModel   string `position:"Query" field:"processor_model"`
 | 
			
		||||
	BaseBand         string `position:"Query" field:"baseband"`
 | 
			
		||||
	Model            string `position:"Query" field:"model"`
 | 
			
		||||
	Battery          string `position:"Query" field:"battery"`
 | 
			
		||||
	Oaid             string `position:"Query" field:"oaid"`
 | 
			
		||||
	AdInfo           string `position:"Query" field:"adinfo"`
 | 
			
		||||
	AdDevice         string `position:"Query" field:"ad_device"`
 | 
			
		||||
	Ua               string `position:"Query" field:"ua"`
 | 
			
		||||
	WxPlatform       string `position:"Query" field:"wx_platform"`
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
type GetImeiResp struct {
 | 
			
		||||
	*responses.BaseResponse
 | 
			
		||||
	Uid         string `json:"uid"`
 | 
			
		||||
	UserName    string `json:"user_name"`
 | 
			
		||||
	Openid      string `json:"openid"`
 | 
			
		||||
	ChannelId   string `json:"mtype"`
 | 
			
		||||
	Logined     int    `json:"logined"`
 | 
			
		||||
	GameId      string `json:"game_id"`
 | 
			
		||||
	GameSign    string `json:"game_sign"`
 | 
			
		||||
	MatchType   int    `json:"match_type"`
 | 
			
		||||
	RegTime     int64  `json:"reg_time"` // 原始时间戳字符串
 | 
			
		||||
	Imei        string `json:"imei"`
 | 
			
		||||
	Oaid        string `json:"oaid"`
 | 
			
		||||
	Idfa        string `json:"idfa"`
 | 
			
		||||
	Ip          int64  `json:"ip"`
 | 
			
		||||
	UserIp      string `json:"user_ip"`
 | 
			
		||||
	Ua          string `json:"ua"`
 | 
			
		||||
	Media       string `json:"media"`
 | 
			
		||||
	AgentId     int    `json:"agent_id"`
 | 
			
		||||
	SiteId      int    `json:"site_id"`
 | 
			
		||||
	AdInfo      string `json:"adinfo"`
 | 
			
		||||
	GameAwemeId string `json:"game_aweme_id"`
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func CreateGetImeiReq() *GetImeiReq {
 | 
			
		||||
	req := &GetImeiReq{
 | 
			
		||||
		RpcRequest: &requests.RpcRequest{},
 | 
			
		||||
	}
 | 
			
		||||
	req.InitWithApiInfo(HOST, VERSION, "/getImei.php")
 | 
			
		||||
	req.Method = requests.GET
 | 
			
		||||
	return req
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
type SetImeiReq struct {
 | 
			
		||||
	*requests.RpcRequest
 | 
			
		||||
	UserName         string `position:"Query" field:"user_name"`
 | 
			
		||||
	GameId           int    `position:"Query" field:"game_id"`
 | 
			
		||||
	Imei             string `position:"Query" field:"imei"`
 | 
			
		||||
	Idfa             string `position:"Query" field:"idfa"`
 | 
			
		||||
	GameSign         string `position:"Query" field:"game_sign"`
 | 
			
		||||
	ChannelId        int    `position:"Query" field:"mtype"`
 | 
			
		||||
	MatchType        int    `position:"Query" field:"match_type"`
 | 
			
		||||
	Network          string `position:"Query" field:"network"`
 | 
			
		||||
	Idfv             string `position:"Query" field:"idfv"`
 | 
			
		||||
	ScreenResolution string `position:"Query" field:"screen_resolution"`
 | 
			
		||||
	System           string `position:"Query" field:"system"` // 可能为系统版本号字符串
 | 
			
		||||
	ProcessorModel   string `position:"Query" field:"processor_model"`
 | 
			
		||||
	BaseBand         string `position:"Query" field:"baseband"`
 | 
			
		||||
	Model            string `position:"Query" field:"model"`
 | 
			
		||||
	Battery          string `position:"Query" field:"battery"`
 | 
			
		||||
	Oaid             string `position:"Query" field:"oaid"`
 | 
			
		||||
	AdInfo           string `position:"Query" field:"adinfo"`
 | 
			
		||||
	AdDevice         string `position:"Query" field:"ad_device"`
 | 
			
		||||
	Ua               string `position:"Query" field:"ua"`
 | 
			
		||||
	WxPlatform       string `position:"Query" field:"wx_platform"`
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
type SetImeiResp struct {
 | 
			
		||||
	*responses.BaseResponse
 | 
			
		||||
	Code int    `json:"code"`
 | 
			
		||||
	Msg  string `json:"msg"`
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func CreateSetImeiReq() *SetImeiReq {
 | 
			
		||||
	req := &SetImeiReq{
 | 
			
		||||
		RpcRequest: &requests.RpcRequest{},
 | 
			
		||||
	}
 | 
			
		||||
	req.InitWithApiInfo(HOST, VERSION, "/setImei.php")
 | 
			
		||||
	req.Method = requests.GET
 | 
			
		||||
	return req
 | 
			
		||||
}
 | 
			
		||||
		Loading…
	
		Reference in New Issue
	
	Block a user