C# - 關於過期Token的解決方案


使用static來定義變量和過期時間

  //===================== 初始化靜態數據 ==========================
        #region 

        private static DateTime TokenExpTime = DateTime.Now.AddDays(-5);    //Access_Token過期時間

        private static string Access_Token = "";   //微信接口的通行證

        #endregion

實戰:

  /// <summary>
        ///   //獲取access_token ,但是會過期,時間為7200秒。經常用又會被限制,所以得使用靜態存儲
        /// </summary>
        /// <returns></returns>
        public String Get_access_token()
        #region
        {
            DateTime nowtime = DateTime.Now;

            if (nowtime > TokenExpTime)
            {              
                HttpWebRequest webRequest = (HttpWebRequest)WebRequest.Create("https://qyapi.weixin.qq.com/cgi-bin/gettoken?corpid=" + this.CorpID + "&corpsecret=" + this.Secret);
                webRequest.Method = "GET";
                HttpWebResponse webResponse = (HttpWebResponse)webRequest.GetResponse();
                StreamReader sr = new StreamReader(webResponse.GetResponseStream(), Encoding.UTF8);
                
                string json = sr.ReadToEnd();
                JsonData data = JsonMapper.ToObject(json);
                if (data["access_token"] == null)
                {
                    log.WriteLog("獲取access_token出錯,錯誤信息為:" + json);
                    Access_Token = "";
                }

                Access_Token = data["access_token"].ToString();

                TokenExpTime = nowtime.AddMinutes(90);//重新設置過期時間
            }

            return Access_Token;
        }
        #endregion

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM