tnblog
首页
视频
资源
登录

获取微信token,使用缓存处理token过期

8311人阅读 2019/12/12 16:36 总访问:399843 评论:0 收藏:0 手机
分类: 微信公众号

今天我们学习微信公众号的开发啦


 针对于微信公众号的开发。步骤还是有些繁琐,我们需要一步一步来。

 1,在百度搜索微信公众平台,注册一个自己的微信公众号。

 2,购买属于自己的服务器。完成基础配置。

 今天讲解的内容是怎样 获取access_token ,并处理token过期

 根据微信公众号开发文档说明。我们需要get请求获取 access_token

第一,新建一个类库,封装获取token的方法,思路如下:

get请求获取token,需要自己的appid和appsecret,如图:

  具体方法代码·如下:

  1. public static string GetToken()
  2.         {
  3.             RedisClient redisClient = new RedisClient();
  4.             //先从缓存中获取
  5.             string token = redisClient.Get<string>("token");
  6.             if (token != null)
  7.             {
  8.                 return token;
  9.             }
  10.             //缓存中没有就从外网获取
  11.             HttpClient httpClient = new HttpClient();
  12.             //string result=  httpClient.GetAsync("
  13.               https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&
  14.         appid=xxxxxxx&secret=yyyyyyyyyy").Result.Content.ReadAsStringAsync().Result;
  15.             //下面要处理时间过期事件
  16.             // 1,在该类库需要使用依赖注入 json    Install-Package Newtonsoft.Json -Version 12.0.1
  17.             AccessTokenDTO accessTokenDTO = JsonConvert.DeserializeObject<AccessTokenDTO>(result);
  18.             //2,把token写入缓存里
  19.             //在该类库先依赖注入数据  install-package ServiceStack.Redis
  20.             //手动启动redis服务
  21.             //为了token 2小时过期,所以我们缓存的时间要和微信token时间大致相同,可设置差几百秒(160)
  22.             redisClient.Set<string>("token", accessTokenDTO.access_token,TimeSpan.FromSeconds(accessTokenDTO.expires_in-160));
  23.             return accessTokenDTO.access_token;
  24.         }

  第二:在控制器的话就只需要调用方法,就可获得数据,如图:

 


注意事项: 我们需要把自己写的项目发布到自己的服务器上,然后配置好启动。

 开启服务器步骤:可用快捷键windows+r ,输入命令:mstsc 打开窗口--》填自己注册服务器的ip地址--》用户登录

这里的用户名都是:administrator,密码为自己服务器的实例密码(新用户可到服务器控制台的实例列表重置实例密码)

 

1,进到自己的服务器空间后,就像原来发布自己项目一样把已经发布的项目复制粘贴到服务器,然后发布,注意配置的时候用80端口。

2,我们还需要在服务器里更改项目的配置具体步骤如下:

     项目右键--》编辑权限--》选择安全--》编辑--》添加--》高级--》立即查找--》找到evenone的权限,添加即可。下图参考:

 


3,还有一种情况就是配置好了权限浏览还不行,可能报403的错误。那么问题应该是我们项目得到支撑的权限不够,需要在控制面板添加,如图:


    

 

  添加一些web ef项目必要的权限


 最后一步就是在百度里进入自己服务器控制台,然后进入本实例安全组--》配置规则--》添加安全组规则,配置,如图;



然后重启刷新一下项目就行了。自己可以外网访问自己的ip地址,看看能不能运行哦。


好啦,本次分享就到这里啦,提问请留言。



评价

获取微信token的小问题

获取access_tokenpublicstaticstringGetToken() { HttpClienthttpClient=newHttpClient(); //获取 stringrester=httpCl...

.net 微信开发获取access_token使用缓存处理token过期

获取access_token很简单,使用httpclient发起一个请求就可以了,我们使用redis做一下缓存处理publicstaticstringGetToken()...

C 使用CancellationtokenSource取消多线程

有时间我们在使用多线程的时候,需要取消线程的执行,可以使用CancellationTokenSource来取消对Task开辟多线程的取消如下:...

类型“DbSet”在未引用的程序集中定义。必须添加对程序集“EntityFramework Version=5.0.0.0 Culture=neutral PublicKeytoken=b7

在用mvc+ef的时候在DAL层引用上下文信息的时候会报出下面错误其实就是没得EntityFromwork,打开vs项目,点击工具,选择NuGe...

AJAX调用webapi上传图片或文件。设置token,设置Authorization Bearer

AJAX调用webapi上传图片或文件,并返回刚上传的文件名。废话不多说直接贴代码吧html相关:&lt;!DOCTYPEhtml&gt; &lt;html&...

使用 JSON WEB token (jwt) 验证

一、什么JSON Web Tokens?JSON Web Tokens是一种开放的行业标准 RFC 7519方法,用于在双方之间安全地表示索赔。JWT.IO允许...

.NET HttpClient和webapi相关的东东先记录一点。传递Authorization headertoken

get请求传递Authorization header,tokenstringurl=&quot;你请求的url&quot;; stringtoken=&quot;yourtoken&quot;; Http...

net core使用jwt二 : 验证前台传递的token

上一篇说了net core中生成jwt:http://www.tnblog.net/aojiancc2/article/details/2815现在说说怎么来验证前台传递的jwt,其...

net core使用jwt 三: 使用过滤器实现通用token验证token验证工具类

net core使用jwt二 : 验证前台传递的tokenhttp://www.tnblog.net/aojiancc2/article/details/2845过滤器实现通用token验证...

微信验证token

const string Token = &quot;你的token&quot;; protected void Page_Load(object sender, EventArgs e) { if (Request.Ht...

微信验证token失败解决方法

第一个为你的服务器地址第二个位你的token 可以随便输 但 需要代码的验证 验证如下 新建一个mvc项目在控制器项目写如下代码...

redis缓存token+设置过期时间+后台设置菜单

今天我们记录一下后台访问接口+Redis缓存数据首先我们要调一下接口这里我们要拿到数据(Token)的话 需要反序列化因为我这个...

微信各公众号Access_token获取(一)

接口调用请求说明https请求方式:GET https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&amp;appid=A...

微信公众号Access_token获取(二)

接口调用请求说明(可参考《微信各公众号Access_token获取(一)》)https请求方式:GET https://api.weixin.qq.com/cgi-bin/t...

微信公众开发token的获取和redis缓存结合用

创建一个类库DTO_Token_Tools,在创建一个工具类在工具类里面写一个access_Token_Tool()方法//获取token publicstringacce...
你之所以觉得时间一年比一年过得快,是因为时间对你一年比一年重要。
排名
13
文章
64
粉丝
20
评论
30
MUI框架页面间的传值指针
XingDy姐 : 不错哦
MUI框架页面间的传值指针
剑轩 : 接口的真实地址可以用xx/yy什么的代替哦,真实地址还是隐藏一下好
.NET EF 用户按钮权限
YOU : 可以,在写文章的时候,有需要写代码的地方,可以选择编辑器上的代...
.NET EF 用户按钮权限
剑轩 : 哈哈哈哈,你这个追女生的逻辑
EF三种模式解析
剑轩 : 好文采!
重要sql语句和linq,lamdba分组条件查询语句
剑轩 : 开头那句诗句写得很好哇!
ICP备案 :渝ICP备18016597号-1
网站信息:2018-2025TNBLOG.NET
技术交流:群号656732739
联系我们:contact@tnblog.net
公网安备:50010702506256
欢迎加群交流技术
没有人的文明毫无意义。