public static string SendTemplateMessage <T>(string accessToken, string openId, string topcolor, string url, T data) where T : TemplateMessageModel { string urlFormat = string.Format(WeChatConsts.WECHAT_SEND_MSG, accessToken); var msgData = new TempleteModel() { touser = openId, template_id = data.TemplateId, topcolor = topcolor, url = url, data = data }; return(NetUtil.WechatSendPostRequest(urlFormat, JsonUtil.Serialize(msgData))); }
/// <summary> /// 获取登录Token /// </summary> /// <param name="tryNum"></param> /// <returns></returns> private static string GetDxSmsAccessToken(int tryNum) { string key = "smstoken"; if (_dXSmsToken.ContainsKey(key)) { var kv = _dXSmsToken[key]; if (kv.Item2 > DateTime.Now) { return(kv.Item1); } } Dictionary <string, string> paras = new Dictionary <string, string>(); paras.Add("grant_type", "client_credentials"); paras.Add("app_id", ConfigUtil.SmsAppId_dx); paras.Add("app_secret", ConfigUtil.SmsAppSecret_dx); try { string res = NetUtil.SendPostRequest(GetDxSmsTokenApi, paras); Dictionary <string, string> resDic = JsonUtil.Deserialize <Dictionary <string, string> >(res); if (resDic.ContainsKey("access_token")) { _dXSmsToken.Clear(); _dXSmsToken.Add(key, new Tuple <string, DateTime>(resDic["access_token"], DateTime.Now.AddSeconds(ConvertUtil.ToInt(resDic["expires_in"], 0)))); return(resDic["access_token"]); } else { LogUtil.Debug(resDic["res_message"]); return(string.Empty); } } catch (Exception ex) { LogUtil.Error(ex.ToString()); System.Threading.Thread.Sleep(200); if (tryNum < 3) { return(GetDxSmsAccessToken(++tryNum)); } else { return(string.Empty); } } }