<微信應用開發系列>定時刷新AccessToken


微信內嵌H5站一直很火,很多公司也想借助微信的用戶群和社交群來做點事情,所以對於各位代碼君來說也算是一個研究方向吧。

access_token是公眾號的全局唯一票據,公眾號調用各接口時都需使用access_token。開發者需要進行妥善保存。access_token的存儲至少要保留512個字符空間。access_token的有效期目前為2個小時,需定時刷新,重復獲取將導致上次獲取的access_token失效。

公眾號可以使用AppID和AppSecret調用本接口來獲取access_token。AppID和AppSecret可在微信公眾平台官網-開發者中心頁中獲得(需要已經成為開發者,且帳號沒有異常狀態)。注意調用所有微信接口時均需使用https協議。

請求地址:https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=APPID&secret=APPSECRET

參數說明:

參數 是否必須 說明
grant_type 獲取access_token填寫client_credential
appid 第三方用戶唯一憑證
secret 第三方用戶唯一憑證密鑰,即appsecret

返回說明:{"access_token":"ACCESS_TOKEN","expires_in":7200}

參數 說明
access_token 獲取到的憑證
expires_in 憑證有效時間,單位:秒

最近做了個demo,功能就是定時取請求微信服務器獲取accesstoken保存到mongodb數據庫中,在有業務需求需要用到accesstoken時就直接取mongodb中的最新一條accesstoken記錄。

Code->業務操作方法:

        /// <summary>
        /// 獲取AccessToken
        /// </summary>
        /// <returns></returns>
        public static MWeChatToken GetToken()
        {
            var token = new MWeChatToken();
            var url = string.Format("https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid={0}&secret={1}", AppId, AppSecret);
            var msg = HttpReq(url, "POST", Encoding.UTF8, 1000);

            try
            {
                var toJson = new JavaScriptSerializer();
                token = toJson.Deserialize<MWeChatToken>(msg);
            }
            catch (Exception ex)
            {
                Log.Error(ex);
            }
            return token;
        }

 Code->保存到數據庫:

        public static void SetToken()
        {
            const string dbString = "Wechat";
            const string colString = "WeChatToken";
            var model = GetToken();
            if (model == null) return;
            var mongoClient = new MongoClient(Conn);

            var mdb = mongoClient.GetServer().GetDatabase(dbString);
            var mCollection = mdb.GetCollection(colString);

            mCollection.Insert(model);
            mongoClient.GetServer().Disconnect();
        }

 


免責聲明!

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



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