• <微信应用开发系列>定时刷新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();
            }
  • 相关阅读:
    Angel investor
    [HNOI 2003]消防局的设立
    [USACO 08JAN]Telephone Lines
    [Luogu 2265]路边的水沟
    [NOI 2010]航空管制
    [HNOI 2004]敲砖块
    [Luogu 1730]最小密度路径
    [USACO 13NOV]No Change
    [POJ 1006]生理周期
    [AHOI 2012]树屋阶梯
  • 原文地址:https://www.cnblogs.com/benpao/p/4559657.html
Copyright © 2020-2023  润新知