public string GetAccessToken(string appId, string appSecret, bool isReload = false) { //用于测试配置 string wxAccessToken = System.Configuration.ConfigurationManager.AppSettings["custom:WxTestAccessToken"]; if (wxAccessToken != null) { return(wxAccessToken); } string key = string.Format("Wx_AppId_{0}_AccessToken", appId); var redis = new RedisClient <string>(); if (isReload) { redis.KRemove(key); } var accessToken = redis.KGetString(key); if (accessToken == null) { LogUtil.Info(string.Format("获取微信AccessToken,key:{0},已过期,重新获取", key)); WxApi c = new WxApi(); WxApiAccessToken apiAccessToken = new WxApiAccessToken("client_credential", appId, appSecret); var apiAccessTokenResult = c.DoGet(apiAccessToken); if (string.IsNullOrEmpty(apiAccessTokenResult.access_token)) { LogUtil.Info(string.Format("获取微信AccessToken,key:{0},已过期,Api重新获取失败", key)); } else { LogUtil.Info(string.Format("获取微信AccessToken,key:{0},value:{1},已过期,重新获取成功", key, apiAccessTokenResult.access_token)); accessToken = apiAccessTokenResult.access_token; redis.KSet(key, accessToken, new TimeSpan(0, 30, 0)); } } else { LogUtil.Info(string.Format("获取微信AccessToken,key:{0},value:{1}", key, accessToken)); } return(accessToken); }
static void Main(string[] args) { //1Vi0WyupqfNSpUx22KCUYVVIPHQaa2Dnnjt65IKoLPKOIaoDwwBQZrlnal71nPC1 WxApi c = new WxApi(); WxApiAccessToken apiAccessToken = new WxApiAccessToken("client_credential", "wx60443bbfd97f6aa5", "dfd062f723c38519092dfd7646af2f76"); var result = c.DoGet(apiAccessToken); WxApiUserInfoTest(result.access_token, "oUWrIjoJpzcbnwpcQ2IG4C1172To"); WxApiMessageTemplateSendTest(result.access_token, "oUWrIjoJpzcbnwpcQ2IG4C1172To"); // WxApiMediaUploadNewsTest(result.access_token); // WxApiMessageMassSendText(result.access_token,"1Vi0WyupqfNSpUx22KCUYVVIPHQaa2Dnnjt65IKoLPKOIaoDwwBQZrlnal71nPC1"); //postData = "{\"touser\":[\"oUWrIjoJpzcbnwpcQ2IG4C1172To\",\"oUWrIjoJpzcbnwpcQ2IG4C1172To\"], \"mpnews\":{\"media_id\":\"" + result3.media_id + "\" },\"msgtype\":\"mpnews\"}"; //WebApiMessageMassSend messageMassSend = new WebApiMessageMassSend(result.access_token, WxPostDataType.Text, postData); //var result4 = c.DoPost(messageMassSend); }