/// <summary>
        /// 注册应用凭证信息,此操作只是注册,不会马上获取Token,并将清空之前的Token
        /// </summary>
        /// <param name="appId">微信公众号后台的【开发】>【基本配置】中的“AppID(应用ID)”</param>
        /// <param name="appSecret">微信公众号后台的【开发】>【基本配置】中的“AppSecret(应用密钥)”</param>
        /// <param name="name">标记AccessToken名称(如微信公众号名称),帮助管理员识别</param>
        public static void Register(string appId, string appSecret, string name = null)
        {
            //记录注册信息,RegisterFunc委托内的过程会在缓存丢失之后自动重试
            RegisterFunc = () =>
            {
                using (FlushCache.CreateInstance())
                {
                    var bag = new AccessTokenBag()
                    {
                        //Key = appId,
                        Name                  = name,
                        AppId                 = appId,
                        AppSecret             = appSecret,
                        AccessTokenExpireTime = DateTime.MinValue,
                        AccessTokenResult     = new AccessTokenResult()
                    };
                    Update(appId, bag);
                    return(bag);
                }
            };
            RegisterFunc();

            //为JsApiTicketContainer进行自动注册
            JsApiTicketContainer.Register(appId, appSecret, name);

            //OAuthAccessTokenContainer进行自动注册
            OAuthAccessTokenContainer.Register(appId, appSecret, name);
        }
예제 #2
0
 public OAuthAccessTokenResult GetOAuthAccessTokenResult(string appId, string appSecret, string code)
 {
     if (!OAuthAccessTokenContainer.CheckRegistered(appId))
     {
         OAuthAccessTokenContainer.Register(appId, appSecret);
     }
     return(OAuthAccessTokenContainer.GetOAuthAccessTokenResult(appId, code, false));
 }