/// <summary> /// 获取消息对象 /// </summary> /// <returns></returns> private MwxMessage GetWxMessage() { MwxMessage wx = new MwxMessage(); StreamReader str = new StreamReader(Request.InputStream, System.Text.Encoding.UTF8); XmlDocument xml = new XmlDocument(); xml.Load(str); wx.ToUserName = xml.SelectSingleNode("xml").SelectSingleNode("ToUserName").InnerText; wx.FromUserName = xml.SelectSingleNode("xml").SelectSingleNode("FromUserName").InnerText; wx.CreateTime = Convert.ToInt64(xml.SelectSingleNode("xml").SelectSingleNode("CreateTime").InnerText); wx.MsgId = Convert.ToInt64(xml.SelectSingleNode("xml").SelectSingleNode("MsgId").InnerText); wx.MsgType = xml.SelectSingleNode("xml").SelectSingleNode("MsgType").InnerText; switch (wx.MsgType.Trim()) { case "text": wx.Content = xml.SelectSingleNode("xml").SelectSingleNode("Content").InnerText; break; case "event": wx.Event = xml.SelectSingleNode("xml").SelectSingleNode("Event").InnerText; wx.EventKey = xml.SelectSingleNode("xml").SelectSingleNode("EventKey").InnerText; break; } return(wx); }
/// <summary> /// 发送被动响应消息 /// </summary> /// <param name="ToUserName">接收方帐号(收到的OpenID)</param> /// <param name="Content">回复的消息内容(换行:在content中能够换行,微信客户端就支持换行显示)</param> /// <param name="FromUserName">开发者微信号</param> /// <param name="CreateTime">消息创建时间 (整型)</param> /// <param name="MsgType">text</param> /// <returns></returns> public string GetSendMessage(MwxMessage wx, string content) { var createTime = ConvertDateTimeInt(DateTime.Now); return (string.Format(@"<xml><ToUserName><![CDATA[{0}]]></ToUserName><FromUserName><![CDATA[{1}]]></FromUserName><CreateTime>{2}</CreateTime><MsgType><![CDATA[{3}]]></MsgType><Content><![CDATA[{4}]]></Content></xml>", wx.FromUserName, wx.ToUserName, createTime, wx.MsgType, content)); }
/// <summary> /// 微信API入口 /// </summary> /// <returns></returns> public string Index() { //// 只有在第一次服务搭建的时候开启,后面注释掉该代码 /// CheckSignature(); try { MwxMessage wx = GetWxMessage(); string res = ""; string sendMessage = string.Empty; if (wx.MsgType == "text") { if (wx.Content == "待送货订单") { ///// 查询待送货订单 //// 包括3条数据 //// 1、总待送货 //// 2、半小时内需要送货的订单数 //// 3、今天内需要送货的订单数 sendMessage = this.GetSendGoodesCount(); } else { //// 记录一条日志信息 sendMessage = string.Format("您好, {0}已收到你消息。!", WebConfigeOpert.GetPlatformName()); } } if (!string.IsNullOrEmpty(sendMessage)) { res = new WXApiOpert().GetSendMessage(wx, sendMessage); } return(res); } catch (Exception) { return(string.Empty); } }
/// <summary> /// 发送文字消息 /// </summary> /// <param name="wx">获取的收发者信息 /// <param name="content">内容 /// <returns></returns> public string SendTextMessage(MwxMessage wx, string content) { string res = string.Format(@" ", wx.FromUserName, wx.ToUserName, DateTime.Now, content); return(res); }