public bool WriteAccessToken(string clientId, string prefix, AccessTokenBag accessTokenInfo) { var token = _db.VendAccessTokens.FirstOrDefault(x => x.Prefix.Equals(prefix)); if (token != null) { //update token.ExpiresIn = accessTokenInfo.ExpiresIn; token.Expires = accessTokenInfo.Expires; token.AccessToken = accessTokenInfo.AccessToken; token.RefreshToken = accessTokenInfo.RefreshToken; token.TokenType = accessTokenInfo.TokenType; _db.Entry(token).State = System.Data.Entity.EntityState.Modified; } else { //new token = new VendAccessToken() { Prefix = prefix, ExpiresIn = accessTokenInfo.ExpiresIn, Expires = accessTokenInfo.Expires, AccessToken = accessTokenInfo.AccessToken, RefreshToken = accessTokenInfo.RefreshToken, TokenType = accessTokenInfo.TokenType }; _db.VendAccessTokens.Add(token); } return(_db.SaveChanges() == 1); }
/// <summary> /// 注册应用凭证信息,此操作只是注册,不会马上获取Token,并将清空之前的Token, /// </summary> /// <param name="corpId"></param> /// <param name="corpSecret"></param> public static void Register(string corpId, string corpSecret) { AccessTokenCollection[corpId + "_" + corpSecret] = new AccessTokenBag() { CorpId = corpId, CorpSecret = corpSecret, ExpireTime = DateTime.MinValue, TokenResult = new AccessTokenResult() }; }
public void RemoveFromCache(string key) { // _cache.Remove(key); // DeleteItem(key); var keys = key.Split("_".ToCharArray()); AccessTokenBag parameters = new AccessTokenBag { CorpId = keys[0], CorpSecret = keys[1] }; Update(key, parameters); }
public WeixinWorkException(string message, AccessTokenBag accessTokenBag = null, Exception inner = null) : base(message, inner) { AccessTokenBag = accessTokenBag; }
public async Task <IActionResult> OnPostAccessTokenStatusAsync([FromBody] int[] ids) { var data = new List <AccessTokenData>(); var allMpAccounts = await _mpAccountService.GetFullListAsync(z => true); foreach (var id in ids) { var mpAccount = allMpAccounts.FirstOrDefault(z => z.Id == id); if (mpAccount == null) { continue; } var appId = mpAccount.AppId; string status = null; double leftSeconds = 0; AccessTokenBag bag = null; if (!appId.IsNullOrEmpty()) { if (await AccessTokenContainer.CheckRegisteredAsync(appId)) { bag = await AccessTokenContainer.TryGetItemAsync(appId); if (bag.AccessTokenResult != null && !bag.AccessTokenResult.access_token.IsNullOrEmpty()) { leftSeconds = (bag.AccessTokenExpireTime - SystemTime.Now).TotalSeconds; if (leftSeconds > 9999) { leftSeconds = 0; status = "未启动"; } else if (leftSeconds > 0) { status = "有效"; } else //leftSeconds <= 0 { leftSeconds = 0; status = "已过期"; } } else { status = "未启动"; } } else { status = "未注册"; } } else { status = "AppId无效"; } var totalSeconds = bag?.AccessTokenResult.expires_in ?? 0; var leftPercent = bag?.AccessTokenResult != null && totalSeconds != 0 ? Math.Round(leftSeconds / bag.AccessTokenResult.expires_in * 100, 1) : 0; data.Add(new AccessTokenData() { Id = id, AppId = appId, Status = status, LeftPercent = leftPercent, TotalSeconds = totalSeconds, }); } return(Ok(data)); }
public WeixinQyException(string message, AccessTokenBag accessTokenBag = null, Exception inner=null) : base(message, inner) { AccessTokenBag = accessTokenBag; }
public void InsertToCache(string key, AccessTokenBag value) { _cache[key] = value; }
public void Update(string key, AccessTokenBag value) { _cache[key] = value; }