示例#1
0
        public async Task <StrResp> GetJsTicket(WechatJsTicketType type, IAppSecret appConfig)
        {
            var key         = string.Concat(jsTicketCacheKey, appConfig.app_id);
            var jsTicketRes = await CacheHelper.GetAsync <WechatJsTicketResp>(key);

            if (jsTicketRes != null)
            {
                return(new StrResp(jsTicketRes.ticket));
            }

            jsTicketRes = await new WechatJsTicketReq(type)
                          .SetContextConfig(appConfig)
                          .ExecuteAsync();

            if (!jsTicketRes.IsSuccess())
            {
                return(new StrResp().WithResp(jsTicketRes));
            }

            // 按照返回的过期时间提前5分钟过期
            await CacheHelper.SetAbsoluteAsync(key, jsTicketRes, TimeSpan.FromSeconds(jsTicketRes.expires_in - 60 * 5), "OSS.Clients.Platform.Wechat");

            return(new StrResp(jsTicketRes.ticket));
        }
示例#2
0
 public WechatJsTicketReq(WechatJsTicketType type = WechatJsTicketType.jsapi) : base(HttpMethod.Get)
 {
     _jsType = type;
 }