新建Asp.net MVC 4.0项目
微信脚本是项目用户界面层
微信工具是封装操作访问公众号接口的一些方法类库
获取AccssToken
我们要的得到AccessToken,这是所有接口访问的基础,我们看看官方给出的接口调用文档
很简单明了,grant_type=client_credential,这是固定的不会变
应用编号与秘密就是前面一章我叫大家记起来的那个认证口令数据。
下边我们来实现这个功能,新建微信公众号
公共类微信数据库{私有静态只读字符串应用编号私有静态只读字符串密钥静态微信数据库(){ appId=' * * * * * * * appSecret=' 832090 bfddabac 19 cc 8da 5053 EAA 47 b ';}公共静态字符串访问令牌{ get { return GetAccessToken();} } ///摘要获取access _ token/summary/返回/返回私有静态字符串GetAccessToken(){ if(HttpContext .current==null){ return GetToken();} var accessTokenCache=HttpContext .当前。缓存[' access _ token '];if (accessTokenCache!=null){ 0返回访问令牌缓存.ToString();} else { return GetToken();} } ///摘要获取ccess _ token/summary///returns/returns私有静态字符串GetToken(){ try { var client=new WebClient();客户。编码=编码UTF8var响应=客户端下载字符串(字符串. format(' https://API。微信。QQ。com/CGI-bin/token?grant _ type=client _ credential appid={ 0 } secret={ 1 } ',appId,appSecret));var JavaScript序列化程序=new JavaScript序列化程序();var访问字典=JAVAScript序列化程序.反序列化字典字符串,对象(响应字符串);var accessToken=accessDictionary[' access _ token '];if(AccessToken==null){ 0返回字符串。空的;} HttpContext .当前。缓存。插入(' access_token ',accessToken,null,DateTime .现在。添加秒(7100),时间跨度。零,缓存项目优先级正常,空);HttpContext .当前。缓存。删除("票证");GetTicket();返回接入令牌.ToString();} catch (Exception ex) { return ex .消息;} } }细心的童鞋功能注意到这里用了HttpContext .当前。缓存,为什么呢?
因为访问令牌在官方服务器会缓存2个小时,请求一次,这个访问令牌在2个小时内都有效
所以请求一次得到访问令牌后,在以后的2个小时内都可以用这个访问令牌去访问其他接口
所以没有必要每次请求不同的接口都请求访问令牌一次
用户界面层实现
我们新建控制器下标控制器. cs
新增2个操作,视图访问令牌
///摘要获取AccessToken/summary///returns/returns public action result View AccessToken(){ return View();} ///摘要获取AccessToken/summary///返回/返回公共操作结果GetAccessToken(){返回Content(微信基站. AccessToken);}新增视图
脚本类型='text/javascript '语言='javascript' $(文档)。ready(function(){ $(' # btngetaccestoken ')).单击(函数(){ $).ajax({ type: 'Get ',URL : '/Subscription/GetAccessToken ',success : function(responseTest){ $(' # TxTacesToken ').文本(响应测试);} });});});/script table tr TD div class=' title '获取访问令牌/div textarea id=' Txtttaccestoken ' name=' Txtttaccestoken ' rows=' 4 ' style=' width :500 px '/textarea/TD tdinput class=' btncss ' id=' btngetaccestoken ' type=' button ' value='获取//td /tr/table运行项目,看看效果
成功了,是不是很简单呀
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持我们。