Пример #1
0
        /// <summary>
        /// 处理消息的接口,如果回复被动消息,直接回复 xml 格式的消息即可。
        /// 如果不处理或者发送客服消息等直接回复空字符串即可。
        /// </summary>
        /// <param name="receiveXmlMsgType"></param>
        /// <param name="receiveXmlMessage"></param>
        /// <returns></returns>
        public string Process(ReceiveXmlMessageType receiveXmlMsgType, ReceiveXmlMessage receiveXmlMessage)
        {
            string result = string.Empty;

            if (receiveXmlMessage != null)
            {
                // 消息类型
                switch (receiveXmlMsgType)
                {
                case ReceiveXmlMessageType.Undefined:                              // 未识别出消息类型
                    break;

                case ReceiveXmlMessageType.Text:                                   // 文本消息
                    break;

                case ReceiveXmlMessageType.Image:                                  // 图片消息
                    break;

                case ReceiveXmlMessageType.Voice:                                  // 语音消息
                    result = VoiceAction(receiveXmlMessage);
                    break;

                case ReceiveXmlMessageType.Video:                                  // 视频消息
                    break;

                case ReceiveXmlMessageType.Location:                               // 地理位置消息
                    break;

                case ReceiveXmlMessageType.Link:                                   // 链接消息
                    break;

                case ReceiveXmlMessageType.Event_QRCode_Subscribe:                 // 用户未关注时扫描二维码事件
                    break;

                case ReceiveXmlMessageType.Event_QRCode_Scan:                      // 用户已关注时扫描二维码事件
                    break;

                case ReceiveXmlMessageType.Event_View:                             // 点击菜单跳转链接时事件
                    break;

                case ReceiveXmlMessageType.Event_Click:                            // 点击菜单拉取消息时事件
                    result = EventClickAction(receiveXmlMessage);
                    break;

                case ReceiveXmlMessageType.Event_Location:                         // 上报地理位置时事件
                    result = EventLocationAction(receiveXmlMessage);
                    break;

                case ReceiveXmlMessageType.Event_Subscribe:                        // 关注事件
                    break;

                case ReceiveXmlMessageType.Event_UnSubscribe:                      // 取消关注事件
                    break;

                default:
                    break;
                }
            }
            return(result);
        }
Пример #2
0
 /// <summary>
 /// 处理消息的接口,如果回复被动消息,直接回复 xml 格式的消息即可。
 /// 如果不处理或者发送客服消息等直接回复空字符串即可。
 /// </summary>
 /// <param name="receiveXmlMsgType"></param>
 /// <param name="receiveXmlMessage"></param>
 /// <returns></returns>
 public string Process(ReceiveXmlMessageType receiveXmlMsgType, ReceiveXmlMessage receiveXmlMessage)
 {
     string result = string.Empty;
     if (receiveXmlMessage != null)
     {
         // 消息类型
         switch (receiveXmlMsgType)
         {
             case ReceiveXmlMessageType.Undefined:                          // 未识别出消息类型
                 break;
             case ReceiveXmlMessageType.Text:                               // 文本消息
                 break;
             case ReceiveXmlMessageType.Image:                              // 图片消息
                 break;
             case ReceiveXmlMessageType.Voice:                              // 语音消息
                 result = VoiceAction(receiveXmlMessage);
                 break;
             case ReceiveXmlMessageType.Video:                              // 视频消息
                 break;
             case ReceiveXmlMessageType.Location:                           // 地理位置消息
                 break;
             case ReceiveXmlMessageType.Link:                               // 链接消息
                 break;
             case ReceiveXmlMessageType.Event_QRCode_Subscribe:             // 用户未关注时扫描二维码事件
                 break;
             case ReceiveXmlMessageType.Event_QRCode_Scan:                  // 用户已关注时扫描二维码事件
                 break;
             case ReceiveXmlMessageType.Event_View:                         // 点击菜单跳转链接时事件
                 break;
             case ReceiveXmlMessageType.Event_Click:                        // 点击菜单拉取消息时事件
                 result = EventClickAction(receiveXmlMessage);
                 break;
             case ReceiveXmlMessageType.Event_Location:                     // 上报地理位置时事件
                 result = EventLocationAction(receiveXmlMessage);
                 break;
             case ReceiveXmlMessageType.Event_Subscribe:                    // 关注事件
                 break;
             case ReceiveXmlMessageType.Event_UnSubscribe:                  // 取消关注事件
                 break;
             default:
                 break;
         }
     }
     return result;
 }
Пример #3
0
        /// <summary>
        /// 微信服务器消息处理
        /// </summary>
        /// <param name="xml">微信服务器发来的 xml 数据</param>
        /// <returns></returns>
        public static string ProcessMessage(string xml)
        {
            Log.Debug("\r\nReceive>>\r\n{0}", xml);
            string result = string.Empty;

            if (WeiXinService._Service != null)
            {
                ReceiveXmlMessage receiveXmlMessage = WeiXinService.ConvertReceiveXmlToReceiveXmlMessage(xml);
                if (receiveXmlMessage == null)
                {
                    Log.Error("转换消息失败,xml:\r\n{0}", xml);
                }
                else
                {
                    ReceiveXmlMessageType receiveXmlMessageType = WeiXinService.GetReceiveXmlMessageType(receiveXmlMessage);
                    result = WeiXinService._Service.Process(receiveXmlMessageType, receiveXmlMessage);
                }
            }
            return(result);
        }