diff --git a/services/passport/client.go b/services/passport/client.go index 73c4320..2055ba7 100644 --- a/services/passport/client.go +++ b/services/passport/client.go @@ -70,6 +70,20 @@ func (c *Client) DelUserAuth(param DelUserAuthRequestParam) (response string, er return delUserAuthResponse.GetHttpContentString(), nil } +// EditPhone +// 修改/清除用户手机号(phone 传空字符串即清除),成功返回 "ok" +func (c *Client) EditPhone(param EditPhoneRequestParam) (response string, err error) { + editPhoneRequest := CreateEditPhoneRequest(param) + editPhoneResponse := CreateEditPhoneResponse() + err = c.DoAction(editPhoneRequest, editPhoneResponse) + if err != nil && strings.Contains(err.Error(), "json Unmarshal:") { + return editPhoneResponse.GetHttpContentString(), nil + } else if err != nil { + return "", err + } + return editPhoneResponse.GetHttpContentString(), nil +} + // GetUserGameSign // 获取用户登录过的游戏大类 func (c *Client) GetUserGameSign(req *GetUserGameSignRequest) (response *GetUserGameSignResponse, err error) { diff --git a/services/passport/client_test.go b/services/passport/client_test.go index db9da13..996d8d5 100644 --- a/services/passport/client_test.go +++ b/services/passport/client_test.go @@ -235,6 +235,28 @@ func TestDelUserAuth(t *testing.T) { t.Logf("del user auth result: %s", res) } +// 测试修改/清除用户手机号(演示调用方式) +// 注意:phone 传空字符串即清除手机号,会真实修改账号数据,仅可对测试账号执行。 +func TestEditPhone(t *testing.T) { + client, err := NewClient() + if err != nil { + t.Error(err) + return + } + // 调用方式:phone 传空串清除手机号,传具体号码则修改为该号码 + param := EditPhoneRequestParam{ + UserName: "18271216432", // 占位测试账号 + Phone: "", + } + res, err := client.EditPhone(param) + if err != nil { + t.Error(err) + return + } + // 远端返回纯文本,"ok" 表示成功 + t.Logf("edit phone result: %s", res) +} + // 测试获取用户登陆信息 func TestGetUserLogin(t *testing.T) { client, err := NewClient() diff --git a/services/passport/weedong.go b/services/passport/weedong.go index 9ea6549..3c3d8ce 100644 --- a/services/passport/weedong.go +++ b/services/passport/weedong.go @@ -137,3 +137,47 @@ func CreateDelUserAuthResponse() (response *DelUserAuthResponse) { } return } + +type EditPhoneRequestParam struct { + UserName string `position:"Body" field:"user_name"` + Phone string `position:"Body" field:"phone"` +} + +type EditPhoneResponse struct { + *responses.BaseResponse +} + +type EditPhoneRequest struct { + *requests.RpcRequest + UserName string `position:"Body" field:"user_name"` + Phone string `position:"Body" field:"phone"` + Action string `position:"Body" field:"action"` + Flag string `position:"Body" field:"flag"` + Time string `position:"Body" field:"time"` +} + +// CreateEditPhoneRequest 修改/清除用户手机号接口 +// 远端将分表 user_X 的 telephone 更新为传入的 phone(传空字符串即清除手机号) +func CreateEditPhoneRequest(param EditPhoneRequestParam) (req *EditPhoneRequest) { + ts := time.Now().Unix() + sign := weeDongGetSign(ts) + + req = &EditPhoneRequest{ + RpcRequest: &requests.RpcRequest{}, + Action: "edit_phone", + Flag: sign, + Time: fmt.Sprintf("%v", ts), + UserName: param.UserName, + Phone: param.Phone, + } + req.InitWithApiInfo(HOST, VERSION, "/weedong.php") + req.Method = requests.POST + return +} + +func CreateEditPhoneResponse() (response *EditPhoneResponse) { + response = &EditPhoneResponse{ + BaseResponse: &responses.BaseResponse{}, + } + return +}