public string GetJsApiTicket(Dictionary <string, string> dic) { try { string response = _httpHelper.Get(dic, Constants.GET_JSAPI_TICKET); JsApiTicketModel model = Newtonsoft.Json.JsonConvert.DeserializeObject <JsApiTicketModel>(response); if (model != null) { if (model.errcode == 0) { return(model.ticket); } else { return(model.errmsg); } } } catch (Exception ex) { throw; } return(string.Empty); }
public void Start() { lock (lockStart) { if (thread != null) { return; } enabled = true; } thread = new System.Threading.Thread( () => { while (enabled) { try { ConfigModel config = ConfigManager.GetConfig(this.appId); JsApiTicketModel jsApiTicketModel = SendHandler.GetJsApiTicket(config.AccessToken); jsApiTicketModel.appId = appId; /** * 为了重用,将JsApiTicket对象以事件的形式广播出去。 * 在这里,保存好JsApiTicket,以供项目在其他地方使用。 * 你可以保存到数据库中,也可以保存到全局变量中。 */ if (this.JsApiTicketEvent != null) { try { this.JsApiTicketEvent(jsApiTicketModel); } catch (Exception ex) { } } if (jsApiTicketModel.errcode != 0) { System.Threading.Thread.Sleep(millisecondsErrorContinue); //如果出现异常,X秒后重新请求. continue; } } catch (Exception e) { System.Threading.Thread.Sleep(millisecondsErrorContinue); //如果出现异常,X秒后重新请求. continue; } finally { } System.Threading.Thread.Sleep(millisecondsTimeout); } }); thread.Start(); }
/// <summary> /// 获取JsApiTicket /// jsapi_ticket是公众号用于调用微信JS接口的临时票据。 /// 正常情况下,jsapi_ticket的有效期为7200秒,通过access_token来获取。 /// 由于获取jsapi_ticket的api调用次数非常有限,频繁刷新jsapi_ticket会导致api调用受限,影响自身业务,开发者必须在自己的服务全局缓存jsapi_ticket 。 /// </summary> /// <param name="accessToken"></param> /// <returns></returns> public static JsApiTicketModel GetJsApiTicket(string accessToken) { string url = ApiUrl.GetJsApiTicketUrl(accessToken); String json = HttpHelper.ScrapeWebPage(url); JObject jo = JObject.Parse(json); JsApiTicketModel model = jo.ToObject <JsApiTicketModel>(); return(model); }
/* https://oapi.dingtalk.com/get_jsapi_ticket?access_token=79721ed2fc46317197e27d9bedec0425 * * errmsg "ok" * ticket "KJWkoWOZ0BMYaQzWFDF5AUclJOHgO6WvzmNNJTswpAMPh3S2Z98PaaJkRzkjsmT5HaYFfNkMdg8lFkvxSy9X01" * expires_in 7200 * errcode 0 */ public static string GetJsApiTicket(string accessToken) { string url = string.Format("https://oapi.dingtalk.com/get_jsapi_ticket?access_token={0}", accessToken); try { string response = HttpRequestHelper.Get(url); JsApiTicketModel model = JsonConvert.DeserializeObject <JsApiTicketModel>(response); if (model != null) { if (model.errcode == 0) { return(model.ticket); } } } catch (Exception ex) { throw; } return(string.Empty); }
/// <summary> /// 获取JsApiTicket /// jsapi_ticket是公众号用于调用微信JS接口的临时票据。 /// 正常情况下,jsapi_ticket的有效期为7200秒,通过access_token来获取。 /// 由于获取jsapi_ticket的api调用次数非常有限,频繁刷新jsapi_ticket会导致api调用受限,影响自身业务,开发者必须在自己的服务全局缓存jsapi_ticket 。 /// </summary> /// <param name="config"></param> /// <returns></returns> public static JsApiTicketModel GetJsApiTicket(ConfigModel config) { JsApiTicketModel model = GetJsApiTicket(config.AccessToken); return(model); }