C# v3微信 access token 过期处理的问题

 1         //记录access token 申请时的时间
 2         private static DateTime GetAccessToken_Time;
 3         /// <summary>
 4         /// 过期时间为7200秒
 5         /// </summary>
 6         private static int Expires_Period = 7200;

       private static string mAccessToken;
 7         /// <summary>
 8         /// 获取access token
 9         /// </summary>
10         /// <returns></returns>
11         private static string GetAccessToken()
12         {
13             if (string.IsNullOrEmpty(mAccessToken) || HasExpired())
14             {
15                 string Url = "https://api.weixin.qq.com/cgi-bin/token";
16                 string RequestPara = "grant_type=client_credential&appid=" + APPID + "&secret=" + APPSECRET;
17                 string result = WebRequestHelper.GetData(RequestPara, Url);
18                 if (!result.Equals(""))
19                 {
20                     GetAccessToken_Time = DateTime.Now;
21                     accesstoken token = JsonFormat.Deserialize<accesstoken>(result);
22                     Expires_Period = Convert.ToInt32(token.expires_in);
23                     return token.access_token;
24                 }
25                 else
26                 {
27                     GetAccessToken_Time = DateTime.MinValue;
28                 }
29             }
30             return null;
31         }
32
33         /// <summary>
34         /// 判断Access_token是否过期
35         /// </summary>
36         /// <returns>bool</returns>
37         private static bool HasExpired()
38         {
39             if (GetAccessToken_Time != null)
40             {
41                 //过期时间,允许有一定的误差,一分钟。获取时间消耗
42                 if (DateTime.Now > GetAccessToken_Time.AddSeconds(Expires_Period).AddSeconds(-60))
43                 {
44                     return true;
45                 }
46             }
47             return false;
48         }
时间: 2024-08-11 14:44:38

C# v3微信 access token 过期处理的问题的相关文章

使用缓存Memcache存储更新微信access token

关键字:Memcache access_token 更新 存储 7200 本文介绍如何使用缓存Memcache存储及更新 access token的方法. 一.Access Token access_token是公众号的全局唯一票据,公众号调用各接口时都需使用access_token.正常情况下access_token有效期为7200秒,重复获取将导致上次获取的access_token失效. 公众号可以使用AppID和AppSecret调用本接口来获取access_token.AppID和App

iOS实现OAuth2.0中刷新access token并重新请求数据操作

一.简要概述 OAuth2.0是OAuth协议的下一版本,时常用于移动客户端的开发,是一种比较安全的机制.在OAuth 2.0中,server将发行一个短有效期的access token和长生命期的refresh token.这将允许客户端无需用户再次操作而获取一个新的access token,并且也限制了access token的有效期.即当sever发送的access token过期之后,客户端会调用方法,将access token和refresh token发送给服务端,服务端将会返回新的

ASP.NET OAuth:解决refresh token无法刷新access token的问题

最近同事用iOS App调用Open API时遇到一个问题:在access token过期后,用refresh token刷新access token时,服务器响应"invalid_grant"错误:而在access token没有过期的情况下,能正常刷新access token. 先查看了一下OAuth规范中的“Refreshing an Expired Access Token”流程图,以确认客户端的操作流程有没有问题. 问题发生在上图中的(G)操作步骤.iOS App就是按上图的

atitit. access token是什么??微信平台公众号开发access_token and Web session保持状态机制

atitit. access token是什么??微信平台公众号开发access_token and Web session保持状态机制 1. token机制and  session保持状态机制 1 2. access token是什么?? 1 3. 为什么需要access token 2 4. 需不需要保存access_token,如何保存??? 2 5. access_token在何时被创建 2 6. 为什么不直接使用appid保持状态 2 7. access_token的过期问题 3 8.

微信公众平台开发学习笔记2--获取access token

access_token是公众号的全局唯一票据,公众号调用各接口时都需使用access_token.获取的access_token过期时间为2小时.获取access token具体说明请参考官方文档. 我们不能因为每个业务要用到access_token的时候,都去微信服务器去请求获取新的access_token,所以我们要把获取到的access_token进行保存. 解决问题的大体思路如下: 我们将获取到的access_token码,和调用微信接口时的时间保存到数据库,或者记录到xml中,每次要

微信公众号开发Access Token

Access Token 在微信公众平台接口开发中,Access Token占据了一个很重要的地位,相当于进入各种接口的钥匙,拿到这个钥匙才有调用其他各种特殊接口的权限. access_token是公众号的全局唯一票据,公众号调用各接口时都需使用access_token.正常情况下access_token有效期为7200秒,重复获取将导致上次获取的access_token失效. 公众号可以使用AppID和AppSecret调用本接口来获取access_token.AppID和AppSecret可

PHP CURL获取微信公众平台的ACCESS TOKEN以及创建菜单的方法

//使用curl模块,必须在php.in 里面将curl模块开启.<?php header("Content-type: text/html; charset=utf-8"); define("app_id","xxx");//APP_ID define("app_secret","xxxx");//APP_SECRET //获取access token 的方法 function get_access

微信开发-ACCESS TOKEN 过期失效解决方案

起因:因为access_token的重要性,开发过微信的都知道,但是他有自己的生命周期,官方解释为:"有效期为7200秒",一天调用2000次.流量一高,就over了,没办法,龙哥不帮我们解决问题,我们就要自己解决,不能等死. 解决思路很简单:建立公共access token数据,有效期内不重新创建access_token. 解决方案:1.微信类库:有效期内直接读取access token数据文件中的json数据,过期失效,重新获取并创建新的access token数据文件2.数据文件

Force.com微信开发系列(四)申请Access Token及自定义菜单之创建菜单

在微信接口开发中,许多服务的使用都离不开Access Token,Access Token相当于打开这些服务的钥匙,正常情况下会在7200秒内失效,重复获取将导致上次获取的Token失效,本文将首先介绍如何获取Access Token,再介绍如何通过Access Token来在微信内添加自定义菜单(注意,开发者需要申请测试账号来测试自定义菜单,如何申请请参照前文). 申请Access Token 获取Access Token接口的网址如下: https://api.weixin.qq.com/c