コード例 #1
0
        ///// <summary>
        /////  获取js 接口 Ticket
        ///// 内部已经处理缓存
        ///// </summary>
        ///// <param name="type"></param>
        ///// <returns></returns>
        //public async Task<WXGetJsTicketResp> GetJsTicketFromCacheAsync(WXJsTicketType type)
        //{
        //    var key = string.Format(WXCacheKeysHelper.OffcialJsTicketKey, appConfig.AppId, type);

        //    var ticket =await CacheHelper.GetAsync<WXGetJsTicketResp>(key, WXPlatConfigProvider.CacheSourceName);
        //    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);

        //    await CacheHelper.SetAbsoluteAsync(key, ticketRes, TimeSpan.FromSeconds(ticketRes.expires_in - 10), WXPlatConfigProvider.CacheSourceName);
        //    return ticketRes;
        //}

        /// <summary>
        ///  获取js 接口 Ticket,请注意访问速率控制
        /// </summary>
        /// <param name="type"></param>
        /// <returns></returns>
        public async Task <WXGetJsTicketResp> GetJsTicketFromWXAsync(WXJsTicketType type)
        {
            var req = new OssHttpRequest
            {
                HttpMethod = HttpMethod.Get,
                AddressUrl = string.Concat(m_ApiUrl, "/cgi-bin/ticket/getticket?type=", type.ToString())
            };

            return(await RestCommonPlatAsync <WXGetJsTicketResp>(req));
        }
コード例 #2
0
        /// <summary>
        ///  获取js 接口 Ticket
        /// 内部已经处理缓存
        /// </summary>
        /// <param name="type"></param>
        /// <returns></returns>
        public async Task <WXGetJsTicketResp> GetJsTicketFromCacheAsync(WXJsTicketType type)
        {
            var key = string.Format(WXCacheKeysHelper.OffcialJsTicketKey, ApiConfig.AppId, type);

            var ticket = CacheHelper.Get <WXGetJsTicketResp>(key, WXPlatConfigProvider.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);

            CacheHelper.Set(key, ticketRes, TimeSpan.FromSeconds(ticketRes.expires_in - 10), WXPlatConfigProvider.ModuleName);
            return(ticketRes);
        }