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) (*auth2.AuthBindEx, error) { userQRInfo, err := api.DingDingQRCodeAPI.GetUserInfoByCode(code) globals.SugarLogger.Debugf("=========userQRInfo= := %s", utils.Format4Output(userQRInfo, false)) globals.SugarLogger.Debugf("=========err= := %v", err) if err != nil { return nil, err } tmp_userID, err := api.DingDingAPI.GetByUnionID(userQRInfo.UnionID) globals.SugarLogger.Debugf("=========userQRInfo= := %s", utils.Format4Output(tmp_userID, false)) globals.SugarLogger.Debugf("=========err= := %v", err) if err != nil { return nil, err } userInfo, err := api.DingDingAPI.GetUser(tmp_userID.UserID) globals.SugarLogger.Debugf("=========userInfo= := %s", utils.Format4Output(userInfo, false)) globals.SugarLogger.Debugf("=========err= := %v", err) if err != nil { return nil, err } authBindEx, err := a.UnionFindAuthBind(AuthTypeQRCode, api.DingDingQRCodeAPI.GetAppID(), []string{AuthTypeStaff, AuthTypeQRCode}, userQRInfo.OpenID, userQRInfo.UnionID, userQRInfo) globals.SugarLogger.Debugf("=========authBindEx= := %s", utils.Format4Output(authBindEx, false)) globals.SugarLogger.Debugf("=========err= := %v", err) if err != nil { return nil, err } authBindEx.UserHint = &auth2.UserBasic{ UserID2: tmp_userID.UserID, Mobile: utils.Interface2String(userInfo["mobile"]), Email: utils.Interface2String(userInfo["email"]), Name: utils.Interface2String(userInfo["name"]), } globals.SugarLogger.Debugf("=========authBindEx2= := %s", utils.Format4Output(authBindEx, false)) globals.SugarLogger.Debugf("=========err= := %v", err) return authBindEx, err }