/// <summary> /// 刷新公众号token /// </summary> private void RefeshToken(string appID) { if (Access_TokenInfoDic.ContainsKey(appID)) { DateTime now = DateTime.Now; MWeixinParam weixinParam = null; // 如果已经超时 if (Access_TokenInfoDic[appID].OutTime <= now) { weixinParam = new MWeixinParam(Access_TokenInfoDic[appID].AppID, Access_TokenInfoDic[appID].AppSecret); AccessTokenRequest request = new AccessTokenRequest(weixinParam); // 重新获取token var response = Client.Execute(request); if (response.IsError) { throw new Exception(response.ErrorMessage); } // 修改授权 Access_TokenInfoDic[appID].OutTime = now.AddSeconds(response.Expires_In); Access_TokenInfoDic[appID].Access_Token = response.Access_Token; // 更新 BUpdateAccess_Token updateToken = new BUpdateAccess_Token(Access_TokenInfoDic[appID].KeyID, SecurityUtility.EncryptDES(Access_TokenInfoDic[appID].Access_Token), string.Empty, Access_TokenInfoDic[appID].OutTime); updateToken.Execute(); // 更新ticket this.RefeshTicket(response.Access_Token); } } }
/// <summary> /// 根据微信ID获取微信授权token /// </summary> /// <param name="appid"></param> /// <returns></returns> public string GetTokenByWeixinID(string weixinID) { if (WeixinAppInfoDic.ContainsKey(weixinID)) { MWeixinParam weixinParam = WeixinAppInfoDic[weixinID]; if (Access_TokenInfoDic.ContainsKey(weixinParam.AppID)) { if (String.IsNullOrEmpty(Access_TokenInfoDic[weixinParam.AppID].Access_Token) || DateTime.Now >= Access_TokenInfoDic[weixinParam.AppID].OutTime) { RefeshToken(weixinParam.AppID); } return(Access_TokenInfoDic[weixinParam.AppID].Access_Token); } else { return(string.Empty); } } else { return(string.Empty); } }
/// <summary> /// 构造函数 /// </summary> /// <param name="weixinParam"></param> /// <param name="toUsers"></param> public UploadNewsRequest(MWeixinParam weixinParam, string token, List <Article> articles) : base(weixinParam) { this.weixinParam = weixinParam; this.articles = articles; this.token = token; }
/// <summary> /// 根据微信ID获取ticket /// </summary> /// <param name="weixinID"></param> /// <returns></returns> public string GetTicketByWeixinID(string weixinID) { Dictionary <string, object> bugobjd = new Dictionary <string, object>(); string ticket = string.Empty; try { bugobjd.Add("根据微信ID获取ticket", "根据微信ID获取ticket"); bugobjd.Add("WeixinAppInfoDic", WeixinAppInfoDic); if (WeixinAppInfoDic.ContainsKey(weixinID)) { MWeixinParam weixinParam = WeixinAppInfoDic[weixinID]; bugobjd.Add("weixinParam", weixinParam); if (Access_TokenInfoDic.ContainsKey(weixinParam.AppID)) { MAccess_Token access_Token = Access_TokenInfoDic[weixinParam.AppID]; if (String.IsNullOrEmpty(access_Token.Access_Token) || DateTime.Now >= access_Token.OutTime) { RefeshToken(weixinParam.AppID); access_Token = Access_TokenInfoDic[weixinParam.AppID]; } if (WeixinTicketDic.ContainsKey(access_Token.Access_Token)) { if (String.IsNullOrEmpty(WeixinTicketDic[access_Token.Access_Token].Ticket) || DateTime.Now >= WeixinTicketDic[access_Token.Access_Token].OutTime) { RefeshTicket(Access_TokenInfoDic[weixinParam.AppID].Access_Token); } } else { RefeshTicket(Access_TokenInfoDic[weixinParam.AppID].Access_Token); } bugobjd.Add(" Access_TokenInfo", Access_TokenInfoDic[weixinParam.AppID]); bugobjd.Add(" WeixinTicket", WeixinTicketDic[Access_TokenInfoDic[weixinParam.AppID].Access_Token]); ticket = WeixinTicketDic[Access_TokenInfoDic[weixinParam.AppID].Access_Token].Ticket; } } } catch (Exception ex) { TxtLogHelper.WriteLog_Day(new TxtLogInfoObject() { LogType = EnumLogType.Error, LogMessage = string.Format(" 根据微信ID获取ticket错误信息{0};堆栈信息{1}", ex.Message, ex.StackTrace), }); throw; } finally { TxtLogHelper.WriteDebugLog(bugobjd); } return(ticket); }
/// <summary> /// 构造函数 /// </summary> /// <param name="weixinParam"></param> /// <param name="toUsers"></param> public MessageMassSendbyOpenIDRequest(string token, MWeixinParam weixinParam, List <string> toUsers, string mediaId) : base(weixinParam) { this.token = token; this.weixinParam = weixinParam; this.toUsers = toUsers; this.MPNews = new SendMPNews() { MediaId = mediaId }; }
public ApiRequestBase(MWeixinParam weixinParam) { this.WeixinParam = weixinParam; }
public AccessTokenRequest(MWeixinParam weixinParam) : base(weixinParam) { }