微信公众平台开发之微信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

本文转自左正博客园博客,原文链接:http://www.cnblogs.com/soundcode/p/4489727.html ,如需转载请自行联系原作者
相关文章
|
11天前
|
小程序 前端开发 API
微信小程序全栈开发中的异常处理与日志记录
【4月更文挑战第12天】本文探讨了微信小程序全栈开发中的异常处理和日志记录,强调其对确保应用稳定性和用户体验的重要性。异常处理涵盖前端(网络、页面跳转、用户输入、逻辑异常)和后端(数据库、API、业务逻辑)方面;日志记录则关注关键操作和异常情况的追踪。实践中,前端可利用try-catch处理异常,后端借助日志框架记录异常,同时采用集中式日志管理工具提升分析效率。开发者应注意安全性、性能和团队协作,以优化异常处理与日志记录流程。
|
11天前
|
小程序 安全 数据安全/隐私保护
微信小程序全栈开发中的身份认证与授权机制
【4月更文挑战第12天】本文探讨了微信小程序全栈开发中的身份认证与授权机制。身份认证包括手机号验证、微信登录和第三方登录,而授权机制涉及角色权限控制、ACL和OAuth 2.0。实践中,开发者可利用微信登录获取用户信息,集成第三方登录,以及实施角色和ACL进行权限控制。注意点包括安全性、用户体验和合规性,以保障小程序的安全运行和良好体验。通过这些方法,开发者能有效掌握小程序全栈开发技术。
|
11天前
|
JavaScript 前端开发 小程序
微信小程序全栈开发之性能优化策略
【4月更文挑战第12天】本文探讨了微信小程序全栈开发的性能优化策略,包括前端的资源和渲染优化,如图片压缩、虚拟DOM、代码分割;后端的数据库和API优化,如索引创建、缓存使用、RESTful API设计;以及服务器的负载均衡和CDN加速。通过这些方法,开发者可提升小程序性能,优化用户体验,增强商业价值。
|
11天前
|
小程序 前端开发 JavaScript
微信小程序全栈开发中的PWA技术应用
【4月更文挑战第12天】本文探讨了微信小程序全栈开发中PWA技术的应用,PWA结合Web的开放性和原生应用的性能,提供离线访问、后台运行、桌面图标和原生体验。开发者可利用Service Worker实现离线访问,Worker处理后台运行,Web App Manifest添加桌面图标,CSS和JavaScript提升原生体验。实践中需注意兼容性、性能优化和用户体验。PWA技术能提升小程序的性能和用户体验,助力开发者打造优质小程序。
|
1月前
|
小程序 前端开发 程序员
微信小程序开发入门教程-小程序账号注册及开通
微信小程序开发入门教程-小程序账号注册及开通
|
1月前
|
开发者
微信公众平台开发基本配置
微信公众平台开发基本配置
86 0
|
11天前
|
SQL 安全 小程序
探索微信小程序全栈开发的安全性问题
【4月更文挑战第12天】本文探讨了微信小程序全栈开发中的安全性问题,包括数据安全、接口安全、隐私保护和代码安全。为解决这些问题,建议采取数据加密、使用HTTPS协议、身份认证与授权、输入验证、安全审计及漏洞扫描以及安全培训等措施。通过这些方法,开发者可提升小程序安全性,保护用户隐私和数据。
|
1月前
|
小程序 JavaScript
在使用微信小程序开发中用vant2框架中的Uploader 文件上传wx.uploadFile无反应和使用多图上传
网上有的说是bind:after-read="afterRead"的命名问题不支持-,但是我这儿执行了console.log("file",file);证明函数运行了。后来发现是multiple="true"原因开启了多图上传,如果是多图上传的话file就是数组了
25 2
|
1月前
|
移动开发 JavaScript
微信公众号H5开发,在微信浏览器打开H5,无法一键下载图片
微信公众号H5开发,在微信浏览器打开H5,无法一键下载图片
35 0
|
1月前
|
移动开发 小程序 API
微信小程序的一些开发限制
微信小程序的一些开发限制
73 1