public Task SaveTokenAsync(AppConfig config, WeChatToken token) { var expireTime = DateTime.Now.AddSeconds(token.expires_in); var text = $"{expireTime},{token.access_token},{token.expires_in}"; var file = $"{config.AppName}_{config.AppId}_{TOKN_FILE}"; File.WriteAllText(file, text); return(Task.CompletedTask); }
public async Task <WeChatToken> GetWechatToKen() { var Provider = _externalAuthConfiguration.Providers.FirstOrDefault(P => P.Name == ProviderName); var appid = Provider.ClientId; var secret = Provider.ClientSecret; try { var httpClient = new HttpClient(); httpClient.DefaultRequestHeaders.Add("User-Agent", "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1)"); httpClient.Timeout = TimeSpan.FromMinutes(3); var urlToken = $"https://qyapi.weixin.qq.com/cgi-bin/gettoken?corpid={appid}&corpsecret={secret}"; string ResultToken = await httpClient.GetStringAsync(urlToken); WeChatToken wX_Token = JsonConvert.DeserializeObject <WeChatToken>(ResultToken); return(wX_Token); } catch (Exception ex) { throw new UserFriendlyException("获取微信access_token失败" + ex.Message); } }
public override async Task <ExternalAuthUserInfo> GetUserInfo(string Code) { // 1. 获取企业微信ToKen WeChatToken weChatToken = await this.GetWechatToKen(); // 2. 获取用户信息 WeChatUserInfo weChatUserInfo = await this.GetWechatUserId(Code, weChatToken.access_token); // 3. 通过获取的的微信用户UserId并判断是否存在自己的服务器中。 WXUser wXUser = await _wXUserManager.FindByUserId(weChatUserInfo.UserId); var t = wXUser == null ? new ExternalAuthUserInfo() : new ExternalAuthUserInfo { EmailAddress = wXUser.Email, Surname = wXUser.AbpUser.Surname, ProviderKey = weChatUserInfo.UserId, Provider = ProviderName, Name = wXUser.AbpUser.Name }; return(t); }
public WeChatTokenCacheItem(string appId, WeChatToken weChatToken) { AppId = appId; WeChatToken = weChatToken; }
public Task SaveTokenAsync(AppConfig config, WeChatToken token) { tokens[config.AppId] = token; return(Task.CompletedTask); }