微信企业号/企业微信:获取AccessToken



一、什么是AccessToken
AccessToken是微信企业号和企业微信的全局唯一票据,所有接口在通信时都需要携带此信息用于验证接口的访问权限。
AccessToken需要用CorpID和Secret来换取,不同的Secret会返回不同的AccessToken。正常情况下AccessToken有效期为7200秒,有效期内重复获取返回相同结果。access_token至少保留512字节的存储空间。


二、调用接口、参数和返回结果
1、调用接口:微信企业号和企业微信相同。
Https请求方式: GET
https://qyapi.weixin.qq.com/cgi-bin/gettoken?corpid=id&corpsecret=secrect


2、调用参数:
(1)corpid:微信企业号和企业微信都有唯一的ID号。
(2)secret:微信企业号指的是管理组的凭证密钥,每个管理组都有一个secret;企业微信指的是应用(通讯录也是一个应用)的凭证密钥,每个应用都有一个secret。这点两者是不同的。


3、返回结果:在两者是有差异的,具体如下:
(1)微信企业号:
成功时返回
{
  "access_token": "accesstoken000001",
  "expires_in": 7200
}
错误时返回
{
  "errcode": 43003,
  "errmsg": "require https"
}
(2)企业微信
成功时返回
{
 "errcode":0,
 "errmsg":"",
 "access_token": "accesstoken000001",
  "expires_in": 7200
}
失败时返回
{
"errcode":40091,
 "errmsg":"provider_secret is invalid"
}


三、C#示例,获取AccessToken
为了统一微信企业号和企业微信的调用方法,我们首先要定义一个类,如下:


 

这个类已经涵盖了微信企业号/企业微信获取AccessToken成功和失败的全部情况,是否成功我们只需要读取access_token的内容,只要不为空则可以认定成功。当然也可以判断errcode的值。但微信企业号成功时没有errcode 这个字段,这时需要特殊处理一下。

下面这个函数调用这个API,将corpid和corpsecret作为参数,返回结果为AccessTokenJsonResult类


 

下面的代码调用这个函数,自己根据返回结果读取AccessToken的值,如果调用失败就需要自行处理异常。


 

你可能感兴趣的:(微信)