//得到ticket 如果文件里时间 超时则重新获取 //注:jsapi_ticket使用规则(有过期时间)类似access_token, oauth的access_token与基础access_token不同 private string getJsApiTicket() { //这里我从数据库读取 DT = DbSession.Default.FromSql("select jsapi_ticket,ticket_expires from table where ID=1").ToDataTable(); int expire_time = (int)DT.Rows[0]["ticket_expires"]; string ticket = DT.Rows[0]["jsapi_ticket"].ToString(); string accessToken = getAccessToken();//获取系统的全局token if (expire_time < ConvertDateTimeInt(DateTime.Now)) { string url = "https://api.weixin.qq.com/cgi-bin/ticket/getticket?type=jsapi&access_token=" + accessToken + ""; Jsapi api = JsonConvert.DeserializeObject <Jsapi>(httpGet(url)); ticket = api.ticket; if (ticket != "") { expire_time = ConvertDateTimeInt(DateTime.Now) + 7000; //存入数据库操作 } } return(ticket); }
//得到ticket 如果文件里时间 超时则重新获取 private string getJsApiTicket() { // jsapi_ticket 应该全局存储与更新,以下代码以写入到文件中做示例 string path = HttpContext.Current.Server.MapPath(@"/jssdk/jsapi_ticket.json"); //读取文件 FileStream file = new FileStream(path, FileMode.Open); var serializer = new DataContractJsonSerializer(typeof(JSTicket)); JSTicket readJSTicket = (JSTicket)serializer.ReadObject(file); file.Close(); string ticket = ""; if (readJSTicket.expire_time < ConvertDateTimeInt(DateTime.Now)) { string accessToken = getAccessToken(); string url = "https://api.weixin.qq.com/cgi-bin/ticket/getticket?type=jsapi&access_token=" + accessToken + ""; Jsapi api = Desrialize <Jsapi>(new Jsapi(), httpGet(url)); ticket = api.ticket; if (ticket != "") { readJSTicket.expire_time = ConvertDateTimeInt(DateTime.Now) + 7000; readJSTicket.jsapi_ticket = ticket; string json = Serialize <JSTicket>(readJSTicket); StreamWriterMetod(json, path); } } else { ticket = readJSTicket.jsapi_ticket; } return(ticket); }
//得到ticket 如果文件里时间 超时则重新获取 private string getJsApiTicket() { string accessToken = ""; string url = ""; Jsapi api = null; Jnwf.Model.tb_JsapiTicketEntity model = Jnwf.BLL.tb_JsapiTicketBLL.GetInstance().GetModel(weixincode); if (model != null) { if (model.AddTime.AddHours(1) <= DateTime.Now) { accessToken = getAccessToken(); url = "https://api.weixin.qq.com/cgi-bin/ticket/getticket?type=jsapi&access_token=" + accessToken + ""; api = JsonConvert.DeserializeObject <Jsapi>(httpGet(url)); model.Ticket = api.ticket; model.AddTime = DateTime.Now; Jnwf.BLL.tb_JsapiTicketBLL.GetInstance().Update(model); } return(model.Ticket); } else { accessToken = getAccessToken(); url = "https://api.weixin.qq.com/cgi-bin/ticket/getticket?type=jsapi&access_token=" + accessToken + ""; string json = httpGet(url); //Jnwf.Utils.Log.Logger.Log4Net.Info("getJsApiTicket:insert:" + json); api = JsonConvert.DeserializeObject <Jsapi>(json); model = new Jnwf.Model.tb_JsapiTicketEntity() { WeiXinCode = weixincode, Ticket = api.ticket, AddTime = DateTime.Now }; Jnwf.BLL.tb_JsapiTicketBLL.GetInstance().Insert(model); return(model.Ticket); } }