From 90c2b1213ac404069a3d5b8a12b75fd3d908ae1b Mon Sep 17 00:00:00 2001 From: liguanjie Date: Tue, 9 Sep 2025 17:54:16 +0800 Subject: [PATCH] =?UTF-8?q?feat(passport):=20=E6=B7=BB=E5=8A=A0=E7=94=A8?= =?UTF-8?q?=E6=88=B7=E4=BF=AE=E6=94=B9=E5=AF=86=E7=A0=81=E5=8A=9F=E8=83=BD?= =?UTF-8?q?=E5=B9=B6=E4=BC=98=E5=8C=96=E5=93=8D=E5=BA=94=E8=A7=A3=E6=9E=90?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 新增 ChangePassword 方法支持用户修改密码- 添加 ChangePasswordRequest 和 ChangePasswordResponse 结构体 - 实现用户修改密码的请求创建和响应解析 - 优化 response.go 中的解析逻辑,支持 text 格式 - 更新 client_test.go 中的测试用例 --- sdk/responses/response.go | 3 ++- services/passport/client.go | 8 ++++++ services/passport/client_test.go | 16 ++++++++++++ services/passport/getpwd.go | 42 ++++++++++++++++++++++++++++++++ 4 files changed, 68 insertions(+), 1 deletion(-) create mode 100644 services/passport/getpwd.go 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 +}