Esempio n. 1
0
        /// <summary>
        /// 服务器响应微信请求
        /// </summary>
        /// <param name="weixin"></param>
        /// <returns></returns>
        private ActionResult ResponseMsg(string weixin)
        {
            // 尝试读取消息.
            AbstractRequest requestMessage = messageReader.ReadMessage(weixin);

            if (logger.IsDebugEnabled)
            {
                logger.DebugFormat("尝试读取消息, 读取结果: {0}", requestMessage);
            }

            if (requestMessage == null)
            {
                logger.Warn("无法识别的消息!");

                // 无法识别的消息.
                return(Content(""));
            }



            // 消息处理管理器.
            ProcessServerManager manager = ProcessServerManager.Instance();
            // 处理具体请求.
            AbstractResponse response = manager.ProcessRequest(requestMessage);


            if (logger.IsDebugEnabled)
            {
                logger.DebugFormat("尝试处理消息, 处理结果: {0}", response);
            }


            if (response != null)
            {
                // 处理成功.
                string xmlData = response.ToXml();

                if (logger.IsDebugEnabled)
                {
                    logger.DebugFormat("提交反馈的 XML 消息: {0}", xmlData);
                }

                return(Content(xmlData, "text/xml", Encoding.UTF8));
            }

            logger.WarnFormat("存在有消息,没有进行处理:{0}", weixin);
            return(Content(""));
        }