/// <summary> /// 获取access_token。会缓存,过期后自动重新获取新的token。 /// </summary> public static string GetAccessToken(WeChatParam param = null) { var appId = GetConfig.GetAppid(param); var secret = GetConfig.GetSecret(param); if (!AccessTokensCache.ContainsKey(appId) || AccessTokensCache[appId] == null || AccessTokensCache[appId].ExpireTime < DateTime.Now) { var result = HttpHelper.Get <TokenResult>(ApiList.GetTokenUrl, new HttpParam { { "grant_type", "client_credential" }, { "appid", appId }, { "secret", secret } }); if (!result.IsSuccess) { throw new WxException(result.errcode, result.errmsg); } AccessTokensCache[appId] = new TokenCache { AccessToken = result.access_token, ExpireTime = DateTime.Now.AddSeconds(result.expires_in - 60) }; } return(AccessTokensCache[appId].AccessToken); }
/// <summary> /// 传入Code /// </summary> public static Dictionary <string, string> GetOauth2AccessToken(UserParam param) { var param2 = new HttpParam() { { "appid", GetConfig.GetAppid(param) }, { "secret", GetConfig.GetSecret(param) }, { "code", param.Code }, { "grant_type", "authorization_code" } }; var dic = HttpHelper.Get <Dictionary <string, string> >(ApiList.GetOauth2AccessTokenUrl, param2); return(dic); }