Files
baseapi/platformapi/dingdingapi/qrcode.go
richboo111 1839690faa dd rollback
2022-08-12 17:15:29 +08:00

56 lines
1.5 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) (*UserGetByUnionIdRsp, error) {
//userInfo := new(UserGetByUnionIdRsp)
result, err := a.AccessAPI("topapi/user/getbyunionid", utils.Params2Map("unionid", unionID), nil)
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
}
}
//根据user_id获取用户
func (a *API) GetUser(userID string) (map[string]interface{}, error) {
result, err := a.AccessAPI("user/get", utils.Params2Map("userid", userID), nil)
if err != nil {
return nil, err
}
return result, nil
}