微信小程序 模板消息 C#(asp.net)

发送模板消息,首先要获得access_token。这个是链接

然后。。。。

                    //发送通知                
                    JavaScriptSerializer Jss = new JavaScriptSerializer();
                    var tempData = new
                    {
                        keyword1 = new
                        {
                            value = realName,
                            color = "#173177"
                        },
                        keyword2 = new
                        {
                            value = telPhone,
                            color = "#173177"
                        },
                        keyword3 = new
                        {
                            value = "******用途",
                            color = "#173177"
                        },
                        keyword4 = new
                        {
                            value = DateTime.Now.ToString(),
                            color = "#173177"
                        },
                        keyword5 = new
                        {
                            value = province+city+area,
                            color = "#173177"
                        },
                    };


                    //谁来接受微信消息通知
                    string tempOpenId="";
                    //要使用的form_id
                    string formId = "";

                        tempOpenId = "oxN3-0******************cm_GmkKqU";//发送给谁的OpenId
                

//下面两句是先从服务器数据库中获取以前保存的formId,然后设置拿出的formId使用了。

//这里平时要多搜集用户的formId,搜集好了就可以保存到后台数据库里。这样可以给用户发发送很多条微信消息了。这里是链接
                                formId = reader1.GetString("formId");                  
                       update tpmessage SET idUsed = '是' WHERE formId = '"+ formId + "'");
                    //拼接字符串
                    var msgData = new
                    {
                        //touser = "oxN3-0A*******************m_GmkKqU",//openId,
                        touser = tempOpenId,//openId,推送给谁,给那个用户
                        template_id = "jcJlnx***************E****sAY_m9E************YA6bo",//模板消息ID,在微信小程序后台的模板消息里有.。这个是*****成功通知。的id
                        topcolor = "#173177",
                        page = "pages/n******y/n*****y?tel='" + telPhone + "'",//这个是单击通知后要跳转的微信小程序的页面,可以携带参数,这里携带的是电话。
                        //form_id = "1508039542041",//要从服务器数据库里取最近7天时间最长的一条没有使用的来,用完了要设置这个formId被用过了。
                        form_id = formId,//要从服务器数据库里取最近7天时间最长的一条没有使用的来,用完了要设置这个formId被用过了。
                        data = tempData,
                        emphasis_keyword = "keyword1.DATA"
                    };
                    string postData = Jss.Serialize(msgData);
                    string tempUrl = "https://api.weixin.qq.com/cgi-bin/message/wxopen/template/send?access_token=" + JsCode2Session();
                    //Log.Error(tempUrl+"||"+postData, "tpMessage.aspx页面中的请求access_token参数的值:");
                    Log.Error("||" + WebRequestPostOrGet(tempUrl, postData), "页面中的请求access_token参数的值:");//做一下记录。
                  

        public static string WebRequestPostOrGet(string sUrl, string sParam)
        {
            byte[] bt = System.Text.Encoding.UTF8.GetBytes(sParam);


            Uri uriurl = new Uri(sUrl);
            HttpWebRequest req = (HttpWebRequest)HttpWebRequest.Create(uriurl);//HttpWebRequest req = (HttpWebRequest)HttpWebRequest.Create(url + (url.IndexOf("?") > -1 ? "" : "?") + param);
            req.Method = "Post";
            req.Timeout = 120 * 1000;
            req.ContentType = "application/x-www-form-urlencoded;";
            req.ContentLength = bt.Length;


            using (Stream reqStream = req.GetRequestStream())//using 使用可以释放using段内的内存
            {
                reqStream.Write(bt, 0, bt.Length);
                reqStream.Flush();
            }
            try
            {
                using (WebResponse res = req.GetResponse())
                {
                    //在这里对接收到的页面内容进行处理 


                    Stream resStream = res.GetResponseStream();


                    StreamReader resStreamReader = new StreamReader(resStream, System.Text.Encoding.UTF8);


                    string resLine;


                    System.Text.StringBuilder resStringBuilder = new System.Text.StringBuilder();


                    while ((resLine = resStreamReader.ReadLine()) != null)
                    {
                        resStringBuilder.Append(resLine + System.Environment.NewLine);
                    }


                    resStream.Close();
                    resStreamReader.Close();


                    return resStringBuilder.ToString();
                }
            }
            catch (Exception ex)
            {
                return ex.Message;//url错误时候回报错
            }
        }


评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值