Files
baseapi/platformapi/dingdingapi/qrcode.go
richboo111 a181d55338 dd add
2022-08-12 14:16:14 +08:00

56 lines
1.6 KiB
Go

package dingdingapi
import "git.rosy.net.cn/baseapi/utils"
type QRCodeUserInfo struct {
Nickname string `json:"nick"`
OpenID string `json:"openid"`
UnionID string `json:"unionid"`
}
func (a *API) GetUserInfoByCode(code string) (userInfo *QRCodeUserInfo, err error) {
result, err := a.AccessAPI("sns/getuserinfo_bycode", nil, map[string]interface{}{
"tmp_auth_code": code,
})
if err == nil {
myUserInfo := result["user_info"].(map[string]interface{})
return &QRCodeUserInfo{
Nickname: utils.Interface2String(myUserInfo["nick"]),
OpenID: utils.Interface2String(myUserInfo["openid"]),
UnionID: utils.Interface2String(myUserInfo["unionid"]),
}, nil
}
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
}