asp.net WeChat official account push message template

1, display effect

\

Prerequisites to quote:

senparc. Weixin

Senparc.Weixin.MP

two libraries

Main code implementation:


        public void ProcessRequest(HttpContext context)
        {
            context.Response.ContentType = "text/plain";
            string templateId = "rYu7-";//模板id
            string firest = "数据526";

            var formData = new JObject();
            formData = new JObject();
            formData["keyword1"] = "好好学习";
            formData["keyword2"] = "财务部";
            formData["keyword3"] = System.DateTime.Now.ToString();
          string result=  SendTempletMessge("openid",templateId,firest,"",formData, "http://www.ymj.asia:85/");


          context.Response.Write(result);
        }

        /// <summary>
        /// 发送微信通知消息 
        /// </summary>
        /// <param name="openId">用户微信id</param>
        /// <param name="templateId">消息模板id</param>
        /// <param name="first">标题</param>
        /// <param name="remark">落款备注</param>
        /// <param name="formData">参数,对应消息模板</param>
        /// <param name="detailsUrl">详情跳转url</param>
        /// <returns></returns>
        public string SendTempletMessge(string openId, string templateId, string first, string remark, JObject formData, string detailsUrl)
        {

            if (string.IsNullOrEmpty(openId))
                return "";

            string strReturn = string.Empty;
            try
            {
                #region 获取access_token
                var result = AccessTokenContainer.TryGetAccessToken("appid", "appsecretid", true);

                string token = result;
                #endregion  

                #region 组装信息推送,并返回结果(其它模版消息于此类似)
                string url = "https://api.weixin.qq.com/cgi-bin/message/template/send?access_token=" + token;
                string temp = "{\"touser\": \"" + openId + "\"," +
                              "\"template_id\": \"" + templateId + "\", ";

                if (!string.IsNullOrEmpty(detailsUrl))
                {
                    temp += "\"url\": \"" + detailsUrl + "\", ";
                }

                temp += "\"topcolor\": \"#FF0000\", " +
                 "\"data\": " +
                 "{\"first\": {\"value\": \"" + first + "\"},";

                int i = 1;
                foreach (var item in formData)
                {
                    temp += "\"keyword" + i + "\": { \"value\": \"" + item.Value + "\"},";
                    i++;
                }
                temp += "\"remark\": {\"value\": \"" + remark + "\" }}}";

                #endregion

               //核心代码  
                GetResponseData(temp, @url);

                strReturn = "推送成功";
            }
            catch (Exception ex)
            {
                strReturn = ex.Message;
            }
            return strReturn;
        }

        /// <summary>    
        /// 返回JSon数据    
        /// </summary>    
        /// <param name="JSONData">要处理的JSON数据</param>    
        /// <param name="Url">要提交的URL</param>    
        /// <returns>返回的JSON处理字符串</returns>    
        public string GetResponseData(string JSONData, string Url)
        {
            byte[] bytes = Encoding.UTF8.GetBytes(JSONData);
            HttpWebRequest request = (HttpWebRequest)WebRequest.Create(Url);
            request.Method = "POST";
            request.ContentLength = bytes.Length;
            request.ContentType = "json";
            Stream reqstream = request.GetRequestStream();
            reqstream.Write(bytes, 0, bytes.Length);

            //声明一个HttpWebRequest请求    
            request.Timeout = 90000;
            //设置连接超时时间    
            request.Headers.Set("Pragma", "no-cache");
            HttpWebResponse response = (HttpWebResponse)request.GetResponse();
            Stream streamReceive = response.GetResponseStream();
            Encoding encoding = Encoding.UTF8;

            StreamReader streamReader = new StreamReader(streamReceive, encoding);
            string strResult = streamReader.ReadToEnd();
           
            streamReceive.Dispose();
            streamReader.Dispose();
            return strResult;
        }



Guess you like

Origin blog.csdn.net/qq_45044847/article/details/130640745