asp.net 微信公众号推送消息模板

1,展示效果

\

前提要引用:

senparc.Weixin

Senparc.Weixin.MP

两个库

主要代码实现:


        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;
        }



  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值