コード例 #1
0
        private void UpdateWrapper(AuthorizerJsApiTicketWrapper wrapper)
        {
            RequestApiResult <WeixinGetJsApiTicketResult> result = TokenApiWrapper.GetJsApiTicket(wrapper.AppId);

            if (result.Success)
            {
                wrapper.JsApiTicket           = result.ApiResult.Ticket;
                wrapper.JsApiTicketExpiryTime = DateTime.Now.AddSeconds(result.ApiResult.ExpiresIn);
            }
        }
コード例 #2
0
        private AuthorizerJsApiTicketWrapper CreateWrapper(string appId)
        {
            RequestApiResult <WeixinGetJsApiTicketResult> result = TokenApiWrapper.GetJsApiTicket(appId);

            if (result.Success)
            {
                AuthorizerJsApiTicketWrapper wrapper = new AuthorizerJsApiTicketWrapper();
                wrapper.AppId                 = appId;
                wrapper.JsApiTicket           = result.ApiResult.Ticket;
                wrapper.JsApiTicketExpiryTime = DateTime.Now.AddSeconds(result.ApiResult.ExpiresIn);
                return(wrapper);
            }

            return(null);
        }
コード例 #3
0
        public void Add(string appId, string jsApiTicket, int expiresIn)
        {
            lock (_lockObj)
            {
                AuthorizerJsApiTicketWrapper wrapper = _wrapperTable[appId] as AuthorizerJsApiTicketWrapper;
                if (wrapper != null)
                {
                    _wrapperTable.Remove(appId);
                }

                wrapper                       = new AuthorizerJsApiTicketWrapper();
                wrapper.AppId                 = appId;
                wrapper.JsApiTicket           = jsApiTicket;
                wrapper.JsApiTicketExpiryTime = DateTime.Now.AddSeconds(expiresIn);

                _wrapperTable.Add(appId, wrapper);
            }
        }
コード例 #4
0
        public string Get(string appId)
        {
            if (String.IsNullOrEmpty(appId))
            {
                return(null);
            }

            AuthorizerJsApiTicketWrapper wrapper = _wrapperTable[appId] as AuthorizerJsApiTicketWrapper;

            if (wrapper == null || wrapper.WillbeTimeout)
            {
                lock (_lockObj)
                {
                    wrapper = _wrapperTable[appId] as AuthorizerJsApiTicketWrapper;

                    if (wrapper == null || wrapper.WillbeTimeout)
                    {
                        if (wrapper == null)
                        {
                            wrapper = CreateWrapper(appId);
                            _wrapperTable.Add(appId, wrapper);
                        }
                        else
                        {
                            UpdateWrapper(wrapper);
                        }
                    }
                }
            }

            if (wrapper != null)
            {
                return(wrapper.JsApiTicket);
            }
            else
            {
                return(null);
            }
        }