对于微信企业号接口文档,可参考:http://qydev.weixin.qq.com/wiki/index.php?title=%E4%B8%BB%E5%8A%A8%E8%B0%83%E7%94%A8
一、认识AccessToken
AccessToken是企业号的全局唯一票据,调用接口时需携带AccessToken。
AccessToken需要用CorpID和Secret来换取,不同的Secret会返回不同的AccessToken。正常情况下AccessToken有效期为7200秒,有效期内重复获取返回相同结果;有效期内有接口交互(包括获取AccessToken的接口),会自动续期。
要在系统管理组下新建个管理组,比如“IT”,然后点开可以看到CorpID与Secret
二、获取AccessToken
以下是接口说明 ,先看下
- 请求说明
Https请求方式: GET
https://qyapi.weixin.qq.com/cgi-bin/gettoken?corpid=id&corpsecret=secrect
- 参数说明
参数 | 必须 | 说明 |
---|---|---|
corpid | 是 | 企业Id |
corpsecret | 是 | 管理组的凭证密钥 |
- 权限说明
每个secret代表了对应用、通讯录的不同权限;不同的管理组拥有不同的secret。
- 返回说明
a)正确的Json返回结果:
{ "access_token": "accesstoken000001", "expires_in": 7200 }
参数 | 说明 |
---|---|
access_token | 获取到的凭证 |
expires_in | 凭证的有效时间(秒) |
b)错误的Json返回示例:
{ "errcode": 43003, "errmsg": "require https" }
1、在web.config下配置好CorpID和Secret
<appSettings>
<!--企业号配置信息-->
<add key="CorpId" value="wxaddd1ad5c0*****" />
<add key="Secret" value="4iadefrgdf1D4bvlJFDOvYWHviRwTsSC*******"/>
</appSettings>
2、用Get方式获取AccessToken
正常情况下AccessToken有效期为7200秒,有效期内重复获取返回相同结果;有效期内有接口交互(包括获取AccessToken的接口),会自动续期。当你获取到AccessToken时,你的应用就可以成功调用企业号后台所提供的各种接口以管理或访问企业号后台的资源或给企业号成员发消息。为了防止企业应用的程序错误而引发企业号服务器负载异常,默认情况下,每个企业号调用接口都有一定的频率限制,当超过此限制时,调用对应接口会收到相应错误码。
//过期时间为7200秒 120分钟
string token = string.Empty;
//session保存
if (System.Web.HttpContext.Current.Session["AccessToken"] == null)
{
string corpId = ConfigurationManager.AppSettings["CorpId"];//从配置文件获取corpId
string corpsecret = ConfigurationManager.AppSettings["Secret"];//从配置文件获取corpId
string Gurl = string.Format("https://qyapi.weixin.qq.com/cgi-bin/gettoken?corpid={0}&corpsecret={1}", corpId, corpsecret);
AccessTokenJson = HttpGet(Gurl, "");
string regex = "\"access_token\":\"(?<token>.*?)\"";
token = CRegex.GetText(AccessTokenJson, regex, "token");
System.Web.HttpContext.Current.Session["AccessTokenJson"] = AccessTokenJson;
System.Web.HttpContext.Current.Session["AccessToken"] = token;
System.Web.HttpContext.Current.Session.Timeout = 7200;
}
else
{
AccessTokenJson = System.Web.HttpContext.Current.Session["AccessTokenJson"].ToString();
token = System.Web.HttpContext.Current.Session["AccessToken"].ToString();
}
return token;
这样就能获取 AccessToken,同时为后面的开发做好准备。
源码下载:http://pan.baidu.com/s/1nt287nb