예제 #1
0
        //得到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);
        }
예제 #2
0
        //得到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);
        }
예제 #3
0
파일: WXJSSDK.cs 프로젝트: Hizcy/FenDa
    //得到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);
        }
    }