package dingding import ( "git.rosy.net.cn/baseapi/utils" "git.rosy.net.cn/jx-callback/business/auth2" "git.rosy.net.cn/jx-callback/business/auth2/authprovider" "git.rosy.net.cn/jx-callback/globals" "git.rosy.net.cn/jx-callback/globals/api" ) type QRCodeAuther struct { authprovider.DefAuther } var ( AutherObjQRCode *QRCodeAuther ) func init() { AutherObjQRCode = new(QRCodeAuther) auth2.RegisterAuther(AuthTypeQRCode, AutherObjQRCode) } func (a *QRCodeAuther) VerifySecret(dummy, code string) (authBindEx *auth2.AuthBindEx, err error) { globals.SugarLogger.Debugf("dingding qrcode VerifySecret code:%s", code) userQRInfo, err := api.DingDingQRCodeAPI.GetUserInfoByCode(code) if err == nil { tmp_userID, err := api.DingDingAPI.GetByUnionID(userQRInfo.UnionID) if err != nil { return nil, err } userInfo, err := api.DingDingAPI.GetUser(tmp_userID.UserID) if err != nil { return nil, err } globals.SugarLogger.Debug("tmp_userID====,userInfo=======", tmp_userID, userInfo) globals.SugarLogger.Debugf("dingding qrcode VerifySecret code:%s, userQRInfo:%s", code, utils.Format4Output(userQRInfo, false)) if authBindEx, err = a.UnionFindAuthBind(AuthTypeQRCode, api.DingDingQRCodeAPI.GetAppID(), []string{AuthTypeStaff, AuthTypeQRCode}, userQRInfo.OpenID, userQRInfo.UnionID, userQRInfo); err == nil { authBindEx.UserHint = &auth2.UserBasic{ //Name: userQRInfo.Nickname, UserID2: tmp_userID.UserID, Mobile: utils.Interface2String(userInfo["mobile"]), Email: utils.Interface2String(userInfo["email"]), Name: utils.Interface2String(userInfo["name"]), } } } globals.SugarLogger.Debug("authBindEx.UserHint===============", authBindEx.UserHint) return authBindEx, err }