diff --git a/sdk/responses/response.go b/sdk/responses/response.go index af5d033..8a5ec23 100644 --- a/sdk/responses/response.go +++ b/sdk/responses/response.go @@ -110,11 +110,12 @@ func Unmarshal(response AcsResponse, httpResponse *http.Response, format string) return } - if format != "xml" { + if format != "xml" && format != "text" { err = jsoniter.Unmarshal(response.GetHttpContentBytes(), response) if err != nil { return errors.New("json Unmarshal:" + err.Error()) } } + return } diff --git a/services/passport/client.go b/services/passport/client.go index 731aa42..9e2b074 100644 --- a/services/passport/client.go +++ b/services/passport/client.go @@ -63,3 +63,11 @@ func (c *Client) GetUserGameSign(req *GetUserGameSignRequest) (response *GetUser err = c.DoAction(req, response) return } + +// ChangePassword +// 用户修改密码 +func (c *Client) ChangePassword(req *ChangePasswordRequest) (response *ChangePasswordResponse, err error) { + response = CreateChangePasswordResponse() + err = c.DoAction(req, response) + return +} diff --git a/services/passport/client_test.go b/services/passport/client_test.go index 6274f52..fc8beaf 100644 --- a/services/passport/client_test.go +++ b/services/passport/client_test.go @@ -78,3 +78,19 @@ func TestGetUserGameSign(t *testing.T) { t.Logf("resp code:%+v", resp.Code) t.Logf("resp data:%+v", resp.Data) } + +// 测试用户修改密码 +func TestChangePassword(t *testing.T) { + client, err := NewClient() + if err != nil { + t.Error(err) + } + req := CreateChangePasswordRequest("rz35990497", "654321") + req.AcceptFormat = "text" + resp, err := client.ChangePassword(req) + if err != nil { + t.Error(err) + } + // 记录文本结果 + t.Logf("resp data:%+v", resp.GetHttpContentString()) +} diff --git a/services/passport/getpwd.go b/services/passport/getpwd.go new file mode 100644 index 0000000..fc48c9e --- /dev/null +++ b/services/passport/getpwd.go @@ -0,0 +1,42 @@ +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 ChangePasswordRequest struct { + *requests.RpcRequest +} + +func CreateChangePasswordRequest(userName string, newPwd string) (req *ChangePasswordRequest) { + ts, sign := GetSign() + + req = &ChangePasswordRequest{ + RpcRequest: &requests.RpcRequest{}, + } + req.InitWithApiInfo(HOST, VERSION, "/remote_login.php") + req.FormParams = map[string]string{ + "act": "getpwd", + "do": "passwd", + "username": userName, + "newpwd": newPwd, + "time": fmt.Sprintf("%v", ts), + "sign": sign, + } + + req.Method = requests.POST + return +} + +func CreateChangePasswordResponse() (response *ChangePasswordResponse) { + response = &ChangePasswordResponse{ + BaseResponse: &responses.BaseResponse{}, + } + return +} + +type ChangePasswordResponse struct { + *responses.BaseResponse +}