代码如下:
```csharp
public class sendMsg_tools
{
public static long gettime()
{
//设置初始时间
DateTime dateTime = new DateTime(1970, 1, 1);
//获取当前时间,距离开始时间的秒数
long cur = (long)(DateTime.Now - dateTime).TotalSeconds;
return cur;
}
/// <summary>
/// 微信回复文本信息
/// </summary>
/// <param name="toUser"></param>
/// <param name="fromUser"></param>
/// <param name="content"></param>
/// <returns></returns>
public static string msgInfo(string toUser, string fromUser, string content)
{
string xml = string.Format(@"<xml>
<ToUserName><![CDATA[{0}]]></ToUserName>
<FromUserName><![CDATA[{1}]]></FromUserName>
<CreateTime>{2}</CreateTime>
<MsgType><![CDATA[text]]></MsgType>
<Content><![CDATA[{3}]]></Content>
</xml>", fromUser, toUser, gettime(), content);
return xml;
}
/// <summary>
/// 微信回复图片信息
/// </summary>
/// <param name="toUser"></param>
/// <param name="fromUser"></param>
/// <param name="MediaId"></param>
/// <returns></returns>
public static string Image(string toUser, string fromUser, string MediaId)
{
string xml = string.Format(@"<xml>
<ToUserName><![CDATA[{0}]]></ToUserName>
<FromUserName><![CDATA[{1}]]></FromUserName>
<CreateTime>{2}</CreateTime>
<MsgType><![CDATA[image]]></MsgType>
<Image>
<MediaId><![CDATA[{3}]]></MediaId>
</Image>
</xml>", fromUser, toUser, gettime(), MediaId);
return xml;
}
/// <summary>
/// 回复语音消息
/// </summary>
/// <param name="toUser"></param>
/// <param name="fromUser"></param>
/// <param name="MediaId"></param>
/// <returns></returns>
public static string Voice(string toUser, string fromUser, string MediaId)
{
string xml = string.Format(@"<xml>
<ToUserName><![CDATA[{0}]]></ToUserName>
<FromUserName><![CDATA[{1}]]></FromUserName>
<CreateTime>{2}</CreateTime>
<MsgType><![CDATA[voice]]></MsgType>
<Voice>
<MediaId><![CDATA[{3}]]></MediaId>
</Voice>
</xml>", fromUser, toUser, gettime(), MediaId);
return xml;
}
/// <summary>
/// 回复视频消息
/// </summary>
/// <param name="toUser"></param>
/// <param name="fromUser"></param>
/// <param name="MediaId"></param>
/// <returns></returns>
public static string Video(string toUser, string fromUser, string MediaId)
{
string xml = string.Format(@"<xml>
<ToUserName><![CDATA[{0}]]></ToUserName>
<FromUserName><![CDATA[{1}]]></FromUserName>
<CreateTime>{2}</CreateTime>
<MsgType><![CDATA[video]]></MsgType>
<Video>
<MediaId><![CDATA[{3}]]></MediaId>
<Title><![CDATA[title]]></Title>
<Description><![CDATA[description]]></Description>
</Video>
</xml>", fromUser, toUser, gettime(), MediaId);
return xml;
}
/// <summary>
///回复音乐消息
/// </summary>
/// <param name="toUser"></param>
/// <param name="fromUser"></param>
/// <param name="MediaId"></param>
/// <returns></returns>
public static string Music(string toUser, string fromUser )
{
string xml = string.Format(@"<xml>
<ToUserName><![CDATA[{0}]]></ToUserName>
<FromUserName><![CDATA[{1}]]></FromUserName>
<CreateTime>{2}</CreateTime>
<MsgType><![CDATA[music]]></MsgType>
<Music>
<Title><![CDATA[青春]]></Title>
<Description><![CDATA[激情]]></Description>
<MusicUrl><![CDATA[http://588979f4.ngrok.io/WeiXinTest/resource/music.mp3]]></MusicUrl>
<HQMusicUrl><![CDATA[http://588979f4.ngrok.io/WeiXinTest/resource/music.mp3]]></HQMusicUrl>
<ThumbMediaId><![CDATA[50R - CSj0i8fv9lIWB7vpDtFObkD_uTKJVouTS8axKrCbvkIH - W4c2Pj_cx3hJXbK]]></ThumbMediaId>
</Music>
</xml>", fromUser, toUser, gettime());
return xml;
}
/// <summary>
/// 回复图文消息
/// </summary>
/// <param name="toUser"></param>
/// <param name="fromUser"></param>
/// <returns></returns>
public static string news(string toUser, string fromUser)
{
string xml = string.Format(@"<xml>
<ToUserName><![CDATA[{0}]]></ToUserName>
<FromUserName><![CDATA[{1}]]></FromUserName>
<CreateTime>{2}</CreateTime>
<MsgType><![CDATA[news]]></MsgType>
<ArticleCount>1</ArticleCount>
<Articles>
<item>
<Title><![CDATA[C#导出 Execl 类型文件(二)动态合并表格(更新了)]]></Title>
<Description><![CDATA[C#导出 Execl 类型文件(二)动态合并表格(更新了)]]></Description>
<PicUrl><![CDATA[http://www.tnblog.net//arcimg/15736469932/two_d6f0ab75b3c7406a8e04570c21097b3b.png]]></PicUrl>
< Url><![CDATA[http://www.tnblog.net/15736469932/article/details/2978]]></Url>
</item>
<item>
<Title><![CDATA[IOC(控制反转)与DI(依赖注入)]]></Title>
<Description><![CDATA[IOC(控制反转)与DI(依赖注入)]]></Description>
<PicUrl><![CDATA[http://www.tnblog.net/arcimg/Eason_zh/47c164934a20427a93258d53822aa99f.png]]></PicUrl>
< Url><![CDATA[http://www.tnblog.net/Eason_zh/article/details/2955]]></Url>
</item>
</Articles>
</xml>", fromUser, toUser, gettime());
return xml;
}
}
最终获取到信息:
public ActionResult Index()
{
try
{
StreamReader streamReader = new StreamReader(Request.InputStream);
//接收微信推出的xml
string xml = streamReader.ReadToEnd();
log.Write(xml, "", "记录微信推送信息");
XElement root = XElement.Parse(xml);
string FromUserName = root.Element("FromUserName").Value;
//取出开发者微信号
string ToUserName = root.Element("ToUserName").Value;
//取出消息类型
string MsgType = root.Element("MsgType").Value;
string result = "";
if (MsgType.ToLower() == "text")
{
string Content = root.Element("Content").Value;
if (Content=="redis")
{
result = sendMsg_tools.news(ToUserName, FromUserName);
}
else if (Content=="音乐")
{
result = sendMsg_tools.Music(ToUserName, FromUserName);
}
else
{
result = sendMsg_tools.msgInfo(ToUserName, FromUserName, Content);
}
}
else if (MsgType.ToLower() == "image")
{
string MediaId = root.Element("MediaId").Value;
result = sendMsg_tools.Image(ToUserName, FromUserName, MediaId);
}
else if (MsgType.ToLower() == "voice")
{
string MediaId = root.Element("MediaId").Value;
result = sendMsg_tools.Voice(ToUserName, FromUserName, MediaId);
}
else if (MsgType.ToLower() == "video")
{
string MediaId = root.Element("MediaId").Value;
result = sendMsg_tools.Video(ToUserName, FromUserName, MediaId);
}
else if (MsgType.ToLower() == "music")
{
string MediaId = root.Element("MediaId").Value;
result = sendMsg_tools.Music(ToUserName, FromUserName);
}
else if (MsgType.ToLower() == "news")
{
result = sendMsg_tools.news(ToUserName, FromUserName);
}
else
{
result = sendMsg_tools.msgInfo(ToUserName, FromUserName, "暂时不支持该消息类型");
}
log.Write(result, "", "生成的XML");
Response.Write(result);
}
catch (Exception ex)
{
log.Write(ex.Message, "", "报错了");
}
return View();
}
public ActionResult token()
{
string token = Access_token.Gettoken();
return Json(token,JsonRequestBehavior.AllowGet);
}