zoukankan      html  css  js  c++  java
  • 微信企业号开发:获取AccessToken

      微信企业号开发,须要调用微信企业号的相关接口。则必须使用AccessToken,但AccessToken须要corpid。corpsecret两个參数调用相关接口才干获取。

    并且每个接口都有一定的次数限制,当然获取AccessToken的接口也有这个限制。

    每个AccessToken的有效期为7200秒,也就是两个小时,在有效期内调用接口。则自己主动续期。因此建议在获取到AccessToken后,保存在在某一个地方。等到快过期时在又一次获取。事实上AccessToken有点相似于web程序中的session,这个有效期7200秒相当于session的有效期,调用接口,则自己主动续期,就相当于web程序中用户登陆后,和服务端有交互,session的有效期自然延长了。


    核心代码AccessTokenInfo类:

    public class AccessTokenInfo
        {
            /// <summary>
            /// access_token
            /// </summary>
           public string access_token { get; set; }
    
            /// <summary>
            /// 凭证有效时间。单位:秒 
            /// </summary>
           public long expires_in { get; set; }
    
            /// <summary>
            /// 获取时间
            /// </summary>
            public DateTime GetTime { get; set; }
        }

    BLLAccessToken类

        /// <summary>
        /// 获取企业登陆access_token
        /// </summary>
       public static class BLLAccessToken
        {
           static AccessTokenInfo TokenInfo = null;     
           public static string GetAccessToken()
           {
                string AccessToken = "";
               DateTime now=DateTime.Now;
               if (TokenInfo == null)  //首次获取
               {
                   TokenInfo = UpDateAccessToken();
               }
               else
               {
                   if (TokenInfo.GetTime.AddSeconds(TokenInfo.expires_in - 30) < now) //提前30秒又一次获取
                   {
                       TokenInfo = UpDateAccessToken();
                   }
               }
               AccessToken = TokenInfo.access_token;
               return AccessToken;
           }
           private static AccessTokenInfo UpDateAccessToken()
           {
               string CorpId = AppIdInfo.GetCorpId();//corpid
               string Secret = AppIdInfo.GetSecret(); //corpsecret
               AccessTokenInfo info = new AccessTokenInfo();
               WebUtils ut = new WebUtils();
               /// https://qyapi.weixin.qq.com/cgi-bin/gettoken?corpid=wxb7f1db8fd6aa9d68&corpsecret=aoxZ7D5-SgLRUbKY2fwQykW36RqxoIdNIn1pIiGy9iSdXgMHwQCzUsniQVAsBCTt
               string urlFormat = "https://qyapi.weixin.qq.com/cgi-bin/gettoken?corpid={0}&corpsecret={1}";
               var url = string.Format(urlFormat, CorpId, Secret);
               string temp = ut.DoGet(url);         
               try
               {
                   AccessTokenInfo tempAccessTokenjson = Tools.JsonStringToObj<AccessTokenInfo>(temp);
                   info.access_token = tempAccessTokenjson.access_token;
                   info.expires_in = tempAccessTokenjson.expires_in;
                   info.GetTime = DateTime.Now;              
               }
               catch(Exception ex)
               {
                   LogInfo.Error("获取AccessToken异常", ex);
               }
               return info;
           }
    
        }


    微信企业号开发:经常使用的參数

    微信企业号开发:corpsecret究竟在哪块呢?

    获取AccessToken官方文档



      


  • 相关阅读:
    Django 自带密码加密,自定密码加密方式 及自定义验证方式
    详细解读Jquery各Ajax函数:$.get(),$.post(),$.ajax(),$.getJSON()
    Django中请求的生命周期
    Django---ORM操作大全
    Django----中间件详解
    Delphi 使用Query组件的SQL查询
    Delphi 使用Tabel组件的记录查找
    Delphi 字段的操作
    Delphi 使用数据库浏览器
    Delphi 建立ODBC数据源
  • 原文地址:https://www.cnblogs.com/wgwyanfs/p/6811939.html
Copyright © 2011-2022 走看看