首先新建一個微信消息接收回复类XmlHelper
public class XmlHelper
{
/// <summary>
/// 获取post返回来的数据
/// </summary>
/// <returns></returns>
public string PostInput()
{
Stream s = System.Web.HttpContext.Current.Request.InputStream;
if (s == null)
{
return "null";
}
byte[] b = new byte[s.Length];
s.Read(b, 0, (int)s.Length);
return Encoding.UTF8.GetString(b);
}
string FromUserName = "XXX"; //发送方帐号(公众号回复)
//创建文本消息
public string CreatTextXml(string ToUserName, string text)
{
string rexml = "<xml><ToUserName>" + ToUserName + "</ToUserName><FromUserName>" + FromUserName + "</FromUserName>";
rexml += "<CreateTime>" + DateTime.Now.Ticks + "</CreateTime>";
rexml += "<MsgType>text</MsgType>";
rexml += "<Content>" + text + "</Content></xml>";
return rexml;
}
}
后台代码:
XmlHelper xmlhelper;
protected void Page_Load(object sender, EventArgs e)
{
//Valid();
xmlhelper = new XmlHelper();
string requsetxml = xmlhelper.PostInput();
if (!string.IsNullOrEmpty(requsetxml))
{
Response.Write("error:404");
return;
}
string responsexml = Doevent(requsetxml);
Response.Write(responsexml);
}
public string Doevent(string xml)
{
XmlDocument doc = new XmlDocument();
doc.LoadXml(xml);
XmlElement element = doc.DocumentElement;
string MsgType = element.SelectSingleNode("MsgType").InnerText;
string FormUserName = element.SelectSingleNode("FromUserName").InnerText;
string rexml = "";
//关注事件
if (MsgType.Equals("event"))
{
if (element.SelectSingleNode("Event").InnerText.Equals("subscribe"))
{
rexml = xmlhelper.CreatTextXml(FormUserName, "欢迎关注我,你可以回复‘0’把我唤醒!");
}
}
//接收文本消息
if (MsgType.Equals("text"))
{
string Content = element.SelectSingleNode("Content").InnerText;
if (Content.Equals("0") || Content.Equals("1"))
{
string remsg = MessageHelper.ManagerMsg(FromUserName, Content);
rexml = xmlhelper.CreatTextXml(FromUserName, remsg);
}
else if (Content.Equals("2"))
{ //回复图文消息 (后面开发)
rexml = xmlhelper.CreatTextXml(FromUserName, "建设中!");
}
else if (Content.Equals("3"))
{ //回复图片消息 (后面开发)
rexml = xmlhelper.CreatTextXml(FromUserName, "建设中!");
}
else
{
rexml = xmlhelper.CreatTextXml(FromUserName, "无法识别消息!");
}
}
//接收图片消息
if (MsgType.Equals("image"))
{
rexml = xmlhelper.CreatTextXml(FromUserName, "建设中!");
}
//接收语音消息
if (MsgType.Equals("voice"))
{
rexml = xmlhelper.CreatTextXml(FromUserName, "建设中!");
}
//接收视频,链接消息
if (MsgType.Equals("video") || MsgType.Equals("link"))
{
rexml = xmlhelper.CreatTextXml(FromUserName, "建设中!");
}
return rexml;
}
接收用户发过来的消息之后,要进行处理,新建一个微信消息处理类MessageHelper
public class MessageHelper
{
public MessageHelper()
{
}
/// <summary>
/// 根据用户的信息,进行业务的处理
/// </summary>
/// <param name="userid">用户id</param>
/// <param name="content">用户发来文本信息</param>
/// <returns>要显示给用户的结果</returns>
public static string ManagerMsg(string userid, string content)
{
if (content.Trim().Equals(""))
{
return "求你说点什么吧,你不说我❤里堵得慌~";
}
//判断是否为菜单查询
if (content.Trim().Length == 1)
{
if (content.Trim() == "0")
{
return "hi/::-O...\n请发送数字获取内容:\n 1、文本语录/:ladybug \n 2、图文动态/:ladybug \n 3、看美图/:ladybug";
}
if (content.Trim() == "1")
{
return "知之为知之 不知为不知 是知也!/:sun";
}
}
if (content.Trim() == "123" || content.Trim() == "12" || content.Trim() == "23")
{
return "笨蛋!是分别回复一个数字!/:pig";
}
return "调皮了吧~/:@@\n请重新发送数字获取内容:\n 1、文本语录/:ladybug \n 2、图文动态/:ladybug \n 3、看美图/:ladybug";
}
}
发送文本消息大概就是这样了.