0

0

微信公共平台开发-(.net实现)5--access

php中文网

php中文网

发布时间:2016-06-07 15:44:17

|

1412人浏览过

|

来源于php中文网

原创

每次在于微信交互时,都要用到access_token,但是这个值限制的是有时间的,但是access_token,在以后的高级功能里面会经常用到,所以这里不得不这里对前面所讲解的access_token改造一下。 另外需要说明的是access_token是变化的,有自己的周期,官方解释为:"

    每次在于微信交互时,都要用到access_token,但是这个值限制的是有时间的,但是access_token,在以后的高级功能里面会经常用到,所以这里不得不这里对前面所讲解的access_token改造一下。
   另外需要说明的是access_token是变化的,有自己的周期,官方解释为:"有效期为7200秒",这就要求我们把获得的access_token存入一个物理文件或者Application中,请求到过期后修改这些内容,需要用的时候读出来.或者是存入数据库,到期时修改改access_token的值。
   有些人可能想到了,如果过期我就在获得一个就好了,不用物理文件和Application也可以达到同样的效果,但是需要注意了微信平台对每天获得,access_token的次数也作了限制,一个用户出发多次,如果用户多,那肯定就超出了。所以我们还是按照以上的思路实现这些功能:
    在此之前我们已经了解了获得access_token的方法(连接)http://www.cnblogs.com/QLJ1314/p/3838058.html,现在只需要保证它的随时更新就好了.

      首先建立一个access_token类

  

微信公共平台开发-(.net实现)5--access微信公共平台开发-(.net实现)5--access

 1     ///   
 2     ///Access_token 的摘要说明  
 3     ///   
 4     public class Access_token  
 5     {  
 6         public Access_token()  
 7         {  
 8             //  
 9             //TODO: 在此处添加构造函数逻辑  
10             //  
11         }  
12         string _access_token;  
13         string _expires_in;  
14       
15         ///   
16         /// 获取到的凭证   
17         ///   
18         public string access_token  
19         {  
20             get { return _access_token; }  
21             set { _access_token = value; }  
22         }  
23       
24         ///   
25         /// 凭证有效时间,单位:秒  
26         ///   
27         public string expires_in  
28         {  
29             get { return _expires_in; }  
30             set { _expires_in = value; }  
31         }  
32     }  

View Code

微信公共平台开发-(.net实现)5--access微信公共平台开发-(.net实现)5--access

1     "1.0" encoding="utf-8"?>  
2       
3       初始值可以随便写  
4       1990/12/12 16:06:38  
5       

View Code

之前获得Access_token的方法改造一下,让他给Access_token实例赋值

微信公共平台开发-(.net实现)5--access微信公共平台开发-(.net实现)5--access

 1     public static Access_token GetAccess_token()  
 2         {  
 3             string appid = 你的appid ;  
 4             string secret = 你的secret;  
 5             string strUrl = "https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=" + appid + "&secret=" + secret;  
 6             Access_token mode = new Access_token();  
 7       
 8             HttpWebRequest req = (HttpWebRequest)HttpWebRequest.Create(strUrl);  
 9       
10             req.Method = "GET";  
11             using (WebResponse wr = req.GetResponse())  
12             {  
13                 HttpWebResponse myResponse = (HttpWebResponse)req.GetResponse();  
14       
15                 StreamReader reader = new StreamReader(myResponse.GetResponseStream(), Encoding.UTF8);  
16       
17                 string content = reader.ReadToEnd();  
18                 //Response.Write(content);  
19                 //在这里对Access_token 赋值  
20                 Access_token token = new Access_token();  
21                 token = JsonHelper.ParseFromJson(content);  
22                 mode.access_token = token.access_token;  
23                 mode.expires_in = token.expires_in;  
24             }  
25             return mode;  
26         }  

View Code

以上的方法用到了Json对象的处理,所以我把JsonHelper的代码一贴出来供大家参考,一下就是JsonHelper.cs的代码:

得推共享菜园系统
得推共享菜园系统

得推共享菜园系统是一款专门针对家共享菜园开发的,可以通过基地加盟,轻松实现共享菜园平台建设。系统可以支持wap\公众号\小程序\APP. 基本功能:基地管理、菜园分类、菜园订单、菜园维护、菜园动态等 管理后台: 1.网站设置:站点信息,支付配置,短信配置,邮箱配置等 2.账户管理:账户审核,实名认证,用户充值,黑名单等 3.订单管理:服务订单、确认、处理、退单

下载

微信公共平台开发-(.net实现)5--access微信公共平台开发-(.net实现)5--access

 1     using System;  
 2     using System.IO;  
 3     using System.Text;  
 4     using System.Runtime.Serialization.Json;  
 5        
 6        
 7       
 8     public class JsonHelper  
 9     {  
10         ///   
11         /// 生成Json格式  
12         ///   
13         ///   
14         ///   
15         ///   
16         public static string GetJson(T obj)  
17         {  
18             DataContractJsonSerializer json = new DataContractJsonSerializer(obj.GetType());  
19             using (MemoryStream stream = new MemoryStream())  
20             {  
21                 json.WriteObject(stream, obj);  
22                 string szJson = Encoding.UTF8.GetString(stream.ToArray()); return szJson;  
23             }  
24         }  
25         ///   
26         /// 获取Json的Model  
27         ///   
28         ///   
29         ///   
30         ///   
31         public static T ParseFromJson(string szJson)  
32         {  
33             T obj = Activator.CreateInstance();  
34             using (MemoryStream ms = new MemoryStream(Encoding.UTF8.GetBytes(szJson)))  
35             {  
36                 DataContractJsonSerializer serializer = new DataContractJsonSerializer(obj.GetType());  
37                 return (T)serializer.ReadObject(ms);  
38             }  
39         }  
40     }  

