二、获取AccessToken
二、获取AccessToken
1.官方文档:
access_token是微信官方公众号调用接口的全局唯一票据,开发者调用任何接口都需要使用access_token,由于access_token有效期为2小时,且每天只能获取2000次,这要求我们必须有效利用为数不多的调用次数且不用频繁去访问微信接口获取access_token
1. grant_type=client_creadential是固定的
2. appid、secret可以在开发者中心查看获取
2.开发用法:
官方文档的推荐写法,是使用一个中控服务器,所有的业务皆从中控服务器获取access_token,不应该各个业务逻辑点各自去刷新access_token,否则会产生冲突,导致服务不稳定。比如,一个业务刚拿到access_token准备调用其它接口,这时候另一个业务则刷新了access_token,这样会使原来的access_token失效,使得前者的业务调用接口失败。
这里,我们使用全局静态变量保存access_token,存在内存中,过期后,重新获取access_token,这样保证不会频繁获取access_token,且各个业务都可以获取access_token静态变量
代码如下:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
|
public class AcessToken
{
static string appID = "*x2ef9dc**********" ;
static string appsecret = "2c*********8084a2943de*******" ;
public static string accessToken = string .Empty;
public static int expireTime = 0;
public static string GetAcessToken()
{
//1.如果accessToken为空或者当前时间大于过期时间,则重新获取AccessToken
if ( string .IsNullOrEmpty(accessToken) || TimeStampUtils.ConvertDateTimeInt(DateTime.Now) > expireTime)
{
//1.1 获取accessToken
string url = "https://api.weixin.qq.com/cgi-bin/token" ;
string data = "grant_type=client_credential&appid=" + appID + "&secret=" + appsecret;
//1.2 利用webrequest发送get请求,并接收返回的json字符串
string accessObjstr = HttpUtils.HttpGet(url, data);
//1.3 判断字符串中是否包含 access_token字符串,如果不包含,则返回空字符串
if (accessObjstr.IndexOf( "access_token" ) <= -1)
{
return "" ;
}
//1.4 将json格式字符串反序列化为对象
TokenResultObj obj = JsonConvert.DeserializeObject<TokenResultObj>(accessObjstr);
//1.5 重新设置过期时间
expireTime = TimeStampUtils.ConvertDateTimeInt(DateTime.Now) + obj.expires_in - 200;
//1.6 将新的accss_token赋给静态变量 accessToken
accessToken = obj.access_token;
//1.7 返回正确的access_token
return obj.access_token;
}
//2.如果access_token不为空且access_token未过期直接返回正确的access_token
return accessToken;
}
}
|
三、测试:
1
|
Response.Write(AcessToken.GetAcessToken());
|
结果:
转载于:https://www.cnblogs.com/notniu/p/4431114.html
二、获取AccessToken相关推荐
- java获取access token_【Java示例】如何获取AccessToken
好多新注册的开发者表示不太清楚如何获取AccessToken.首先还是建议大家看官网文档 http://ai.baidu.com/docs#/Begin/top 小帅帮大家写一个Java调用的示例 首 ...
- 微信公众号获取AccessToken
微信公众号获取AccessToken 微信公众号appid和appSecret及配置相关的ip白名单 用到的pom.xml文件 <!-- fastjson--><dependency ...
- 企业微信开发文档接口API获取accesstoken和读取成员内部员工
企业微信开发文档接口API获取accesstoken和读取成员内部员工 <?php /*** 企业微信 API*/ namespace app\common;use think\Config; ...
- java 对接乐橙云 获取AccessToken
public class DhFluorConstant {/*** APP_ID*/public static final String APP_ID = "xxxxxxxxxxxxxxx ...
- 监控设备乐橙连接linux,最近在做乐橙的监控设备,第一步通过http post json获取accessToken都失败了,请问如何解决?...
现在我第一步的获取accessToken都获取不到,我的代码如下: function http_post_json($url, $jsonStr){ $ch = curl_init($url); cu ...
- 闪送接口对接之获取AccessToken【JAVA】
前期准备工作 1. 进行商户.开发者资质认证(此步骤省略) 特别说明: 此处下图中箭头所指方向为切换登录者状态的,之后开发中会用到此不同角色下的公共参数数据. 2.分别登录获取到公共参数值 商户端: ...
- java微信获取用户信息接口_java微信接口之二—获取用户组
一.微信获取用户组接口简介 1.请求 该请求也是GET方式请求.请求的url格式如下: https://api.weixin.qq.com/cgi-bin/groups/get?access_toke ...
- Silverlight实用窍门系列:66.Silverlight的数据模板DataTemplate(二)获取数据模板控件...
在Silverlight中我们使用了数据模板,在很多时候也需要获取到数据模板上的控件,并且进行改变.本文使用的实例数据源和上节相同,如需了解请下载源码查看. 当然在这里我们可以分为获取数据模板原始控件 ...
- 微信企业号开发[二]——获取用户信息
注:文中绿色部分为摘自微信官方文档 在<微信企业号开发[一]--创建应用>介绍了如何创建应用,但是当用户点击应用跳转到我们设定的URL时,其实并没有带上用户的任何信息,为了获取用户信息,我 ...
最新文章
- jQuery-切换2
- python opencv生成模糊图像
- nginx 负载均衡的4种方式
- HTTPS访问站点,出现证书问题解决
- asp.net 关于列表问题。点击文章标题,显示文章内容。
- Python —— 深拷贝和浅拷贝
- 如何在Timeline中创建自定义轨道?
- 将系统升级为鸿蒙11.1系统,即将脱胎换骨!EMUI11.1升级名单遭曝光,或要和跟安卓说再见...
- connot+connect+mysql+127.0.0.1_无法远程连接 MySQL 的解决方法
- 十分钟开发一个调用Activity的PhoneGap插件
- 20162306 2017-2018-1《程序设计与数据结构》 第11周学习总结
- 变速恒频风电机组的优缺点_变速恒频双馈风力发电机的主要优点和基本原理
- 【图像分割】最大类间方差法(otsu)图像分割
- java heap space 什么意思_java heap space是什么意思?
- STM32F407ZET6+NRF24L01实现一收多发(一发多收)
- 微信朋友圈广告投放审核服务器,微信朋友圈广告位投放文案审核规范
- 最高效寻找重复数据,如何高效率的查找到数组中的重复值
- Kaggle课程 — 机器学习进阶 Intermediate Machine Learning
- Asp.net WebMatrix 学习笔记
- 【渝粤题库】国家开放大学2021春2226物业管理实务(2)题目