|
publicclassAcessToken
{
staticstring appID = "*x2ef9dc**********";
staticstring appsecret = "2c*********8084a2943de*******";
?
publicstaticstring accessToken = string.Empty;
publicstaticint expireTime = 0;
publicstaticstring GetAcessToken()
{
//1.如果accessToken為空白或者目前時間大於到期時間,則重新擷取AccessToken
if (string.IsNullOrEmpty(accessToken) || TimeStampUtils.ConvertDateTimeInt(DateTime.Now) > expireTime)
{
//1.1 擷取accessToken
string url = "https://api.weixin.qq.com/cgi-bin/token";
string data = "grant_type=client_credential&appid=" + appID + "&secret=" + appsecret;
//1.2 利用webrequest發送get請求,並接收返回的json字串
string accessObjstr = HttpUtils.HttpGet(url, data);
//1.3 判斷字串中是否包含 access_token字串,如果不包含,則返回Null 字元串
if (accessObjstr.IndexOf("access_token") <= -1)
{
return"";
}
//1.4 將json格式字串還原序列化為對象
TokenResultObj obj = JsonConvert.DeserializeObject<TokenResultObj>(accessObjstr);
//1.5 重新設定到期時間
expireTime = TimeStampUtils.ConvertDateTimeInt(DateTime.Now) + obj.expires_in - 200;
//1.6 將新的accss_token賦給靜態變數 accessToken
accessToken = obj.access_token;
//1.7 返回正確的access_token
return obj.access_token;
}
//2.如果access_token不為空白且access_token未到期直接返回正確的access_token
return accessToken;
}
} |