예제 #1
0
        /// <summary>
        /// 处理微信 POST 过来的消息
        /// </summary>
        /// <param name="xml"></param>
        public static string Process(string xml)
        {
            if (string.IsNullOrEmpty(xml))
            {
                return(string.Empty);
            }

            string messageType = WechatMessageType.GetMessageType(xml);

            IWechatMessageHandler handler = GetMessageHandler(messageType);

            if (handler == null)
            {
                return(string.Empty);
            }

            if (messageType == WechatMessageType.Text)
            {
                return(handler.Process(xml));
            }

            Task.Run(() => handler.Process(xml)).ContinueWith(t =>
            {
                if (t.IsFaulted)
                {
                    LogHelper.Error(string.Format("[{0}] 消息处理器执行异常。 ", messageType), t.Exception);
                }
                return(t.Result);
            });

            return(string.Empty);
        }
예제 #2
0
 public WechatMsgAppService(IWechatMessageHandler wechatMessageHandler)
 {
     _wechatMessageHandler = wechatMessageHandler;
 }
예제 #3
0
 /// <summary>
 /// 注册微信消息处理器
 /// </summary>
 /// <param name="messageType"></param>
 /// <param name="handler"></param>
 public static void RegisterMessageHandler(string messageType, IWechatMessageHandler handler)
 {
     dicMessageHandler.Add(messageType.ToLower(), handler);
 }