**微信企業號開發,需要調用微信企業號的相關接口,則必須使用AccessToken,但AccessToken需要corpid,corpsecret兩個參數調用相關接口才能獲取。**
**而且每一個接口都有一定的次數限制,當然獲取AccessToken的接口也有這個限制。每一個AccessToken的有效期為7200秒,也就是兩個小時,在有效期內調用接口,則自動續期。因此建議在獲取到AccessToken后,保存在在某一個地方,等到快過期時在重新獲取。其實AccessToken有點類似于web程序中的session,這個有效期7200秒相當于session的有效期,調用接口,則自動續期,就相當于web程序中用戶登陸后,和服務端有交互,session的有效期自然延長了。**
核心代碼AccessTokenInfo類:
~~~
public class AccessTokenInfo
{
/// <summary>
/// access_token
/// </summary>
public string access_token { get; set; }
/// <summary>
/// 憑證有效時間,單位:秒
/// </summary>
public long expires_in { get; set; }
/// <summary>
/// 獲取時間
/// </summary>
public DateTime GetTime { get; set; }
}
~~~
BLLAccessToken類
~~~
/// <summary>
/// 獲取企業登陸access_token
/// </summary>
public static class BLLAccessToken
{
static AccessTokenInfo TokenInfo = null;
public static string GetAccessToken()
{
string AccessToken = "";
DateTime now=DateTime.Now;
if (TokenInfo == null) //首次獲取
{
TokenInfo = UpDateAccessToken();
}
else
{
if (TokenInfo.GetTime.AddSeconds(TokenInfo.expires_in - 30) < now) //提前30秒重新獲取
{
TokenInfo = UpDateAccessToken();
}
}
AccessToken = TokenInfo.access_token;
return AccessToken;
}
private static AccessTokenInfo UpDateAccessToken()
{
string CorpId = AppIdInfo.GetCorpId();//corpid
string Secret = AppIdInfo.GetSecret(); //corpsecret
AccessTokenInfo info = new AccessTokenInfo();
WebUtils ut = new WebUtils();
/// https://qyapi.weixin.qq.com/cgi-bin/gettoken?corpid=wxb7f1db8fd6aa9d68&corpsecret=aoxZ7D5-SgLRUbKY2fwQykW36RqxoIdNIn1pIiGy9iSdXgMHwQCzUsniQVAsBCTt
string urlFormat = "https://qyapi.weixin.qq.com/cgi-bin/gettoken?corpid={0}&corpsecret={1}";
var url = string.Format(urlFormat, CorpId, Secret);
string temp = ut.DoGet(url);
try
{
AccessTokenInfo tempAccessTokenjson = Tools.JsonStringToObj<AccessTokenInfo>(temp);
info.access_token = tempAccessTokenjson.access_token;
info.expires_in = tempAccessTokenjson.expires_in;
info.GetTime = DateTime.Now;
}
catch(Exception ex)
{
LogInfo.Error("獲取AccessToken異常", ex);
}
return info;
}
}
~~~
[微信企業號開發:常用的參數](http://blog.csdn.net/xuexiaodong009/article/details/46906867)
[微信企業號開發:corpsecret到底在哪塊呢?](http://blog.csdn.net/xuexiaodong009/article/details/46895401)
[獲取AccessToken官方文檔](http://qydev.weixin.qq.com/wiki/index.php?title=%E4%B8%BB%E5%8A%A8%E8%B0%83%E7%94%A8)