国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 開發 > JS > 正文

微信公眾號平臺接口開發 獲取access_token過程解析

2024-05-06 16:54:11
字體:
來源:轉載
供稿:網友

新建Asp.net MVC 4.0項目

微信公眾號,接口開發,access_token

WeChatSubscript是項目UI層

WeChatTools是封裝操作訪問公眾號接口的一些方法類庫

獲取AccssToken

我們要的得到AccessToken,這是所有接口訪問的基礎,我們看看官方給出的接口調用文檔

微信公眾號,接口開發,access_token

很簡單明了,grant_type=client_credential,這是固定的不會變

appid與secret就是前面一章我叫大家記起來的那個認證口令數據。

下邊我們來實現這個功能,新建WeCharBase.cs

public class WeCharBase  {    private static readonly string appId;    private static readonly string appSecret;    static WeCharBase()    {      appId = "**********";      appSecret = "832090bfddabbac19cc8da5053aea47b";    }    public static string AccessToken    {      get { return GetAccessToken(); }    }    /// <summary>獲取access_token</summary>    /// <param name="appId"></param>    /// <param name="appSecret"></param>    /// <returns></returns>    private static string GetAccessToken()    {      if (HttpContext.Current == null)      {        return GetToken();      }      var accessTokenCache = HttpContext.Current.Cache["access_token"];      if (accessTokenCache != null)      {        return accessTokenCache.ToString();      }      else      {        return GetToken();      }    }    /// <summary>獲取ccess_token</summary>    /// <returns></returns>    private static string GetToken()    {      try      {        var client = new WebClient();        client.Encoding = Encoding.UTF8;        var responseData = client.DownloadString(string.Format("https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid={0}&secret={1}", appId, appSecret));        var javaScriptSerializer = new JavaScriptSerializer();        var accessDictionary = javaScriptSerializer.Deserialize<Dictionary<string, object>>(responseData);        var accessToken = accessDictionary["access_token"];        if (accessToken == null)        {          return string.Empty;        }        HttpContext.Current.Cache.Insert("access_token", accessToken, null, DateTime.Now.AddSeconds(7100), TimeSpan.Zero, CacheItemPriority.Normal, null);        HttpContext.Current.Cache.Remove("ticket");        GetTicket();        return accessToken.ToString();      }      catch (Exception ex)      {        return ex.Message;      }    }  }

細心的童鞋功能注意到這里用了HttpContext.Current.Cache,為什么呢?

因為access_token在官方服務器會緩存2個小時,請求一次,這個access_token在2個小時內都有效

所以請求一次得到access_token后,在以后的2個小時內都可以用這個access_token去訪問其他接口

所以沒有必要每次請求不同的接口都請求access_token一次

UI層實現

我們新建控制器SubscriptController.cs

新增2個Action,ViewAccessToken

/// <summary>獲取AccessToken</summary>    /// <returns></returns>    public ActionResult ViewAccessToken()    {      return View();    }    /// <summary>獲取AccessToken</summary>    /// <returns></returns>    public ActionResult GetAccessToken()    {      return Content(WeCharBase.AccessToken);    }

新增視圖

<script type="text/javascript" language="javascript">  $(document).ready(function () {    $("#btnGetAccessToken").click(function () {      $.ajax({        type: "Get",        url: "/Subscript/GetAccessToken",        success: function (responseTest) {          $("#txtAccessToken").text(responseTest);        }      });    });  });</script><table>  <tr>    <td>      <div class="title">獲取access token</div>      <textarea id="txtAccessToken" name="txtAccessToken" rows="4" style="width:500px"></textarea>    </td>    <td><input class="btncss" id="btnGetAccessToken" type="button" value=" 獲取 " /></td>  </tr></table>

運行項目,看看效果

微信公眾號,接口開發,access_token

成功了,是不是很簡單呀

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持VeVb武林網。


注:相關教程知識閱讀請移步到JavaScript/Ajax教程頻道。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 金坛市| 宝山区| 赤峰市| 惠安县| 明水县| 乌拉特前旗| 安陆市| 交口县| 赤水市| 琼结县| 长春市| 荣成市| 东乡县| 高唐县| 都匀市| 湖南省| 丰县| 玉门市| 凤冈县| 濮阳市| 和顺县| 兴业县| 长治县| 昭平县| 峨眉山市| 嘉善县| 浠水县| 汉川市| 云霄县| 额济纳旗| 神池县| 彩票| 永昌县| 浑源县| 洱源县| 贡山| 资兴市| 延安市| 商水县| 浦北县| 贺州市|