Example #1
0
        /// <summary>
        ///  获取js 接口 Ticket
        /// 内部已经处理缓存
        /// </summary>
        /// <param name="type"></param>
        /// <returns></returns>
        public async Task <WxGetJsTicketResp> GetJsTicketAsync(WxJsTicketType type)
        {
            string key    = string.Format(WxCacheKeysUtil.OffcialJsTicketKey, ApiConfig.AppId, type);
            var    ticket = CacheUtil.Get <WxGetJsTicketResp>(key, ModuleNames.SocialCenter);

            if (ticket != null && ticket.expires_time > DateTime.Now)
            {
                return(ticket);
            }

            var req = new OsHttpRequest();

            req.HttpMothed = HttpMothed.GET;
            req.AddressUrl = string.Concat(m_ApiUrl, string.Concat("cgi-bin/ticket/getticket?type=", type.ToString()));

            var ticketRes = await RestCommonOffcialAsync <WxGetJsTicketResp>(req);

            if (ticketRes.IsSuccess())
            {
                ticketRes.expires_time = DateTime.Now.AddSeconds(ticketRes.expires_in);
                CacheUtil.AddOrUpdate(key, ticketRes, TimeSpan.FromSeconds(ticketRes.expires_in - 10), null,
                                      ModuleNames.SocialCenter);
            }
            return(ticketRes);
        }
Example #2
0
        /// <summary>
        ///  获取js 接口 Ticket
        /// 内部已经处理缓存
        /// </summary>
        /// <param name="type"></param>
        /// <returns></returns>
        public async Task <WxGetJsTicketResp> GetJsTicketFromCacheAsync(WxJsTicketType type)
        {
            var key = string.Format(WxCacheKeysUtil.OffcialJsTicketKey, ApiConfig.AppId, type);

            var ticket = CacheUtil.Get <WxGetJsTicketResp>(key, ModuleName);

            if (ticket != null && ticket.expires_time > DateTime.Now)
            {
                return(ticket);
            }

            var ticketRes = await GetJsTicketFromWxAsync(type);

            if (!ticketRes.IsSuccess())
            {
                return(ticketRes);
            }

            ticketRes.expires_time = DateTime.Now.AddSeconds(ticketRes.expires_in);

            CacheUtil.AddOrUpdate(key, ticketRes, TimeSpan.FromSeconds(ticketRes.expires_in - 10), null,
                                  ModuleName);
            return(ticketRes);
        }