View Code

其实还可以直接饮用Newtonsoft.Json.dll 可以直接操作json,这样更方便一些。

我们还需要写一个判断access_token是否过期如果过期更新XML文件的方法。

微信公共平台开发-(.net实现)5--access微信公共平台开发-(.net实现)5--access

 1     ///   
 2         /// 根据当前日期 判断Access_Token 是否超期  如果超期返回新的Access_Token   否则返回之前的Access_Token  
 3         ///   
 4         ///   
 5         ///   
 6         public static string IsExistAccess_Token()  
 7         {  
 8       
 9             string Token = string.Empty;  
10             DateTime YouXRQ;  
11             // 读取XML文件中的数据,并显示出来 ,注意文件路径  
12             string filepath = Server.MapPath("XMLFile.xml");  
13       
14             StreamReader str = new StreamReader(filepath, System.Text.Encoding.UTF8);  
15             XmlDocument xml = new XmlDocument();  
16             xml.Load(str);  
17             str.Close();  
18             str.Dispose();  
19             Token = xml.SelectSingleNode("xml").SelectSingleNode("Access_Token").InnerText;  
20             YouXRQ = Convert.ToDateTime(xml.SelectSingleNode("xml").SelectSingleNode("Access_YouXRQ").InnerText);  
21       
22             if (DateTime.Now > YouXRQ)  
23             {  
24                 DateTime _youxrq = DateTime.Now;  
25                 Access_token mode = GetAccess_token();  
26                 xml.SelectSingleNode("xml").SelectSingleNode("Access_Token").InnerText = mode.access_token;  
27                 _youxrq = _youxrq.AddSeconds(int.Parse(mode.expires_in));  
28                 xml.SelectSingleNode("xml").SelectSingleNode("Access_YouXRQ").InnerText = _youxrq.ToString();  
29                 xml.Save(filepath);  
30                 Token = mode.access_token;  
31             }  
32             return Token;  
33         }  

View Code

好了,完成了上面的工作,我只需要在使用到access_token的时调用如下就OK了,“客户再也不用担心token的过期”
string _access_token = IsExistAccess_Token();

 

相关文章

微信app下载
微信app下载

微信是一款手机通信软件,支持通过手机网络发送语音短信、视频、图片和文字。微信可以单聊及群聊,还能根据地理位置找到附近的人,带给大家全新的移动沟通体验,有需要的小伙伴快来保存下载体验吧!

下载

相关标签:

本站声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

相关专题

更多
php源码安装教程大全
php源码安装教程大全

本专题整合了php源码安装教程,阅读专题下面的文章了解更多详细内容。

150

2025.12.31

php网站源码教程大全
php网站源码教程大全

本专题整合了php网站源码相关教程,阅读专题下面的文章了解更多详细内容。

88

2025.12.31

视频文件格式
视频文件格式

本专题整合了视频文件格式相关内容,阅读专题下面的文章了解更多详细内容。

90

2025.12.31

不受国内限制的浏览器大全
不受国内限制的浏览器大全

想找真正自由、无限制的上网体验?本合集精选2025年最开放、隐私强、访问无阻的浏览器App,涵盖Tor、Brave、Via、X浏览器、Mullvad等高自由度工具。支持自定义搜索引擎、广告拦截、隐身模式及全球网站无障碍访问,部分更具备防追踪、去谷歌化、双内核切换等高级功能。无论日常浏览、隐私保护还是突破地域限制,总有一款适合你!

61

2025.12.31

出现404解决方法大全
出现404解决方法大全

本专题整合了404错误解决方法大全,阅读专题下面的文章了解更多详细内容。

493

2025.12.31

html5怎么播放视频
html5怎么播放视频

想让网页流畅播放视频?本合集详解HTML5视频播放核心方法!涵盖<video>标签基础用法、多格式兼容(MP4/WebM/OGV)、自定义播放控件、响应式适配及常见浏览器兼容问题解决方案。无需插件,纯前端实现高清视频嵌入,助你快速打造现代化网页视频体验。

16

2025.12.31

关闭win10系统自动更新教程大全
关闭win10系统自动更新教程大全

本专题整合了关闭win10系统自动更新教程大全,阅读专题下面的文章了解更多详细内容。

12

2025.12.31

阻止电脑自动安装软件教程
阻止电脑自动安装软件教程

本专题整合了阻止电脑自动安装软件教程,阅读专题下面的文章了解更多详细教程。

5

2025.12.31

html5怎么使用
html5怎么使用

想快速上手HTML5开发?本合集为你整理最实用的HTML5使用指南!涵盖HTML5基础语法、主流框架(如Bootstrap、Vue、React)集成方法,以及无需安装、直接在线编辑运行的平台推荐(如CodePen、JSFiddle)。无论你是新手还是进阶开发者,都能轻松掌握HTML5网页制作、响应式布局与交互功能开发,零配置开启高效前端编程之旅!

2

2025.12.31

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
Excel 教程
Excel 教程

共162课时 | 10.4万人学习

SciPy 教程
SciPy 教程

共10课时 | 1.0万人学习

PHP课程
PHP课程

共137课时 | 8.2万人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号