private void btnTestSend_Click(object sender, EventArgs e) { var wx = new WeChat(); var msg = wx.SendMessage("kyezuo", "测试消息,有程序停止运行了,赶紧处理!"); MessageBox.Show(msg["errmsg"].ToString()); }
public override bool FinishedLaunching(UIApplication application, NSDictionary launchOptions) { // Override point for customization after application launch. // If not required for your application you can safely delete this method WeChat.Register("wx617c77c82218ea2c"); //WeChat.Register("Your - App - Id"); return(true); }
static void Main() { //Without setting the protocol type to TLS, HTTP requests would fail System.Net.ServicePointManager.SecurityProtocol = System.Net.SecurityProtocolType.Tls; wechat = new WeChat(StartupPath); Application.EnableVisualStyles(); Application.SetCompatibleTextRenderingDefault(false); Application.Run(new QRCodePage()); }
public DUOJU_IDENTIFIERS GenerateIdentifier(IdentifierTypes type, DateTime expiresTime, IList <KeyValuePair <string, string> > settings, int operatorId) { DateTime createTime; string identifierNO; while (true) { createTime = DateTime.Now; identifierNO = string.Format( "{0}{1}", ((int)type).ToString().PadLeft(2, '0'), WeChat.ConvertTimeStamp(createTime) ); if (IdentifierRepository.IsIdentifierNOUnique(identifierNO)) { break; } Thread.Sleep(1); } var identifier = new DUOJU_IDENTIFIERS { IDENTIFIER_TYPE = (int)type, IDENTIFIER_NO = identifierNO, EXPIRES_TIME = expiresTime, STATUS = (int)IdentifierStatuses.NEW, CREATE_BY = operatorId, CREATE_TIME = createTime, LAST_UPDATE_BY = operatorId, LAST_UPDATE_TIME = DateTime.Now }; if (settings != null && settings.Count > 0) { foreach (var setting in settings) { identifier.DUOJU_IDENTIFIER_SETTINGS.Add(new DUOJU_IDENTIFIER_SETTINGS { SETTING_CODE = setting.Key, SETTING_VALUE = setting.Value, CREATE_BY = operatorId, CREATE_TIME = DateTime.Now, LAST_UPDATE_BY = operatorId, LAST_UPDATE_TIME = DateTime.Now }); } } IdentifierRepository.AddIdentifier(identifier); IdentifierRepository.SaveChanges(); return(identifier); }
// GET: api/Signature public DTO.ReturnJasonConstruct <DTO.Signature> Get(string url) { DTO.ReturnJasonConstruct <DTO.Signature> returnDTO = new DTO.ReturnJasonConstruct <DTO.Signature>(); DTO.Signature dto = new DTO.Signature(); dto.nonceStr = Guid.NewGuid().ToString(); dto.timeStamp = WeChat.GetTimeStamp(); dto.signature = WeChat.GetSignature(dto.nonceStr, dto.timeStamp, url); returnDTO.DTOObject = dto; return(returnDTO); }
public static void SendNoticeWeiXin(ProgramInfo programInfo) { if (string.IsNullOrEmpty(NoticeWxUserIds)) return; string msg = string.Format("程序名:{0},版本:{1},安装路径:{2},已停止运行了,请尽快处理!", programInfo.Name, programInfo.Version, programInfo.InstalledLocation); var wx = new WeChat(); var result = wx.SendMessage(NoticeWxUserIds, msg); if (result["errmsg"].ToString().Equals("ok", StringComparison.OrdinalIgnoreCase)) { WriteLog(string.Format("程序名:{0},版本:{1},已停止运行超过5分钟,成功发送微信通知到:{2}", programInfo.Name, programInfo.Version, NoticeWxUserIds), false); } }
public MainWindow() { InitializeComponent(); Console.SetOut(new TextBoxWriter(a1)); CommonMethodCallBackHandlers.DownLoadQRCodeCompleted += CommonMethodCallBackHandlers_DownLoadQRCodeCompleted; CommonMethodCallBackHandlers.LoginScranQRCodeCompleted += CommonMethodCallBackHandlers_LoginScranQRCodeCompleted; CommonMethodCallBackHandlers.LoginCompleted += CommonMethodCallBackHandlers_LoginCompleted; CommonMethodCallBackHandlers.ReceivedMsgAnalyseMsgCompleted += CommonMethodCallBackHandlers_ReceivedMsgAnalyseMsgCompleted; CommonMethodCallBackHandlers.SendMsgCompleted += CommonMethodCallBackHandlers_SendMsgCompleted; new Task(() => { WeChat.InitWeChatRobot(); }).Start(); }
public override SocialUser GetUserInfo(WechatAuthenticationTicket ticket) { string url = string.Format("{0}/sns/userinfo?access_token={1}&openid={2}", this._options.AuthorizeUrl, ticket.AccessToken, ticket.OpenId); string tokenResponse = _httpClient.GetStringAsync(url).Result.ToString(); if (tokenResponse.IndexOf("errcode") > 0) { throw new SocialExeception(tokenResponse); } WeChat qzone = JsonHelper.DeserializeObject <WeChat>(tokenResponse); return(new SocialUser { OpenId = ticket.OpenId, NickName = qzone.nickname, Profile = qzone.headimgurl, Tag = "Wechat", Token = ticket.AccessToken, RefreshToken = ticket.RefreshToken, Extend = qzone.unionid }); }
/// <summary> /// 生成请求链接 /// </summary> /// <returns></returns> public string Auth(LoginBase.LoginType loginType) { var url = string.Empty; switch (loginType) { case LoginBase.LoginType.QQ: url = QQ.AuthorizationHref(new QQ_Authorization_RequestEntity()); break; case LoginBase.LoginType.WeiBo: url = Weibo.AuthorizeHref(new Weibo_Authorize_RequestEntity()); break; case LoginBase.LoginType.WeChat: url = WeChat.AuthorizationHref(new WeChat_Authorization_RequestEntity()); break; case LoginBase.LoginType.GitHub: url = GitHub.AuthorizeHref(new GitHub_Authorize_RequestEntity()); break; case LoginBase.LoginType.TaoBao: url = Taobao.AuthorizeHref(new Taobao_Authorize_RequestEntity()); break; case LoginBase.LoginType.MicroSoft: url = MicroSoft.AuthorizeHref(new MicroSoft_Authorize_RequestEntity()); break; default: break; } return(url); }
public int AddWeChatUser(WeChatUserInfo info) { var user = UserRepository.GetUserByOpenId(info.openid); var isAdd = user == null; var subscribed = info.subscribe.HasValue ? (YesNo)Enum.Parse(typeof(YesNo), info.subscribe.Value.ToString()) : (user != null && user.SUBSCRIBED == YesNo.Y.ToString() ? YesNo.Y : YesNo.N); if (isAdd) { var rolePrivilege = UserRepository.GetRolePrivilege(UserRoles.USER.ToString()); user = new DUOJU_USERS { ACCOUNT = string.Format(CommonSettings.USERACCOUNT_WECHAT_FORMAT, info.openid), SOURCE = (int)UserSources.WECHAT, DUOJU_ROLE_PRIVILEGES = rolePrivilege, PRIVILEGES = rolePrivilege.PRIVILEGES, OPEN_ID = info.openid, CREATE_BY = CommonSettings.OPERATOR_SYSTEM_ID, CREATE_TIME = DateTime.Now }; } user.SUBSCRIBED = subscribed.ToString(); if (subscribed == YesNo.Y) { if (info.subscribe_time.HasValue) { user.SUBSCRIBE_TIME = WeChat.ConvertDateTime(info.subscribe_time.Value); } user.NICK_NAME = info.nickname; if (info.sex.HasValue) { user.SEX = ((UserSexes)Enum.Parse(typeof(UserSexes), info.sex.Value.ToString())).ToString(); } user.HEAD_IMG_URL = info.headimgurl; if (!string.IsNullOrEmpty(info.country)) { var country = AreaRepository.GetCountryInfoByName(info.country); if (country != null) { user.DUOJU_COUNTRIES = country; } } if (!string.IsNullOrEmpty(info.province)) { var province = AreaRepository.GetProvinceInfoByName(info.province); if (province != null) { user.DUOJU_PROVINCES = province; } } if (!string.IsNullOrEmpty(info.city)) { var city = AreaRepository.GetCityInfoByName(info.city); if (city != null) { user.DUOJU_CITIES = city; } } } user.ENABLED = YesNo.Y.ToString(); user.LAST_UPDATE_BY = CommonSettings.OPERATOR_SYSTEM_ID; user.LAST_UPDATE_TIME = DateTime.Now; if (isAdd) { user.DUOJU_USER_FINANCES.Add(new DUOJU_USER_FINANCES { COIN_COUNT = CommonSettings.USERREGISTER_DEFAULT_COIN_COUNT, CREATE_BY = CommonSettings.OPERATOR_SYSTEM_ID, CREATE_TIME = DateTime.Now, LAST_UPDATE_BY = CommonSettings.OPERATOR_SYSTEM_ID, LAST_UPDATE_TIME = DateTime.Now }); UserRepository.AddUser(user); } UserRepository.SaveChanges(); return(user.USER_ID); }
/// <summary> /// 登录链接 /// </summary> /// <param name="loginType">登录类型</param> /// <param name="authType">登录防伪追加标识,区分登录、注册</param> /// <returns></returns> public static string LoginLink(string loginType, string authType = "") { string url = string.Empty; if (Enum.TryParse(loginType, true, out LoginBase.LoginType vtype)) { switch (vtype) { case LoginBase.LoginType.QQ: { var reqe = new QQ_Authorization_RequestEntity(); if (!string.IsNullOrWhiteSpace(authType)) { reqe.state = authType + reqe.state; } url = QQ.AuthorizationHref(reqe); } break; case LoginBase.LoginType.WeiBo: { var reqe = new Weibo_Authorize_RequestEntity(); if (!string.IsNullOrWhiteSpace(authType)) { reqe.state = authType + reqe.state; } url = Weibo.AuthorizeHref(reqe); } break; case LoginBase.LoginType.WeChat: { var reqe = new WeChat_Authorization_RequestEntity(); if (!string.IsNullOrWhiteSpace(authType)) { reqe.state = authType + reqe.state; } url = WeChat.AuthorizationHref(reqe); } break; case LoginBase.LoginType.GitHub: { var reqe = new GitHub_Authorize_RequestEntity(); if (!string.IsNullOrWhiteSpace(authType)) { reqe.state = authType + reqe.state; } url = GitHub.AuthorizeHref(reqe); } break; case LoginBase.LoginType.Gitee: { var reqe = new Gitee_Authorize_RequestEntity(); if (!string.IsNullOrWhiteSpace(authType)) { reqe.state = authType + reqe.state; } url = Gitee.AuthorizeHref(reqe); } break; case LoginBase.LoginType.TaoBao: { var reqe = new TaoBao_Authorize_RequestEntity(); if (!string.IsNullOrWhiteSpace(authType)) { reqe.state = authType + reqe.state; } url = TaoBao.AuthorizeHref(reqe); } break; case LoginBase.LoginType.MicroSoft: { var reqe = new MicroSoft_Authorize_RequestEntity(); if (!string.IsNullOrWhiteSpace(authType)) { reqe.state = authType + reqe.state; } url = MicroSoft.AuthorizeHref(reqe); } break; case LoginBase.LoginType.DingTalk: { var reqe = new DingTalk_Authorize_RequestEntity(); if (!string.IsNullOrWhiteSpace(authType)) { reqe.state = authType + reqe.state; } url = DingTalk.AuthorizeHref_ScanCode(reqe); } break; case LoginBase.LoginType.Google: { var reqe = new Google_Authorize_RequestEntity(); if (!string.IsNullOrWhiteSpace(authType)) { reqe.state = authType + reqe.state; } url = Google.AuthorizeHref(reqe); } break; case LoginBase.LoginType.AliPay: { var reqe = new AliPay_Authorize_RequestEntity(); if (!string.IsNullOrWhiteSpace(authType)) { reqe.state = authType + reqe.state; } url = AliPay.AuthorizeHref(reqe); } break; case LoginBase.LoginType.StackOverflow: { var reqe = new StackOverflow_Authorize_RequestEntity(); if (!string.IsNullOrWhiteSpace(authType)) { reqe.state = authType + reqe.state; } url = StackOverflow.AuthorizeHref(reqe); } break; } } if (string.IsNullOrWhiteSpace(url)) { url = "/account/login"; } return(url); }
public override bool OpenUrl(UIApplication application, NSUrl url, string sourceApplication, NSObject annotation) { return(WeChat.OpenUrl(url)); }
public override bool HandleOpenURL(UIApplication application, NSUrl url) { return(WeChat.OpenUrl(url)); }
/// <summary> /// 回调方法 /// </summary> /// <param name="code">请求链接得到的code</param> /// <param name="loginType">登录类型</param> public void AuthCallback(string code, LoginBase.LoginType loginType) { if (string.IsNullOrWhiteSpace(code)) { //打开链接没登录授权 } else { //唯一标示 string openId = string.Empty; switch (loginType) { case LoginBase.LoginType.QQ: { //获取 access_token var tokenEntity = QQ.AccessToken(new QQ_AccessToken_RequestEntity() { code = code }); //获取 OpendId var openidEntity = QQ.OpenId(new QQ_OpenId_RequestEntity() { access_token = tokenEntity.access_token }); //获取 UserInfo var userEntity = QQ.OpenId_Get_User_Info(new QQ_OpenAPI_RequestEntity() { access_token = tokenEntity.access_token, openid = openidEntity.openid }); //身份唯一标识 openId = openidEntity.openid; } break; case LoginBase.LoginType.WeiBo: { //获取 access_token var tokenEntity = Weibo.AccessToken(new Weibo_AccessToken_RequestEntity() { code = code }); //获取 access_token 的授权信息 var tokenInfoEntity = Weibo.GetTokenInfo(new Weibo_GetTokenInfo_RequestEntity() { access_token = tokenEntity.access_token }); //获取 users/show var userEntity = Weibo.UserShow(new Weibo_UserShow_RequestEntity() { access_token = tokenEntity.access_token, uid = Convert.ToInt64(tokenInfoEntity.uid) }); openId = tokenEntity.access_token; } break; case LoginBase.LoginType.WeChat: { //获取 access_token var tokenEntity = WeChat.AccessToken(new WeChat_AccessToken_RequestEntity() { code = code }); //获取 user var userEntity = WeChat.Get_User_Info(new WeChat_OpenAPI_RequestEntity() { access_token = tokenEntity.access_token, openid = tokenEntity.openid }); //身份唯一标识 openId = tokenEntity.openid; } break; case LoginBase.LoginType.GitHub: { //申请的应用名称,非常重要 GitHubConfig.ApplicationName = "netnrf"; //获取 access_token var tokenEntity = GitHub.AccessToken(new GitHub_AccessToken_RequestEntity() { code = code }); //获取 user var userEntity = GitHub.User(new GitHub_User_RequestEntity() { access_token = tokenEntity.access_token }); openId = userEntity.id.ToString(); } break; case LoginBase.LoginType.TaoBao: { //获取 access_token var tokenEntity = Taobao.AccessToken(new Taobao_AccessToken_RequestEntity() { code = code }); openId = tokenEntity.open_uid; } break; case LoginBase.LoginType.MicroSoft: { //获取 access_token var tokenEntity = MicroSoft.AccessToken(new MicroSoft_AccessToken_RequestEntity() { code = code }); //获取 user var userEntity = MicroSoft.User(new MicroSoft_User_RequestEntity() { access_token = tokenEntity.access_token }); openId = userEntity.id.ToString(); } break; } //拿到登录标识 if (string.IsNullOrWhiteSpace(openId)) { //TO DO } } }
public ActionResult Index() { var receiveModel = WeChat.ConvertReceiveXML(Request.InputStream); logger.Info(JsonHelper.GetJsonWithModel(receiveModel)); var sendModel = new WeChatSendMessageModel { ToUserName = receiveModel.FromUserName, FromUserName = receiveModel.ToUserName, CreateTime = WeChat.ConvertTimeStamp(DateTime.Now) }; switch (receiveModel.MsgType) { case MsgTypes.TEXT: switch (receiveModel.Content) { case "gm": sendModel.MsgType = MsgTypes.TEXT; sendModel.Content = WeChatHelper.WeChat.GetMenu(); break; case "cm": var menuInfo = new WeChatMenuInfo { button = new List <WeChatMenuItemInfo> { new WeChatMenuItemInfo { name = "开始", sub_button = new List <WeChatMenuItemInfo> { new WeChatMenuItemInfo { name = "发布聚会", type = MenuItemTypes.VIEW.ToString().ToLower(), url = WeChatHelper.WeChat.ConvertOAuthUrl("http://wechat.duoju.us/Party/PublishParty/1", OauthScopes.SNSAPI_BASE, null) }, new WeChatMenuItemInfo { name = "使用说明", type = MenuItemTypes.CLICK.ToString().ToLower(), key = "key_instruction" } } }, new WeChatMenuItemInfo { name = "个人", sub_button = new List <WeChatMenuItemInfo> { new WeChatMenuItemInfo { name = "发布的聚会", type = MenuItemTypes.VIEW.ToString().ToLower(), url = WeChatHelper.WeChat.ConvertOAuthUrl("http://wechat.duoju.us/Party/MyParties", OauthScopes.SNSAPI_BASE, null) }, new WeChatMenuItemInfo { name = "参与的聚会", type = MenuItemTypes.VIEW.ToString().ToLower(), url = WeChatHelper.WeChat.ConvertOAuthUrl("http://wechat.duoju.us/Party/MyParticipateParties", OauthScopes.SNSAPI_BASE, null) }, new WeChatMenuItemInfo { name = "个人财产", type = MenuItemTypes.VIEW.ToString().ToLower(), url = WeChatHelper.WeChat.ConvertOAuthUrl("http://wechat.duoju.us/User/MyFinances", OauthScopes.SNSAPI_BASE, null) }, new WeChatMenuItemInfo { name = "点赞支持", type = MenuItemTypes.CLICK.ToString().ToLower(), key = "key_praise", } } } } }; sendModel.MsgType = MsgTypes.TEXT; sendModel.Content = JsonHelper.GetJsonWithModel(WeChatHelper.WeChat.CreateMenu(menuInfo)); break; //case "dm": // sendModel.MsgType = MsgTypes.TEXT; // sendModel.Content = JsonHelper.GetJsonWithModel(WeChatHelper.WeChat.DeleteMenu()); // break; } break; case MsgTypes.EVENT: switch (receiveModel.Event.Value) { case Events.SUBSCRIBE: logger.WarnFormat("user ({0}) subscribe{1}.", receiveModel.FromUserName, string.IsNullOrEmpty(receiveModel.Ticket) ? null : string.Format(" with ticket ({0})", receiveModel.Ticket) ); try { var subscribeUser = WeChatHelper.WeChat.GetWeChatUserInfo(receiveModel.FromUserName); var userid = UserService.AddWeChatUser(subscribeUser); } catch (Exception ex) { logger.Warn(ex); } sendModel.MsgType = MsgTypes.TEXT; sendModel.Content = "欢迎关注!"; break; case Events.SCAN: logger.WarnFormat("user ({0}) scan, ticket: {1}.", receiveModel.FromUserName, receiveModel.Ticket ); break; case Events.UNSUBSCRIBE: logger.WarnFormat("user ({0}) unsubscribe.", receiveModel.FromUserName); UserService.WeChatUserUnsubscribe(receiveModel.FromUserName); break; case Events.CLICK: logger.InfoFormat("user click {0}.", receiveModel.EventKey); switch (receiveModel.EventKey) { case "key_instruction": sendModel.MsgType = MsgTypes.TEXT; sendModel.Content = "图片版说明weibo:<a href=\"http://www.weibo.com/\">Go</a>\r\n文字版说明qqweibo:<a href=\"http://t.qq.com/\">Go</a>"; break; case "key_praise": logger.WarnFormat("user ({0}) praise.", receiveModel.FromUserName); sendModel.MsgType = MsgTypes.TEXT; sendModel.Content = "感谢您的支持!"; break; } break; case Events.VIEW: logger.InfoFormat("user view {0}.", receiveModel.EventKey); break; } break; } return(Content(WeChat.ConvertSendXML(sendModel))); }
/// <summary> /// 生成请求链接 /// </summary> /// <param name="authType">在防伪参数追加信息(可用于登录、注册、绑定、解绑区分)</param> /// <returns></returns> public string Auth(string authType = "") { var url = string.Empty; switch (loginType) { case LoginBase.LoginType.QQ: { var reqe = new QQ_Authorization_RequestEntity(); if (!string.IsNullOrWhiteSpace(authType)) { reqe.state = authType + reqe.state; } url = QQ.AuthorizationHref(reqe); } break; case LoginBase.LoginType.WeiBo: { var reqe = new Weibo_Authorize_RequestEntity(); if (!string.IsNullOrWhiteSpace(authType)) { reqe.state = authType + reqe.state; } url = Weibo.AuthorizeHref(reqe); } break; case LoginBase.LoginType.GitHub: { var reqe = new GitHub_Authorize_RequestEntity(); if (!string.IsNullOrWhiteSpace(authType)) { reqe.state = authType + reqe.state; } url = GitHub.AuthorizeHref(reqe); } break; case LoginBase.LoginType.TaoBao: { var reqe = new TaoBao_Authorize_RequestEntity(); if (!string.IsNullOrWhiteSpace(authType)) { reqe.state = authType + reqe.state; } url = TaoBao.AuthorizeHref(reqe); } break; case LoginBase.LoginType.MicroSoft: { var reqe = new MicroSoft_Authorize_RequestEntity(); if (!string.IsNullOrWhiteSpace(authType)) { reqe.state = authType + reqe.state; } url = MicroSoft.AuthorizeHref(reqe); } break; case LoginBase.LoginType.WeChat: { var reqe = new WeChat_Authorization_RequestEntity(); if (!string.IsNullOrWhiteSpace(authType)) { reqe.state = authType + reqe.state; } url = WeChat.AuthorizationHref(reqe); } break; case LoginBase.LoginType.DingTalk: { var reqe = new DingTalk_Authorize_RequestEntity(); if (!string.IsNullOrWhiteSpace(authType)) { reqe.state = authType + reqe.state; } //扫描模式 url = DingTalk.AuthorizeHref_ScanCode(reqe); //密码模式 //url = DingTalk.AuthorizeHref_Password(reqe); } break; case LoginBase.LoginType.Gitee: { var reqe = new Gitee_Authorize_RequestEntity(); if (!string.IsNullOrWhiteSpace(authType)) { reqe.state = authType + reqe.state; } url = Gitee.AuthorizeHref(reqe); } break; case LoginBase.LoginType.Google: { var reqe = new Google_Authorize_RequestEntity(); if (!string.IsNullOrWhiteSpace(authType)) { reqe.state = authType + reqe.state; } url = Google.AuthorizeHref(reqe); } break; case LoginBase.LoginType.AliPay: { var reqe = new AliPay_Authorize_RequestEntity(); if (!string.IsNullOrWhiteSpace(authType)) { reqe.state = authType + reqe.state; } url = AliPay.AuthorizeHref(reqe); } break; case LoginBase.LoginType.StackOverflow: { var reqe = new StackOverflow_Authorize_RequestEntity(); if (!string.IsNullOrWhiteSpace(authType)) { reqe.state = authType + reqe.state; } url = StackOverflow.AuthorizeHref(reqe); } break; } return(url); }
/// <summary> /// 回调方法 /// </summary> /// <param name="authorizeResult">接收授权码、防伪参数</param> public void AuthCallback(LoginBase.AuthorizeResult authorizeResult) { if (!string.IsNullOrWhiteSpace(authorizeResult.code) || !string.IsNullOrWhiteSpace(authorizeResult.auth_code)) { //唯一标识 string OpenId = string.Empty; switch (loginType) { case LoginBase.LoginType.QQ: { //获取 access_token var tokenEntity = QQ.AccessToken(new QQ_AccessToken_RequestEntity() { code = authorizeResult.code }); //获取 OpendId var openidEntity = QQ.OpenId(new QQ_OpenId_RequestEntity() { access_token = tokenEntity.access_token }); //获取 UserInfo _ = QQ.OpenId_Get_User_Info(new QQ_OpenAPI_RequestEntity() { access_token = tokenEntity.access_token, openid = openidEntity.openid }); //身份唯一标识 OpenId = openidEntity.openid; } break; case LoginBase.LoginType.WeiBo: { //获取 access_token var tokenEntity = Weibo.AccessToken(new Weibo_AccessToken_RequestEntity() { code = authorizeResult.code }); //获取 access_token 的授权信息 var tokenInfoEntity = Weibo.GetTokenInfo(new Weibo_GetTokenInfo_RequestEntity() { access_token = tokenEntity.access_token }); //获取 users/show _ = Weibo.UserShow(new Weibo_UserShow_RequestEntity() { access_token = tokenEntity.access_token, uid = Convert.ToInt64(tokenInfoEntity.uid) }); OpenId = tokenEntity.access_token; } break; case LoginBase.LoginType.WeChat: { //获取 access_token var tokenEntity = WeChat.AccessToken(new WeChat_AccessToken_RequestEntity() { code = authorizeResult.code }); //获取 user _ = WeChat.Get_User_Info(new WeChat_OpenAPI_RequestEntity() { access_token = tokenEntity.access_token, openid = tokenEntity.openid }); //身份唯一标识 OpenId = tokenEntity.openid; } break; case LoginBase.LoginType.GitHub: { //获取 access_token var tokenEntity = GitHub.AccessToken(new GitHub_AccessToken_RequestEntity() { code = authorizeResult.code }); //获取 user var userEntity = GitHub.User(new GitHub_User_RequestEntity() { access_token = tokenEntity.access_token }); OpenId = userEntity.id.ToString(); } break; case LoginBase.LoginType.TaoBao: { //获取 access_token var tokenEntity = TaoBao.AccessToken(new TaoBao_AccessToken_RequestEntity() { code = authorizeResult.code }); OpenId = tokenEntity.open_uid; } break; case LoginBase.LoginType.MicroSoft: { //获取 access_token var tokenEntity = MicroSoft.AccessToken(new MicroSoft_AccessToken_RequestEntity() { code = authorizeResult.code }); //获取 user var userEntity = MicroSoft.User(new MicroSoft_User_RequestEntity() { access_token = tokenEntity.access_token }); OpenId = userEntity.id.ToString(); } break; case LoginBase.LoginType.DingTalk: { //获取 user var userEntity = DingTalk.User(new DingTalk_User_RequestEntity(), authorizeResult.code); OpenId = userEntity?.openid; } break; case LoginBase.LoginType.Gitee: { //获取 access_token var tokenEntity = Gitee.AccessToken(new Gitee_AccessToken_RequestEntity() { code = authorizeResult.code }); //获取 user var userEntity = Gitee.User(new Gitee_User_RequestEntity() { access_token = tokenEntity.access_token }); OpenId = userEntity.id.ToString(); } break; case LoginBase.LoginType.Google: { //获取 access_token var tokenEntity = Google.AccessToken(new Google_AccessToken_RequestEntity() { code = authorizeResult.code }); //获取 user var userEntity = Google.User(new Google_User_RequestEntity() { access_token = tokenEntity.access_token }); OpenId = userEntity.sub; } break; case LoginBase.LoginType.AliPay: { //获取 access_token var tokenEntity = AliPay.AccessToken(new AliPay_AccessToken_RequestEntity() { code = authorizeResult.auth_code }); //实际上这一步已经获取到 OpenId,登录验证可以了,获取个人信息还需调用下面的接口 //tokenEntity.user_id //获取 user var userEntity = AliPay.User(new AliPay_User_RequestEntity() { auth_token = tokenEntity.access_token }); OpenId = userEntity.user_id; } break; case LoginBase.LoginType.StackOverflow: { //获取 access_token var tokenEntity = StackOverflow.AccessToken(new StackOverflow_AccessToken_RequestEntity() { code = authorizeResult.code }); //获取 user var userEntity = StackOverflow.User(new StackOverflow_User_RequestEntity() { access_token = tokenEntity.access_token }); OpenId = userEntity.user_id; } break; } //拿到登录标识 if (string.IsNullOrWhiteSpace(OpenId)) { //TO DO } } }
/// <summary> /// Start is called on the frame when a script is enabled just before /// any of the Update methods is called the first time. /// </summary> void Start() { _instance = this; }
/// <summary> /// 回调方法 /// </summary> /// <param name="authorizeResult">接收授权码、防伪参数</param> public void AuthCallback(LoginBase.AuthorizeResult authorizeResult) { if (string.IsNullOrWhiteSpace(authorizeResult.code)) { //打开链接没登录授权 } else { //唯一标示 string OpenId = string.Empty; switch (loginType) { case LoginBase.LoginType.QQ: { //获取 access_token var tokenEntity = QQ.AccessToken(new QQ_AccessToken_RequestEntity() { code = authorizeResult.code }); //获取 OpendId var openidEntity = QQ.OpenId(new QQ_OpenId_RequestEntity() { access_token = tokenEntity.access_token }); //获取 UserInfo _ = QQ.OpenId_Get_User_Info(new QQ_OpenAPI_RequestEntity() { access_token = tokenEntity.access_token, openid = openidEntity.openid }); //身份唯一标识 OpenId = openidEntity.openid; } break; case LoginBase.LoginType.WeiBo: { //获取 access_token var tokenEntity = Weibo.AccessToken(new Weibo_AccessToken_RequestEntity() { code = authorizeResult.code }); //获取 access_token 的授权信息 var tokenInfoEntity = Weibo.GetTokenInfo(new Weibo_GetTokenInfo_RequestEntity() { access_token = tokenEntity.access_token }); //获取 users/show _ = Weibo.UserShow(new Weibo_UserShow_RequestEntity() { access_token = tokenEntity.access_token, uid = Convert.ToInt64(tokenInfoEntity.uid) }); OpenId = tokenEntity.access_token; } break; case LoginBase.LoginType.WeChat: { //获取 access_token var tokenEntity = WeChat.AccessToken(new WeChat_AccessToken_RequestEntity() { code = authorizeResult.code }); //获取 user _ = WeChat.Get_User_Info(new WeChat_OpenAPI_RequestEntity() { access_token = tokenEntity.access_token, openid = tokenEntity.openid }); //身份唯一标识 OpenId = tokenEntity.openid; } break; case LoginBase.LoginType.GitHub: { //获取 access_token var tokenEntity = GitHub.AccessToken(new GitHub_AccessToken_RequestEntity() { code = authorizeResult.code }); //获取 user var userEntity = GitHub.User(new GitHub_User_RequestEntity() { access_token = tokenEntity.access_token }); OpenId = userEntity.id.ToString(); } break; case LoginBase.LoginType.TaoBao: { //获取 access_token var tokenEntity = TaoBao.AccessToken(new TaoBao_AccessToken_RequestEntity() { code = authorizeResult.code }); OpenId = tokenEntity.open_uid; } break; case LoginBase.LoginType.MicroSoft: { //获取 access_token var tokenEntity = MicroSoft.AccessToken(new MicroSoft_AccessToken_RequestEntity() { code = authorizeResult.code }); //获取 user var userEntity = MicroSoft.User(new MicroSoft_User_RequestEntity() { access_token = tokenEntity.access_token }); OpenId = userEntity.id.ToString(); } break; case LoginBase.LoginType.DingTalk: { //获取 user var userEntity = DingTalk.User(new DingTalk_User_RequestEntity(), authorizeResult.code); OpenId = userEntity?.openid; } break; case LoginBase.LoginType.Gitee: { //获取 access_token var tokenEntity = Gitee.AccessToken(new Gitee_AccessToken_RequestEntity() { code = authorizeResult.code }); //获取 user var userEntity = Gitee.User(new Gitee_User_RequestEntity() { access_token = tokenEntity.access_token }); OpenId = userEntity.id.ToString(); } break; } //拿到登录标识 if (string.IsNullOrWhiteSpace(OpenId)) { //TO DO } } }