/// <summary> /// 【异步方法】获取可用Token /// </summary> /// <param name="corpId"></param> /// <param name="corpSecret"></param> /// <param name="getNewToken">是否强制重新获取新的Token</param> /// <returns></returns> public static async Task <ProviderTokenResult> GetTokenResultAsync(string corpId, string corpSecret, bool getNewToken = false) { if (!CheckRegistered(BuildingKey(corpId, corpSecret))) { throw new WeixinWorkException(UN_REGISTER_ALERT); } var providerTokenBag = TryGetItem(BuildingKey(corpId, corpSecret)); //lock (providerTokenBag.Lock) { if (getNewToken || providerTokenBag.ExpireTime <= DateTimeOffset.Now) { //已过期,重新获取 var providerTokenResult = await SsoApi.GetProviderTokenAsync(providerTokenBag.CorpId, providerTokenBag.CorpSecret); providerTokenBag.ProviderTokenResult = providerTokenResult; //providerTokenBag.ProviderTokenResult = CommonApi.GetProviderToken(providerTokenBag.CorpId, // providerTokenBag.CorpSecret); providerTokenBag.ExpireTime = ApiUtility.GetExpireTime(providerTokenBag.ProviderTokenResult.expires_in); Update(providerTokenBag, null);//更新到缓存 } } return(providerTokenBag.ProviderTokenResult); }
/// <summary> /// 获取可用Token /// </summary> /// <param name="corpId"></param> /// <param name="getNewToken">是否强制重新获取新的Token</param> /// <returns></returns> public static ProviderTokenResult GetTokenResult(string corpId, string corpSecret, bool getNewToken = false) { if (!CheckRegistered(BuildingKey(corpId, corpSecret))) { throw new WeixinQyException(UN_REGISTER_ALERT); } var providerTokenBag = TryGetItem(BuildingKey(corpId, corpSecret)); lock (providerTokenBag.Lock) { if (getNewToken || providerTokenBag.ExpireTime <= DateTime.Now) { //已过期,重新获取 providerTokenBag.ProviderTokenResult = SsoApi.GetProviderToken(providerTokenBag.CorpId, providerTokenBag.CorpSecret); providerTokenBag.ExpireTime = ApiUtility.GetExpireTime(providerTokenBag.ProviderTokenResult.expires_in); } } return(providerTokenBag.ProviderTokenResult); }
public void Init() { instance = new SsoApi(); }