国产探花免费观看_亚洲丰满少妇自慰呻吟_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教程頻道。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 亳州市| 荥经县| 苏尼特左旗| 滕州市| 舒兰市| 兰西县| 英山县| 正镶白旗| 绥棱县| 凤庆县| 怀柔区| 留坝县| 鄂托克前旗| 松潘县| 五峰| 左权县| 宜良县| 静海县| 耿马| 兴文县| 宁波市| 卓尼县| 沙洋县| 广河县| 揭阳市| 新津县| 青田县| 海安县| 金阳县| 隆回县| 财经| 南康市| 富蕴县| 阿瓦提县| 三河市| 白河县| 永昌县| 阜平县| 宜丰县| 敖汉旗| 德江县|