diff --git a/platformapi/dingdingapi/qrcode.go b/platformapi/dingdingapi/qrcode.go index 52b8eb22..fd293be4 100644 --- a/platformapi/dingdingapi/qrcode.go +++ b/platformapi/dingdingapi/qrcode.go @@ -22,3 +22,34 @@ func (a *API) GetUserInfoByCode(code string) (userInfo *QRCodeUserInfo, err erro } return nil, err } + +type UserGetByUnionIdRsp struct { + ContactType int64 `json:"contact_type"` + UserID string `json:"userid"` +} + +//根据union获取用户user_id +func (a *API) GetByUnionID(unionID string) (userInfo *UserGetByUnionIdRsp, err error) { + result, err := a.AccessAPI("user/getbyunionid", nil, map[string]interface{}{ + "unionid": unionID, + }) + if err != nil { + return nil, err + } else { + tmpResult := result["result"].(map[string]interface{}) + return &UserGetByUnionIdRsp{ + ContactType: utils.ForceInterface2Int64(tmpResult["contact_type"]), + UserID: utils.Interface2String(tmpResult["userid"]), + }, nil + } + return nil, err +} + +//根据user_id获取用户 +func (a *API) GetUser(userID string) (userDetail map[string]interface{}, err error) { + result, err := a.AccessAPI("user/get", utils.Params2Map("userid", userID), nil) + if err != nil { + return nil, err + } + return result, nil +}