微信企业号 获取AccessToken
目录
2. 示例代码
1. AccessToken介绍
1.1 什么是AccessToken
AccessToken即访问凭证,业务服务器每次主动调用企业号接口时需要带上AccessToken参数。
注:主动调用是指业务服务器调用企业号接口的操作过程,如通讯录管理、应用管理。
文档:http://qydev.weixin.qq.com/wiki/index.php?title=主动调用
1.2 获取AccessToken
AccessToken需要用CorpID和Secret来换取,不同的Secret会返回不同的AccessToken。
请求地址:https://qyapi.weixin.qq.com/cgi-bin/gettoken?corpid=id&corpsecret=secrect
参数说明:
| 参数 | 说明 |
| CorpID | 企业Id |
| CorpSecret | 权限管理组的凭证密钥 |
1.3 获取CorpID和Secret
首先得创建一个权限管理组才能获取到Secret。
创建步骤:微信企业号控制台 → 设置 → 权限管理组 → 新建管理组

注意事项: 这里有个【应用权限】的设置,在后面进行OAuth2.0验证时跳转的域名必须跟包含应用的【可信域名】一致。
2. 示例代码
正常情况下AccessToken有效期为7200秒,有效期内重复获取返回相同结果。所以创建代码时,要存储有效期内的AccessToken。
以C#代码展示为例:
/// <summary>
/// 微信企业号操作
/// </summary>
public class WXQYHHelper
{
private WXQYHHelper() { } static string CORPID;
static string SECRET; /// <summary>
/// .Ctor
/// </summary>
static WXQYHHelper()
{
CORPID = ConfigurationManager.AppSettings["CorpID"];
SECRET = ConfigurationManager.AppSettings["Secret"];
} /// <summary>
/// ACCESS_TOKEN最后一次更新时间
/// </summary>
static DateTime _lastGetTimeOfAccessToken = DateTime.Now.AddSeconds(-7201); /// <summary>
/// 存储微信访问凭证
/// </summary>
static string _AccessToken; /// <summary>
/// 获取微信访问凭证
/// </summary>
public static string GetAccessToken()
{
try
{
if (_lastGetTimeOfAccessToken < DateTime.Now)
{ string url = string.Format("https://qyapi.weixin.qq.com/cgi-bin/gettoken?corpid={0}&corpsecret={1}", CORPID, SECRET);
string responseText = HttpHelper.Instance.get(url); // 封装的get请求
/*
API:http://qydev.weixin.qq.com/wiki/index.php?title=%E4%B8%BB%E5%8A%A8%E8%B0%83%E7%94%A8#.E8.8E.B7.E5.8F.96AccessToken
正确的Json返回示例:
{
"access_token": "accesstoken000001",
"expires_in": 7200
}
错误的Json返回示例:
{
"errcode": 43003,
"errmsg": "require https"
}
*/
var rsEntity = new { access_token = "", expires_in = 0, errcode = 0, errmsg = "" };
dynamic en = Newtonsoft.Json.JsonConvert.DeserializeAnonymousType<object>(responseText, rsEntity); // Newtonsoft.Json提供的匿名类反序列化
_lastGetTimeOfAccessToken = DateTime.Now.AddSeconds((double)en.expires_in - 1);
_AccessToken = en.access_token;
}
return _AccessToken;
}
catch (Exception ex)
{
throw ex;
}
}
}
微信企业号 获取AccessToken的更多相关文章
- 微信开发 获取AccessToken
获取AccessToken的方法 public static Access_token GetAccessToken() { string formatString = String.Format(& ...
- 微信企业号获取OpenID过程
define('CorpID', "wx82e2c31215d9a5a7"); define('CorpSecret', ""); //当前管理组 设置-> ...
- 使用delphi+intraweb进行微信开发5—准备实现微信API,先从获取AccessToken开始
在前4讲中我们已经使iw开发的应用成功和微信进行了对接,再接下来的章节中我们开始逐一尝试和实现微信的各个API,开始前先来点准备工作 首先需要明确的是,微信的API都是通过https调用实现的,分为p ...
- 微信企业号开发之-如何获取secret 序列号
最近有项目基于微信企业号开发,简单记录下如何查看企业号secert 工具/原料 微信企业号 方法/步骤 用管理员的帐号登录后,选择[设置]-[权限管理]进入管理组设置界面 在左边点击[ ...
- 微信开发第2章 通过appid appsecret获取accesstoken
通过 appid appsecret是可以获取accesstoken的 ,请不要一直获取,不然会把token的机会浪费掉,获取到后7200秒后失效,建议保存为6000秒到7000秒左右,具体可以查看微 ...
- ASP.NET微信公众号获取AccessToken
access_token是公众号的全局唯一接口调用凭据,公众号调用各接口时都需使用access_token.开发者需要进行妥善保存.access_token的存储至少要保留512个字符空间.acces ...
- 微信全局获取并缓存Accesstoken的值
由于本项目中使用自定义菜单接口.获取用户信息接口.用户分组接口.消息发送接口等,都需要传入一个相同的参数access_token,其有效期 是7200秒(两小时),在有效期内可以使用,一旦access ...
- SpringTask定时任务实例讲解【Java获取微信公众平台accessToken及jsapiTicket】
项目中调用微信公众平台的接口时,因为获取到的accessToken及jsapiTicket有效时长只有两个小时,需要不断更新. 所以做了个定时任务,记录一下. .SpringTask实现有两种方式,一 ...
- asp.net mvc 5 微信接入VB版 - 获取AccessToken
获取AccessToken是微信接入的又一个基础操作.很多微信接口需要这个2小时一刷新的AccessToken作为参数. 转载请说明作者Nukepayload2 首先根据开发文档把获取AccessTo ...
随机推荐
- Jenkins 安装的HTML Publisher Plugin 插件无法展示ant生成的JunitReport报告
最近在做基于jenkins ant junit 的测试持续集成,单独ant junit生成的junitreport报告打开正常,使用Jenkins的HTML Publisher Plugin 插件无 ...
- Asp.net Core中使用Session
前言 2017年就这么悄无声息的开始了,2017年对我来说又是特别重要的一年. 元旦放假在家写了个Asp.net Core验证码登录, 做demo的过程中遇到两个小问题,第一是在Asp.net Cor ...
- ABP源码分析一:整体项目结构及目录
ABP是一套非常优秀的web应用程序架构,适合用来搭建集中式架构的web应用程序. 整个Abp的Infrastructure是以Abp这个package为核心模块(core)+15个模块(module ...
- 23种设计模式--代理模式-Proxy
一.代理模式的介绍 代理模式我们脑袋里出现第一个词语就是代购,其实就是这样通过一个中间层这个中间成是属于什么都干什么都买得,俗称"百晓生",在平时得开发中我们经常会听到 ...
- Android线程管理之ThreadLocal理解及应用场景
前言: 最近在学习总结Android的动画效果,当学到Android属性动画的时候大致看了下源代码,里面的AnimationHandler存取使用了ThreadLocal,激起了我很大的好奇心以及兴趣 ...
- 在jekyll模板博客中添加网易云模块
最近使用GitHub Pages + Jekyll 搭建了个人博客,作为一名重度音乐患者,博客里面可以不配图,但是不能不配音乐啊. 遂在博客里面引入了网易云模块,这里要感谢网易云的分享机制,对开发者非 ...
- 代码的坏味道(22)——不完美的库类(Incomplete Library Class)
坏味道--不完美的库类(Incomplete Library Class) 特征 当一个类库已经不能满足实际需要时,你就不得不改变这个库(如果这个库是只读的,那就没辙了). 问题原因 许多编程技术都建 ...
- Node.js npm 详解
一.npm简介 安装npm请阅读我之前的文章Hello Node中npm安装那一部分,不过只介绍了linux平台,如果是其它平台,有前辈写了更加详细的介绍. npm的全称:Node Package M ...
- 手把手教你写一个RN小程序!
时间过得真快,眨眼已经快3年了! 1.我的第一个App 还记得我14年初写的第一个iOS小程序,当时是给别人写的一个单机的相册,也是我开发的第一个完整的app,虽然功能挺少,但是耐不住心中的激动啊,现 ...
- NodeJs支付宝移动支付签名及验签
非常感谢 :http://www.jianshu.com/p/8513e995ff3a?utm_campaign=hugo&utm_medium=reader_share&utm_co ...