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)); }
public WechatJsTicketReq(WechatJsTicketType type = WechatJsTicketType.jsapi) : base(HttpMethod.Get) { _jsType = type; }