微信公眾平台開發之微信access_token如何有效長期保存


隨着微信使用越來越廣泛,微信公眾平台開放了許多接口以提供更多個性化的服務,包括自定義菜單接口、客服接口、獲取用戶信息接口、用戶分組接口、群發接口等,開發者在調用這些接口時,都需要傳入一個相同的參數access_token,它是公眾賬號的全局唯一票據,它是接口訪問憑證。

           

access_token的有效期是7200秒(兩小時),在有效期內可以使用,一旦access_token過期,需要重新通過調用微信接口獲取。目前微信接口上面獲取access_token每日限額為2000次,如果每次創建菜單,發送主動消息,獲取用戶信息,群發信息之前都去獲取,必然會達到該接口的頻率限制,在實際微信接口開發中,我們需要把獲取到的access_token存儲起來,然后設置有效期,在有效期過期后再去獲取,以保證access_token實時的有效性。

 

下面是自己想到的一種xml的存儲方式,直接貼代碼:

     public string GetExistAccessToken()

        {

            // 讀取XML文件中的數據

            string filepath = Server.MapPath("/File/XMLToken.xml");

            StreamReader str = new StreamReader(filepath, System.Text.Encoding.UTF8);

            XmlDocument xml = new XmlDocument();

            xml.Load(str);

            str.Close();

            str.Dispose();

           stringToken=xml.SelectSingleNode("xml").SelectSingleNode("AccessToken").InnerText;

           DateTime AccessExpires =Convert.ToDateTime(xml.SelectSingleNode("xml").SelectSingleNode("AccessExpires").InnerText);

 

            if (DateTime.Now >= AccessExpires)

            {

                Access_token mode = GetAccessToken();

               xml.SelectSingleNode("xml").SelectSingleNode("AccessToken").InnerText = mode.access_token;

                DateTime _accessExpires =DateTime.Now.AddSeconds(int.Parse(mode.expires_in));

               xml.SelectSingleNode("xml").SelectSingleNode("AccessExpires").InnerText =_accessExpires.ToString();

                xml.Save(filepath);

                Token = mode.access_token;

            }

            return Token;

        }

  貼上XMLToken.xml 文件

 <?xml version="1.0" encoding="utf-8"?>

<xml>

 <AccessToken>6re6mjuHNHSeptaf8zwxMypCRHWPtTwXOsBffNO2tBPnglPmginrn0N9JwxnlHKw

</ AccessToken >

 < AccessExpires >2014-05-03 19:04:18</ AccessExpires >

</xml>

   

從上面代碼中可以看出首先通過分析XML文檔,獲取里面的AccessToken及AccessExpires,對比當前時間,如果AccessExpires小於等於當前時間,則重新獲取access_token, 代碼中的GetAccessToken()就是獲取access_token的方法,獲取access_token后,將當前時間加上token有效期時間的結果及獲取到的access_token重新寫入到xml中,至此在以后的有效期范圍內,再次獲取access_token 將直接讀取xml文件中的AccessToken即可。

 

http://www.wechatstyle.com/weixinkaifa/225.html


免責聲明!

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



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