六狼论坛

 找回密码
 立即注册

QQ登录

只需一步,快速开始

新浪微博账号登陆

只需一步,快速开始

搜索
查看: 697|回复: 0

微信公众平台开发之微信access_token如何有效长期保存

[复制链接]

升级  72%

8

主题

8

主题

8

主题

童生

Rank: 1

积分
36
 楼主| 发表于 2014-12-4 18:26:38 | 显示全部楼层 |阅读模式
微信公众平台开发之微信access_token如何有效长期保存
               
        摘要:随着微信使用越来越广泛,微信公众平台开放了许多接口以提供更多个性化的服务,包括自定义菜单接口、客服接口、获取用户信息接口、用户分组接口、群发接口等,开发者在调用这些接口时,都需要传入一个相同的参数access_token,它是公众账号的全局唯一票据,它是接口访问凭证。
                   
        access_token的有效期是7200秒(两小时),在有效期内可以使用,一旦access_token过期,需要重新通过调用微信接口获取。目前微信接口上面获取access_token每日限额为2000次,如果每次创建菜单,发送主动消息,获取用户信息,群发信息之前都去获取,必然会达到该接口的频率限制,在实际微信接口开发中,我们需要把获取到的access_token存储起来,然后设置有效期,在有效期过期后再去获取,以保证access_token实时的有效性。
          
        下面是自己想到的一种xml的存储方式,直接贴代码:
             public string GetExistAccessToken()
                {
                    // 读取XML文件中的数据
                    string filepath = Server.MapPath("/File/XMLToken.xml");
                    StreamReader str = new StreamReader(filepath, System.Text.Encoding.UTF8);
                    XmlDocument xml = new XmlDocument();
                    xml.Load(str);
                    str.Close();
                    str.Dispose();
                   stringToken=xml.SelectSingleNode("xml").SelectSingleNode("AccessToken").InnerText;
                   DateTime AccessExpires =Convert.ToDateTime(xml.SelectSingleNode("xml").SelectSingleNode("AccessExpires").InnerText);
          
                    if (DateTime.Now >= AccessExpires)
                    {
                        Access_token mode = GetAccessToken();
                       xml.SelectSingleNode("xml").SelectSingleNode("AccessToken").InnerText = mode.access_token;
                        DateTime _accessExpires =DateTime.Now.AddSeconds(int.Parse(mode.expires_in));
                       xml.SelectSingleNode("xml").SelectSingleNode("AccessExpires").InnerText =_accessExpires.ToString();
                        xml.Save(filepath);
                        Token = mode.access_token;
                    }
                    return Token;
                }
          贴上XMLToken.xml 文件
         <?xml version="1.0" encoding="utf-8"?>
        <xml>
         <AccessToken>6re6mjuHNHSeptaf8zwxMypCRHWPtTwXOsBffNO2tBPnglPmginrn0N9JwxnlHKw
        </ AccessToken >
         < AccessExpires >2014-05-03 19:04:18</ AccessExpires >
        </xml>
            
        从上面代码中可以看出首先通过分析XML文档,获取里面的AccessToken及AccessExpires,对比当前时间,如果AccessExpires小于等于当前时间,则重新获取access_token, 代码中的GetAccessToken()就是获取access_token的方法,获取access_token后,将当前时间加上token有效期时间的结果及获取到的access_token重新写入到xml中,至此在以后的有效期范围内,再次获取access_token 将直接读取xml文件中的AccessToken即可。


摘自:http://www.wechatstyle.com/weixinkaifa/225.html
微信公众平台开发之微信access_token如何有效长期保存

您需要登录后才可以回帖 登录 | 立即注册 新浪微博账号登陆

本版积分规则

快速回复 返回顶部 返回列表