C# 微信企业号--获取AccessToken

对于微信企业号接口文档,可参考: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需要用CorpIDSecret来换取,不同的Secret会返回不同的AccessToken。正常情况下AccessToken有效期为7200秒,有效期内重复获取返回相同结果;有效期内有接口交互(包括获取AccessToken的接口),会自动续期。

   其中CorpIDSecret 可见下图能找到   

要在系统管理组下新建个管理组,比如“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"
}


对于开发语言,我们使用C#语言,目标Framework为 .NET Framework 4

1、在web.config下配置好CorpIDSecret

  <appSettings>

    <!--企业号配置信息-->
    <add key="CorpId" value="wxaddd1ad5c0*****" />
    <add key="Secret" value="4iadefrgdf1D4bvlJFDOvYWHviRwTsSC*******"/>

  </appSettings>

2、用Get方式获取AccessToken

       正常情况下AccessToken有效期为7200秒,有效期内重复获取返回相同结果;有效期内有接口交互(包括获取AccessToken的接口),会自动续期当你获取到AccessToken时,你的应用就可以成功调用企业号后台所提供的各种接口以管理或访问企业号后台的资源或给企业号成员发消息。为了防止企业应用的程序错误而引发企业号服务器负载异常,默认情况下,每个企业号调用接口都有一定的频率限制,当超过此限制时,调用对应接口会收到相应错误码。


因此用了session来保存取到的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


  • 0
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值