微時代

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

2014/5/28 21:00:15 / 來源: / 點擊: 0

摘要:隨著微信使用越來越廣泛,微信公眾平臺開放了許多接口以提供更多個性化的服務,包括自定義菜單接口、客服接口、獲取用戶信息接口、用戶分組接口、群發接口等,開發者在調用這些接口時,都需要傳入一個相同的參數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文檔,獲取里面的AccessTokenAccessExpires,對比當前時間,如果AccessExpires小于等于當前時間,則重新獲取access_token, 代碼中的GetAccessToken()就是獲取access_token的方法,獲取access_token后,將當前時間加上token有效期時間的結果及獲取到的access_token重新寫入到xml中,至此在以后的有效期范圍內,再次獲取access_token 將直接讀取xml文件中的AccessToken即可

相關熱詞搜索:微信公眾平臺開發微信token

上一篇:微信公眾平臺開發之【會員卡】 O2O利器
下一篇:移動支付方式的日新月異 安全問題不容忽視

分享到: 0
辉柏嘉和酷喜乐