<output id="qn6qe"></output>

    1. <output id="qn6qe"><tt id="qn6qe"></tt></output>
    2. <strike id="qn6qe"></strike>

      亚洲 日本 欧洲 欧美 视频,日韩中文字幕有码av,一本一道av中文字幕无码,国产线播放免费人成视频播放,人妻少妇偷人无码视频,日夜啪啪一区二区三区,国产尤物精品自在拍视频首页,久热这里只有精品12

      微信公眾號開發C#系列-4、獲取接口調用憑證

      獲取access_token時序圖

      概述

      獲取接口調用憑證實質就是獲取access_token。在微信接口開發中,許多服務的使用都離不開Access Token,Access Token相當于打開這些服務的鑰匙,正常情況下會在7200秒內失效,重復獲取將導致上次獲取的Token失效,本文將首先介紹如何獲取Access Token。

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

      公眾平臺的API調用所需的access_token的使用及生成方式說明:

      1、建議公眾號開發者使用中控服務器統一獲取和刷新access_token,其他業務邏輯服務器所使用的access_token均來自于該中控服務器,不應該各自去刷新,否則容易造成沖突,導致access_token覆蓋而影響業務;

      2、目前access_token的有效期通過返回的expire_in來傳達,目前是7200秒之內的值。中控服務器需要根據這個有效時間提前去刷新新access_token。在刷新過程中,中控服務器可對外繼續輸出的老access_token,此時公眾平臺后臺會保證在5分鐘內,新老access_token都可用,這保證了第三方業務的平滑過渡;

      3、access_token的有效時間可能會在未來有調整,所以中控服務器不僅需要內部定時主動刷新,還需要提供被動刷新access_token的接口,這樣便于業務服務器在API調用獲知access_token已超時的情況下,可以觸發access_token的刷新流程。

      怎么獲取access_token?

      公眾號和小程序均可以使用AppID和AppSecret調用接口來獲取access_token。AppID和AppSecret可在“微信公眾平臺-開發-基本配置”頁中獲得(需要已經成為開發者,且帳號沒有異常狀態)。調用接口時,請登錄“微信公眾平臺-開發-基本配置”提前將服務器IP地址添加到IP白名單中,點擊查看設置方法,否則將無法調用成功。小程序無需配置IP白名單。

      這兒需要特別說明的是:在調用所有微信接口時均使用https協議;還有就是如果第三方不使用中控服務器,而是使選擇各個業務邏輯點各自去刷新access_taken,那么就有可能會產生沖突,導致服務不穩定。

      獲取Access Token接口的網址如下:

      https請求方式: GET
      https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=[APPID]&secret=[APPSECRET]
      

      方括號內的參數APPID與APPSECRET就是我們公眾號的掊入信息,如下圖所示:

      appID與appsecret

      因為得到access_token的接口支持Get請求,因為我們可以直接用瀏覽器訪問這個接口得到access_token看一下效果,如下圖所示:

      瀏覽器直接訪問獲取access_token

      正常情況下,微信會返回下述JSON數據包給公眾號:

      錯誤時微信會返回錯誤碼信息,JSON數據包實示例如下(該示例為AppID無效錯誤):

      可以看到返回的是一個Json格式的字符串,同時包含了過期的時間為7200秒,也就是2個小時內失效,之后需要重新請求前面的URL獲取新的Token。

      實際應用過程中我們一般建議統一的接口來定時刷新微信access_token,以保證整個微信應用的正常運行。只要2小時內統一刷新一下即可。同時對于獲取到的憑證一般統一保存,可以存在數據庫中,也可以放redis或配置文件中。

      注意:使用access_token的時候要注意此接口是有調用頻率限制的,當超過了每日最大的調用頻率微信服務器就會對當前公眾號做接口限制,具體詳情請閱讀官方文檔(微信公眾號接口頻率限制說明

      實現方式

      獲取access_token的參考代碼如下:

        List<KeyValuePair<string, object>> parmeters = new List<KeyValuePair<string, object>>
        {
            new KeyValuePair<string, object>(WeixinOfficialAccountTable.FieldDeleteMark, 0)
        };
        var listOfficialAccount = BaseEntity.GetList<WeixinOfficialAccountEntity>(RDIFrameworkService.Instance.WeixinBasicService.GetOfficialAccountDTByValues(parmeters));
        if (listOfficialAccount != null && listOfficialAccount.Count() > 0)
        {
            foreach (WeixinOfficialAccountEntity entity in listOfficialAccount)
            {
                try
                {
                    if (entity.Category == (int)WeChatSubscriberEnum.EnterpriseSubscriber)
                    {
                        if (!string.IsNullOrEmpty(entity.AppId) && !string.IsNullOrEmpty(entity.AppSecret))
                        {
                            //方法一:使用Senparc.WeiXin SDK的方法
                            entity.AccessToken = Senparc.Weixin.QY.CommonAPIs.CommonApi.GetToken(entity.AppId, entity.AppSecret).access_token;
                            //方式二,直接調用微信的接口方法
                            //var url = string.Format("https://api.weixin.qq.com/cgi-bin/token?grant_type={0}&appid={1}&secret={2}", "client_credential".AsUrlData(), entity.AppId.AsUrlData(), entity.AppSecret.AsUrlData());
                            //AccessTokenResult result = Get.GetJson<AccessTokenResult>(url);
                            //entity.AccessToken = result.access_token;
      
                            entity.ModifiedOn = DateTime.Now;
                            returnValue += RDIFrameworkService.Instance.WeixinBasicService.UpdateOfficialAccount(entity);
                        }
                    }
                    else
                    {
                        if (!string.IsNullOrEmpty(entity.AppId) && !string.IsNullOrEmpty(entity.AppSecret))
                        {
                            //方法一:使用Senparc.WeiXin SDK的方法
                            entity.AccessToken = Senparc.Weixin.MP.CommonAPIs.CommonApi.GetToken(entity.AppId, entity.AppSecret).access_token;
                            //方式二,直接調用微信的接口方法
                            //var url = string.Format("https://api.weixin.qq.com/cgi-bin/token?grant_type={0}&appid={1}&secret={2}", "client_credential".AsUrlData(), entity.AppId.AsUrlData(), entity.AppSecret.AsUrlData());
                            //AccessTokenResult result = Get.GetJson<AccessTokenResult>(url);
                            //entity.AccessToken = result.access_token; 
                            entity.ModifiedOn = DateTime.Now;
                            returnValue += RDIFrameworkService.Instance.WeixinBasicService.UpdateOfficialAccount(entity);
                        }
                    }
                }
                catch (Exception ex)
                {
      
                }
            }
        }
      

      上面的代碼我們封裝了企業訂閱號、媒體訂閱號、個人訂閱號、測試號的憑證調用。同時使用的Senparc.WeiXin SDK接口直接獲取憑證的方式,大家可供參考,得到的憑證我是存在了數據庫中,同時支持多公眾號統一維護,詳細可參考后面的文章會介紹微信公眾號統一管理以及定時刷新公眾號憑證。

      調試獲取到的憑證效果如下:

      代碼調試獲取access_token

      參考文章

      微信公眾平臺技術文檔-官方

      Senparc.Weixin SDK + 官網示例源代碼

      RDIFramework.NET — 基于.NET的快速信息化系統開發框架 — 系列目錄

      RDIFramework.NET ━ .NET快速信息化系統開發框架 ━ 工作流程組件介紹

      RDIFramework.NET框架SOA解決方案(集Windows服務、WinForm形式與IIS形式發布)-分布式應用

      RDIFramework.NET代碼生成器全新V3.5版本發布-重大升級


      一路走來數個年頭,感謝RDIFramework.NET框架的支持者與使用者,大家可以通過下面的地址了解詳情。

      RDIFramework.NET官方網站:http://www.rdiframework.net/

      RDIFramework.NET官方博客:http://blog.rdiframework.net/

      同時需要說明的,以后的所有技術文章以官方網站為準,歡迎大家收藏!

      RDIFramework.NET框架由專業團隊長期打造、一直在更新、一直在升級,請放心使用!

      歡迎關注RDIFramework.net框架官方公眾微信(微信號:guosisoft),及時了解最新動態。

      掃描二維碼立即關注

      微信號:guosisoft

      posted @ 2019-04-02 10:48  .NET快速開發框架  閱讀(1356)  評論(2)    收藏  舉報
      主站蜘蛛池模板: 国产一区二区不卡在线| 四虎网址| 草草浮力影院| 116美女极品a级毛片| 日韩有码中文在线观看| 亚洲av影院一区二区三区| 久久精品久久黄色片看看| 无码人妻丝袜在线视频| 国产一区精品综亚洲av| 日本国产精品第一页久久| 被黑人巨大一区二区三区| 国精品无码一区二区三区在线蜜臀| 西乌| 曝光无码有码视频专区| 精品久久精品久久精品九九| 香蕉乱码成人久久天堂爱| 国产午夜福利免费入口| 亚洲精品一区二区三区蜜臀| 人妻系列中文字幕精品| 精品无码人妻一区二区三区| 亚洲欧美日韩综合一区二区| 亚洲av永久无码精品漫画| 国产精品久线在线观看| 精品国产成人午夜福利| 精品国产高清中文字幕| 国产精品成人无码久久久| 人妻少妇无码精品视频区| 影音先锋啪啪av资源网站| 一边吃奶一边做动态图| 91国产自拍一区二区三区| 亚洲精品韩国一区二区| 国产精品一区二区 尿失禁| 青春草在线视频观看| 成人无码潮喷在线观看| 国产妇女馒头高清泬20p多 | 丁香婷婷综合激情五月色| 激情综合网一区二区三区| 99久久精品费精品国产一区二 | 亚洲精品乱码久久久久久自慰| 在线aⅴ亚洲中文字幕| 中文午夜乱理片无码|