public override async Task <ExternalAuthUserInfo> GetUserInfo(string accessCode) { UsersWechat wechat = new UsersWechat(); var accessToken = await _cacheManager.GetCache("WechatAccessTokenCache").Get("AccessToken", async() => await GetToken(_options.AppId, _options.Secret)); //logger.Debug("获取token:"+accessToken.access_token); if (accessToken != null && !string.IsNullOrWhiteSpace(accessToken.access_token)) { var url = string.Format(Config.ApiWorkHost + "/cgi-bin/user/getuserinfo?access_token={0}&code={1}", accessToken.access_token, accessCode); var redata = Get.GetJson <GetUserResult>(url); if (!string.IsNullOrWhiteSpace(redata.user_ticket)) { UserTicket tiket = new UserTicket { user_ticket = redata.user_ticket }; url = string.Format(Config.ApiWorkHost + "/cgi-bin/user/getuserdetail?access_token={0}", accessToken.access_token); // wechat = Post.GetResult<UsersWechat>(JsonConvert.SerializeObject(tiket)); wechat = await GetUserMsg(url, tiket); } } var t = wechat == null ? new ExternalAuthUserInfo() : new ExternalAuthUserInfo { EmailAddress = wechat.email, Surname = wechat.name, ProviderKey = wechat.userid, Provider = Name, Name = wechat.userid }; return(t); }
/// <summary> /// 通过企业微信获取用户信息 /// </summary> /// <param name="accessCode"></param> /// <returns></returns> public override async Task <ExternalAuthUserInfo> GetUserInfo(string accessCode) { try { UsersWechat wechat = new UsersWechat(); string accessToken = await this.GetToken(_options.AppId, _options.Secret);//_cacheManager.GetCache("CacheName").Get("Login", () => GetToken(_options.AppId, _options.Secret)); if (!string.IsNullOrWhiteSpace(accessToken)) { var url = string.Format(Config.ApiWorkHost + "/cgi-bin/user/getuserinfo?access_token={0}&code={1}", accessToken, accessCode); var redata = Get.GetJson <GetUserInfoResult>(url); if (!string.IsNullOrWhiteSpace(redata.UserId)) { //UserTicket tiket = new UserTicket //{ // user_ticket = redata.user_ticket //}; //url = string.Format(Config.ApiWorkHost + "/cgi-bin/user/getuserdetail?access_token={0}", // accessToken); // wechat = Post.GetResult<UsersWechat>(JsonConvert.SerializeObject(tiket)); url = string.Format(Config.ApiWorkHost + "/cgi-bin/user/get?access_token={0}&userid={1}", accessToken, redata.UserId); wechat = await Get.GetJsonAsync <UsersWechat>(url); //wechat = await GetUserMsg(url, tiket); } } var t = wechat == null ? new ExternalAuthUserInfo() : new ExternalAuthUserInfo { EmailAddress = wechat.email, //Surname = wechat.name, ProviderKey = wechat.userid, Provider = Name, Name = wechat.name, PhoneNumber = wechat.mobile }; return(t); } catch (Exception e) { Console.WriteLine(e); throw; } }
/// <summary> /// 通过企业微信获取用户信息 /// </summary> /// <param name="accessCode"></param> /// <returns></returns> public async Task <ExternalAuthUserInfo> GetUserInfo(string local_name, string accessCode) { try { var _config = await _configManager.GetCurrentConfigAsync(local_name); if (_config == null) { throw new Abp.UI.UserFriendlyException("未能找到对应APP配置 : " + local_name); } UsersWechat wechat = new UsersWechat(); string accessToken = await this.GetToken(_config.LocalName, _config.CropId, _config.Secret);//_cacheManager.GetCache("CacheName").Get("Login", () => GetToken(_options.CropId, _options.Secret)); if (!string.IsNullOrWhiteSpace(accessToken)) { var url = string.Format(Config.ApiWorkHost + "/cgi-bin/user/getuserinfo?access_token={0}&code={1}", accessToken, accessCode); var redata = Get.GetJson <GetUserInfoResult>(url); if (!string.IsNullOrWhiteSpace(redata.UserId)) { url = string.Format(Config.ApiWorkHost + "/cgi-bin/user/get?access_token={0}&userid={1}", accessToken, redata.UserId); wechat = await Get.GetJsonAsync <UsersWechat>(url); } } var t = wechat == null ? new ExternalAuthUserInfo() : new ExternalAuthUserInfo { EmailAddress = wechat.email, //Surname = wechat.name, ProviderKey = wechat.userid, Provider = _config.LoginProvider, Name = wechat.name, PhoneNumber = wechat.mobile }; return(t); } catch (Exception e) { Console.WriteLine(e); throw; } }
/// <summary> /// 通过小程序获取企业微信用户信息 /// </summary> /// <param name="accessCode"></param> /// <returns></returns> private async Task <AuthUserInfo> GetMiniUserInfo(string local_name, string accessCode) { var _config = await _configManager.GetCurrentConfigAsync(local_name); if (_config == null) { throw new Abp.UI.UserFriendlyException("未能找到对应APP配置 : " + local_name); } UsersWechat wechat = new UsersWechat(); string accessToken = await this.GetToken(_config.LocalName, _config.CropId, _config.Secret); if (!string.IsNullOrWhiteSpace(accessToken)) { var url = string.Format(Config.ApiWorkHost + "/cgi-bin/miniprogram/jscode2session?access_token={0}&js_code={1}&grant_type=authorization_code", accessToken, accessCode); var redata = Get.GetJson <Code2Session>(url); if (!string.IsNullOrWhiteSpace(redata.userid)) { url = string.Format(Config.ApiWorkHost + "/cgi-bin/user/get?access_token={0}&userid={1}", accessToken, redata.userid); wechat = await Get.GetJsonAsync <UsersWechat>(url); } } var t = wechat == null ? new AuthUserInfo() : new AuthUserInfo { EmailAddress = wechat.email, //Surname = wechat.name, ProviderKey = wechat.userid, Provider = _config.LoginProvider, Name = wechat.name, PhoneNumber = wechat.mobile }; return(t); }