61 lines
1.7 KiB
Go
61 lines
1.7 KiB
Go
package dingdingapi
|
|
|
|
import (
|
|
"git.rosy.net.cn/baseapi/utils"
|
|
"git.rosy.net.cn/jx-callback/globals"
|
|
)
|
|
|
|
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,
|
|
})
|
|
globals.SugarLogger.Debug("result=================", result)
|
|
if err != nil {
|
|
globals.SugarLogger.Debug("err=================", err)
|
|
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
|
|
}
|