diff --git a/services/passport/client.go b/services/passport/client.go index 8444125..24c2d92 100644 --- a/services/passport/client.go +++ b/services/passport/client.go @@ -87,3 +87,11 @@ func (c *Client) GetUserLabels(req *GetUserLabelsRequest) (response *GetUserLabe err = c.DoAction(req, response) return } + +// GetUserRegInfo +// 获取用户注册信息 +func (c *Client) GetUserRegInfo(req *GetUserRegInfoRequest) (response *GetUserRegInfoResponse, err error) { + response = CreateGetUserRegInfoResponse() + err = c.DoAction(req, response) + return +} diff --git a/services/passport/client_test.go b/services/passport/client_test.go index 027ce78..27b933c 100644 --- a/services/passport/client_test.go +++ b/services/passport/client_test.go @@ -1,7 +1,10 @@ package passport import ( + "fmt" "testing" + + "golib.gaore.com/GaoreGo/gaore-common-sdk-go/sdk/requests" ) // 单元测试 @@ -109,3 +112,58 @@ func TestUpdateUserState(t *testing.T) { // 记录文本结果 t.Logf("resp code:%+v, msg:%s", resp.Code, resp.Msg) } + +// 测试获取用户注册信息 +func TestGetUserRegInfo(t *testing.T) { + req := CreateGetUserRegInfoRequest("xc21225964") + if err := requests.InitParam(req); err != nil { + t.Error(err) + return + } + if req.GetMethod() != requests.POST || req.GetActionName() != "/remote_login.php" { + t.Errorf("get user reg info req: method=%s path=%s", req.GetMethod(), req.GetActionName()) + return + } + if req.GetFormParams()["act"] != "info" { + t.Errorf("unexpected act param: %q", req.GetFormParams()["act"]) + return + } + if req.GetFormParams()["do"] != "get_user_reg_info" { + t.Errorf("unexpected do param: %q", req.GetFormParams()["do"]) + return + } + if req.GetFormParams()["user_name"] != "xc21225964" { + t.Errorf("unexpected user_name param: %q", req.GetFormParams()["user_name"]) + return + } + if req.GetFormParams()["time"] == "" || req.GetFormParams()["sign"] == "" { + t.Errorf("unexpected sign params: time=%q sign=%q", req.GetFormParams()["time"], req.GetFormParams()["sign"]) + return + } + + client, err := NewClient() + if err != nil { + t.Error(err) + return + } + resp, err := client.GetUserRegInfo(req) + if err != nil { + if resp != nil { + fmt.Printf("%s\n", resp.GetHttpContentString()) + fmt.Printf("%#+v\n", resp) + } + t.Error(err) + return + } + if resp == nil { + t.Errorf("get user reg info response is nil") + return + } + if resp.Code != 1 || resp.Msg != "获取成功" || resp.Data.RegTime <= 0 { + t.Errorf("get user reg info response: code=%d msg=%s data=%+v", resp.Code, resp.Msg, resp.Data) + fmt.Printf("%#+v\n", resp) + return + } + fmt.Printf("%#+v\n", resp) + fmt.Printf("%#+v\n", resp.Data) +} diff --git a/services/passport/user_reg_info.go b/services/passport/user_reg_info.go new file mode 100644 index 0000000..1bfa64a --- /dev/null +++ b/services/passport/user_reg_info.go @@ -0,0 +1,46 @@ +package passport + +import ( + "fmt" + "golib.gaore.com/GaoreGo/gaore-common-sdk-go/sdk/requests" + "golib.gaore.com/GaoreGo/gaore-common-sdk-go/sdk/responses" +) + +type GetUserRegInfoRequest struct { + *requests.RpcRequest +} + +type GetUserRegInfoResponse struct { + *responses.BaseResponse + Code int `json:"code"` + Msg string `json:"msg"` + Data struct { + RegTime int64 `json:"reg_time"` + GameId int64 `json:"game_id"` + } `json:"data"` +} + +// CreateGetUserRegInfoRequest 获取用户注册信息 +func CreateGetUserRegInfoRequest(userName string) (req *GetUserRegInfoRequest) { + ts, sign := GetSign() + req = &GetUserRegInfoRequest{ + RpcRequest: &requests.RpcRequest{}, + } + req.InitWithApiInfo(HOST, VERSION, "/remote_login.php") + req.FormParams = map[string]string{ + "act": "info", + "do": "get_user_reg_info", + "user_name": userName, + "time": fmt.Sprintf("%v", ts), + "sign": sign, + } + req.Method = requests.POST + return +} + +func CreateGetUserRegInfoResponse() (response *GetUserRegInfoResponse) { + response = &GetUserRegInfoResponse{ + BaseResponse: &responses.BaseResponse{}, + } + return +}