/// <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);
        }
Example #2
0
        /// <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);
            }
        }
Example #4
0
        /// <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);
        }