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