发送模板消息,首先要获得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错误时候回报错
}
}