Exemplo n.º 1
0
        /// <summary>
        /// 处理图片请求
        /// </summary>
        /// <param name="requestMessage"></param>
        /// <returns></returns>
        public override IResponseMessageBase OnImageRequest(RequestMessageImage requestMessage)
        {
            var responseMessage = CreateResponseMessage <ResponseMessageNews>();


            return(responseMessage);
        }
        /// <summary>
        /// 处理图片请求
        /// </summary>
        /// <param name="requestMessage"></param>
        /// <returns></returns>
        public override IResponseMessageBase OnImageRequest(RequestMessageImage requestMessage)
        {
            //一隔一返回News或Image格式
            if (base.GlobalMessageContext.GetMessageContext(requestMessage).RequestMessages.Count() % 2 == 0)
            {
                var responseMessage = CreateResponseMessage <ResponseMessageNews>();

                responseMessage.Articles.Add(new Article()
                {
                    Title       = "您刚才发送了图片信息",
                    Description = "您发送的图片将会显示在边上",
                    PicUrl      = requestMessage.PicUrl,
                    Url         = "http://sdk.weixin.senparc.com"
                });
                responseMessage.Articles.Add(new Article()
                {
                    Title       = "第二条",
                    Description = "第二条带连接的内容",
                    PicUrl      = requestMessage.PicUrl,
                    Url         = "http://sdk.weixin.senparc.com"
                });

                return(responseMessage);
            }
            else
            {
                var responseMessage = CreateResponseMessage <ResponseMessageImage>();
                responseMessage.Image.MediaId = requestMessage.MediaId;
                return(responseMessage);
            }
        }
Exemplo n.º 3
0
        public override IResponseMessageBase OnImageRequest(RequestMessageImage requestMessage)
        {
            var responseImage = base.CreateResponseMessage <ResponseMessageText>();

            responseImage.Content = "来自图片,ahui";
            return(responseImage);
        }
        /// <summary>
        /// 发送图片,返回图片
        /// </summary>
        /// <param name="requestMessage"></param>
        /// <returns></returns>
        public override IResponseMessageBase OnImageRequest(RequestMessageImage requestMessage)
        {
            var responseMessage = this.CreateResponseMessage <ResponseMessageImage>();

            responseMessage.Image.MediaId = requestMessage.MediaId;
            return(responseMessage);
        }
Exemplo n.º 5
0
        /// <summary>
        /// 获取请求消息和实体之间的映射结果
        /// </summary>
        /// <param name="requestMsgType"></param>
        /// <returns></returns>
        public override IRequestMessageBase GetRequestEntityMappingResult(RequestMsgType requestMsgType, XDocument doc = null)
        {
            RequestMessageBase requestMessage;

            switch (requestMsgType)
            {
            case RequestMsgType.Text:
                requestMessage = new RequestMessageText();
                break;

            case RequestMsgType.Image:
                requestMessage = new RequestMessageImage();
                break;

            case RequestMsgType.MiniProgramPage:    //小程序页面
                requestMessage = new RequestMessageMiniProgramPage();
                break;

            case RequestMsgType.NeuChar:
                requestMessage = new RequestMessageNeuChar();
                break;

            case RequestMsgType.Event:
                //判断Event类型
                switch (doc.Root.Element("Event").Value.ToUpper())
                {
                case "USER_ENTER_TEMPSESSION":        //进入客服会话
                    requestMessage = new RequestMessageEvent_UserEnterTempSession();
                    break;

                case "WEAPP_AUDIT_SUCCESS":         //小程序审核成功
                    requestMessage = new RequestMessageEvent_WeAppAuditSuccess();
                    break;

                case "WEAPP_AUDIT_FAIL":         //小程序审核失败
                    requestMessage = new RequestMessageEvent_WeAppAuditFail();
                    break;

                case "WEAPP_AUDIT_DELAY":         //小程序审核延后
                    requestMessage = new RequestMessageEvent_WeAppAuditDelay();
                    break;

                case "WXA_NICKNAME_AUDIT":         //名称审核结果
                    requestMessage = new RequestMessageEvent_NicknameAudit();
                    break;

                default:        //其他意外类型(也可以选择抛出异常)
                    requestMessage = new RequestMessageEventBase();
                    break;
                }
                break;

            default:
                throw new UnknownRequestMsgTypeException(string.Format("MsgType:{0} 在RequestMessageFactory中没有对应的处理程序!", requestMsgType), new ArgumentOutOfRangeException());    //为了能够对类型变动最大程度容错(如微信目前还可以对公众账号suscribe等未知类型,但API没有开放),建议在使用的时候catch这个异常
            }
            return(requestMessage);
        }
Exemplo n.º 6
0
        /// <summary>
        /// 推送纯文字
        /// 2013-9-12
        /// </summary>
        /// <param name="id"></param>
        /// <returns></returns>
        public IResponseMessageBase GetResponseMessageTxtByContent(RequestMessageImage requestMessage, string content, int wid)
        {
            var responseMessage = ResponseMessageBase.CreateFromRequestMessage <ResponseMessageText>(requestMessage);
            var locationService = new LocationService();

            responseMessage.Content = content;
            wxResponseBaseMgr.Add(wid, requestMessage.FromUserName, requestMessage.MsgType.ToString(), "微信上墙", "text", "文字请求,推送纯粹文字,内容为:" + content, requestMessage.ToUserName);
            return(responseMessage);
        }
        //TODO
        /// <summary>
        /// 用户图片获取并上传到服务器,数据库同步更新
        /// </summary>
        /// <param name="requestMessage">RequestMessageImage</param>
        private void ModifyUserImageInfo(RequestMessageImage requestMessage)
        {
            if (requestMessage == null || string.IsNullOrEmpty(requestMessage.PicUrl))
            {
                return;
            }

            WebClient client = new WebClient();
        }
        public override async Task <IResponseMessageBase> OnImageRequestAsync(RequestMessageImage requestMessage)
        {
            //发来图片,进行处理
            await Senparc.Weixin.WxOpen.AdvancedAPIs.CustomApi.SendTextAsync(appId, OpenId, "刚才您发送了这张图片:");

            await Senparc.Weixin.WxOpen.AdvancedAPIs.CustomApi.SendImageAsync(appId, OpenId, requestMessage.MediaId);

            return(await DefaultResponseMessageAsync(requestMessage));
        }
Exemplo n.º 9
0
        /// <summary>
        /// 处理图片请求
        /// </summary>
        /// <param name="requestMessage"></param>
        /// <returns></returns>
        public override IResponseMessageBase OnImageRequest(RequestMessageImage requestMessage)
        {
            MpReply reply = MpReplyService.GetALL(k => k.Action == "autoreply").FirstOrDefault();

            if (reply != null)
            {
                return(ResponseMsg(reply.MpMaterial));
            }
            return(null);
        }
 public override IResponseMessageBase OnImageRequest(RequestMessageImage requestMessage)
 {
     //发来图片,进行处理
     Task.Factory.StartNew(async() =>
     {
         await Senparc.Weixin.WxOpen.AdvancedAPIs.CustomApi.SendTextAsync(appId, OpenId, "刚才您发送了这张图片:");
         await Senparc.Weixin.WxOpen.AdvancedAPIs.CustomApi.SendImageAsync(appId, OpenId, requestMessage.MediaId);
     });
     return(DefaultResponseMessage(requestMessage));
 }
Exemplo n.º 11
0
        /// <summary>
        /// 处理图片请求
        /// </summary>
        /// <param name="requestMessage"></param>
        /// <returns></returns>
        public override IResponseMessageBase OnImageRequest(RequestMessageImage requestMessage)
        {
            var responseMessage = CreateResponseMessage <ResponseMessageNews>();

            responseMessage.Articles.Add(new Article()
            {
                Title = "您刚才发送了图片信息", PicUrl = requestMessage.PicUrl, Url = requestMessage.PicUrl
            });
            return(responseMessage);
        }
Exemplo n.º 12
0
        public override IResponseMessageBase OnImageRequest(RequestMessageImage requestMessage)
        {
            IResponseMessageBase response = OnImageEvent?.Invoke(this, requestMessage);

            if (response != null)
            {
                return(response);
            }

            return(base.OnImageRequest(requestMessage));
        }
Exemplo n.º 13
0
        private Task SaveImageTask(RequestMessageImage requestMessage)
        {
            TaskObject taskObject = new TaskObject()
            {
                thisObject = this,
                parameter1 = requestMessage
            };
            Task t = new Task(SaveImage, taskObject);

            t.Start();

            return(t);
        }
Exemplo n.º 14
0
        /// <summary>
        /// 处理图片请求
        /// </summary>
        /// <param name="requestMessage"></param>
        /// <returns></returns>
        public override IResponseMessageBase OnImageRequest(RequestMessageImage requestMessage)
        {
            var responseMessage = CreateResponseMessage <ResponseMessageNews>();

            responseMessage.Articles.Add(new Article()
            {
                Title       = "您刚才发送了图片信息",
                Description = "您发送的图片将会显示在边上",
                PicUrl      = requestMessage.PicUrl,
                Url         = "http://sdk.weixin.senparc.com"
            });
            return(responseMessage);
        }
Exemplo n.º 15
0
        public override IResponseMessageBase OnImageRequest(RequestMessageImage requestMessage)
        {
            string result          = "";
            string CVServiceSwitch = "";//CVServiceSwitch是根据上一次发送的内容 赋值

            if (CurrentMessageContext.RequestMessages.Count > 0)
            {
                if (CurrentMessageContext.RequestMessages[CurrentMessageContext.RequestMessages.Count - 2] is RequestMessageText)
                {
                    CVServiceSwitch = (CurrentMessageContext.RequestMessages[CurrentMessageContext.RequestMessages.Count - 2] as RequestMessageText).Content;
                }

                //计算机视觉
                switch (CVServiceSwitch)
                {
                case "1":
                    //处理图片-计算机视觉
                    //requestMessage.PicUrl
                    result = CognitiveServiceTools.ComputerVision(requestMessage.PicUrl);

                    break;

                case "2":
                    //处理图片-火车识别
                    result = CognitiveServiceTools.TrainCog(requestMessage.PicUrl);
                    break;

                case "3":
                    result = "Current function have not been released!";

                    break;

                default:
                    result = "识别命令已失效,请重新选择识别功能!\r\n" + "发送[1]选择计算机视觉\r\n" + "发送[2]选择自定义影像\r\n" + "发送[3]选择微软Flow服务\r\n" + "If you need more help,contact me:[email protected]";
                    break;
                }

                var responseMessage = base.CreateResponseMessage <ResponseMessageText>();


                responseMessage.Content = result;
                //这时候才赋值 返回回复消息
                return(responseMessage);
            }//if
            else
            {
                var responseMessage = base.CreateResponseMessage <ResponseMessageText>();
                responseMessage.Content = "识别命令已失效,请重新选择识别功能!\r\n\r\n" + "发送[1]选择计算机视觉\r\n\r\n" + "发送[2]选择自定义影像\r\n\r\n" + "发送[3]选择微软Flow服务\r\n\r\n" + "If you need more help,contact me:[email protected]";
                return(responseMessage);
            }
        }
Exemplo n.º 16
0
        /// <summary>
        /// 推送纯文字
        /// 2013-9-12
        /// </summary>
        /// <param name="id"></param>
        /// <returns></returns>
        public IResponseMessageBase GetResponseMessageTxtByContent(RequestMessageImage requestMessage, string content, int wid)
        {
            var responseMessage = ResponseMessageBase.CreateFromRequestMessage <ResponseMessageText>(requestMessage);
            var locationService = new LocationService();

            responseMessage.Content = content;
            string openid   = requestMessage.FromUserName;
            var    result   = UserApi.Info(stoce(), openid);
            string pickname = result.nickname;
            string image    = result.headimgurl;

            wxResponseBaseMgr.Add(wid, requestMessage.FromUserName, requestMessage.MsgType.ToString(), "微信上墙", "text", "文字请求,推送纯粹文字,内容weixfonnfun.cs22为:" + content, requestMessage.ToUserName, pickname, image);
            return(responseMessage);
        }
Exemplo n.º 17
0
        public override IResponseMessageBase OnImageRequest(RequestMessageImage requestMessage)
        {
            var responseMessage = ResponseMessageFactory.CreateFromRequestMessage <ResponseMessageNews>(requestMessage);

            responseMessage.Articles = new List <Article>();
            var artcle = new Article();

            artcle.Description = "你发送了图片消息";
            artcle.PicUrl      = "http://h5ds-cdn.oss-cn-beijing.aliyuncs.com/upload/53a1bad4-c27b-4e9b-8432-c85d10f2880b.png";
            artcle.Title       = "植物";
            artcle.Url         = "www.baidu.com";
            responseMessage.Articles.Add(artcle);
            return(responseMessage);
        }
Exemplo n.º 18
0
        /// <summary>
        /// 处理图片请求
        /// </summary>
        /// <param name="requestMessage"></param>
        /// <returns></returns>
        public override IResponseMessageBase OnImageRequest(RequestMessageImage requestMessage)
        {
            return(null);

            //var responseMessageKefu = base.CreateResponseMessage<ResponseMessageTransfer_Customer_Service>();
            //return responseMessageKefu;

            //StringBuilder sb = new StringBuilder();
            //var responseMessage = CreateResponseMessage<ResponseMessageText>();


            //// string uploadSuccess = BLL.BMedia.GetDefault(requestMessage.MediaId, requestMessage.FromUserName);
            //return responseMessage;
        }
Exemplo n.º 19
0
        //<?xml version="1.0" encoding="utf-8"?>
        //<xml>
        //  <ToUserName><![CDATA[gh_a96a4a619366]]></ToUserName>
        //  <FromUserName><![CDATA[olPjZjsXuQPJoV0HlruZkNzKc91E]]></FromUserName>
        //  <CreateTime>1357986928</CreateTime>
        //  <MsgType><![CDATA[text]]></MsgType>
        //  <Content><![CDATA[中文]]></Content>
        //  <MsgId>5832509444155992350</MsgId>
        //</xml>

        /// <summary>
        /// 获取XDocument转换后的IRequestMessageBase实例。
        /// 如果MsgType不存在,抛出UnknownRequestMsgTypeException异常
        /// </summary>
        /// <returns></returns>
        public static IRequestMessageBase GetRequestEntity(XDocument doc, PostModel postModel = null)
        {
            RequestMessageBase requestMessage = null;
            RequestMsgType     msgType;
            int aaa;
            int bbb;

            try
            {
                msgType = MsgTypeHelper.GetRequestMsgType(doc);
                switch (msgType)
                {
                case RequestMsgType.Text:
                    requestMessage = new RequestMessageText();
                    break;

                case RequestMsgType.Image:
                    requestMessage = new RequestMessageImage();
                    break;

                case RequestMsgType.NeuChar:
                    requestMessage = new RequestMessageNeuChar();
                    break;

                case RequestMsgType.Event:
                    //判断Event类型
                    switch (doc.Root.Element("Event").Value.ToUpper())
                    {
                    case "USER_ENTER_TEMPSESSION":        //进入客服会话
                        requestMessage = new RequestMessageEvent_UserEnterTempSession();
                        break;

                    default:        //其他意外类型(也可以选择抛出异常)
                        requestMessage = new RequestMessageEventBase();
                        break;
                    }
                    break;

                default:
                    throw new UnknownRequestMsgTypeException(string.Format("MsgType:{0} 在RequestMessageFactory中没有对应的处理程序!", msgType), new ArgumentOutOfRangeException());    //为了能够对类型变动最大程度容错(如微信目前还可以对公众账号suscribe等未知类型,但API没有开放),建议在使用的时候catch这个异常
                }
                Senparc.NeuChar.Helpers.EntityHelper.FillEntityWithXml(requestMessage, doc);
            }
            catch (ArgumentException ex)
            {
                throw new WeixinException(string.Format("RequestMessage转换出错!可能是MsgType不存在!,XML:{0}", doc.ToString()), ex);
            }
            return(requestMessage);
        }
Exemplo n.º 20
0
        public override IResponseMessageBase OnImageRequest(RequestMessageImage requestMessage)
        {
            //记录用户行为
            _wr.CallUserBehavior("IMAGE_EVENT", requestMessage.FromUserName, requestMessage.AgentID.ToString(), requestMessage.MediaId, "", 8);

            LogManager.GetLogger(this.GetType()).Debug("OnImageRequest");
            LogManager.GetLogger(this.GetType()).Debug("AppId: {0} CreatedUserID: {1}", requestMessage.AgentID, requestMessage.FromUserName);
            //SaveImage(requestMessage);
            SaveImageTask(requestMessage);
            var responseMessage = this.CreateResponseMessage <ResponseMessageText>();

            responseMessage.Content = "感谢您的参与。";

            return(responseMessage);
        }
Exemplo n.º 21
0
        /// <summary>
        /// 处理语音请求
        /// </summary>
        public IResponseMessageBase GetResponseMessageeMusic(RequestMessageImage requestMessage, int ruleId, int accountId)
        {
            //string EventName = "";
            var responseMessage = ResponseMessageBase.CreateFromRequestMessage <ResponseMessageMusic>(requestMessage);
            //Model.weixin_request_content model = new BLL.weixin_request_content().GetModel(ruleId);
            WeixinRequestContent model = WeixinRequestContent.Find(WeixinRequestContent._.RuleId == ruleId);

            if (model == null)
            {
                //new BLL.weixin_response_content().Add(accountId, requestMessage.FromUserName, requestMessage.MsgType.ToString(), EventName, "music", "-1", requestMessage.ToUserName);
                WeixinResponseContent entity = new WeixinResponseContent()
                {
                    OpenId         = requestMessage.FromUserName,
                    RequestType    = requestMessage.MsgType.ToString(),
                    RequestContent = requestMessage.PicUrl,
                    ResponseType   = "music",
                    ReponseContent = "-1",
                    XmlContent     = requestMessage.ToUserName
                };
                entity.Insert();
            }
            else
            {
                if (model.MediaURL.Contains("http://"))
                {
                    responseMessage.Music.MusicUrl = model.MediaURL;
                }
                else
                {
                    //因为安装目录是以/开头,所以去掉,以免出现双斜杆
                    responseMessage.Music.MusicUrl = Utils.GetServerUrl() + model.MediaURL;
                }
                responseMessage.Music.Title       = model.Title;
                responseMessage.Music.Description = model.Content;
                //new BLL.weixin_response_content().Add(accountId, requestMessage.FromUserName, requestMessage.MsgType.ToString(), EventName, "music", "音乐链接:" + model.media_url + "|标题:" + model.title + "|描述:" + model.content, requestMessage.ToUserName);
                WeixinResponseContent entity = new WeixinResponseContent()
                {
                    OpenId         = requestMessage.FromUserName,
                    RequestType    = requestMessage.MsgType.ToString(),
                    RequestContent = requestMessage.PicUrl,
                    ResponseType   = "music",
                    ReponseContent = "音乐链接:" + model.MediaURL + "|标题:" + model.Title + "|描述:" + model.Content,
                    XmlContent     = requestMessage.ToUserName
                };
                entity.Insert();
            }
            return(responseMessage);
        }
Exemplo n.º 22
0
        /// <summary>
        /// 处理图片类请求
        /// </summary>
        /// <param name="requestMessage"></param>
        /// <returns></returns>
        public override IResponseMessageBase OnImageRequest(RequestMessageImage requestMessage)
        {
            try
            {
                //ApiLoghelper.Info("OnTextRequest", "公众号内发送信息");
                var responseMessage = base.CreateResponseMessage <ResponseMessageText>();
                responseMessage.Content = "您的OpenID是:" + requestMessage.FromUserName  //这里的requestMessage.FromUserName也可以直接写成base.WeixinOpenId
                                          + "。\r\n您发送了图片链接:" + requestMessage.PicUrl; //\r\n用于换行,requestMessage.Content即用户发过来的文字内容

                return(responseMessage);
            }
            catch (System.Exception ex)
            {
                //ApiLoghelper.Info("OnTextRequest", ex.Message);
                throw;
            }
        }
Exemplo n.º 23
0
        /// <summary>
        /// 推送纯文字
        /// </summary>
        public IResponseMessageBase GetResponseMessageTxtByContent(RequestMessageImage requestMessage, string content, int accountId)
        {
            var responseMessage = ResponseMessageBase.CreateFromRequestMessage <ResponseMessageText>(requestMessage);

            responseMessage.Content = content;
            WeixinResponseContent entity = new WeixinResponseContent()
            {
                OpenId         = requestMessage.FromUserName,
                RequestType    = requestMessage.MsgType.ToString(),
                RequestContent = requestMessage.PicUrl,
                ResponseType   = "text",
                ReponseContent = "文字请求,推送纯粹文字,内容为:" + content,
                XmlContent     = requestMessage.ToUserName
            };

            entity.Insert();
            //new BLL.weixin_response_content().Add(accountId, requestMessage.FromUserName, requestMessage.MsgType.ToString(), requestMessage.Content, "text", "文字请求,推送纯粹文字,内容为:" + content, requestMessage.ToUserName);
            return(responseMessage);
        }
Exemplo n.º 24
0
        /// <summary>
        /// 处理图片请求
        /// </summary>
        /// <param name="requestMessage"></param>
        /// <returns></returns>
        protected override IResponseMessageBase OnImageRequest(RequestMessageImage requestMessage)
        {
            var responseMessage = CreateResponseMessage <ResponseMessageNews>();

            responseMessage.Articles.Add(new Article()
            {
                Title       = "您刚才发送了图片信息",
                Description = "您发送的图片将会显示在边上",
                PicUrl      = requestMessage.PicUrl,
                Url         = "http://www.qxuninfo.com"
            });
            responseMessage.Articles.Add(new Article()
            {
                Title       = "第二条",
                Description = "第二条带连接的内容",
                PicUrl      = requestMessage.PicUrl,
                Url         = "http://www.qxuninfo.com"
            });
            return(responseMessage);
        }
        /// <summary>
        /// 处理图片请求
        /// </summary>
        /// <param name="requestMessage"></param>
        /// <returns></returns>
        public override async Task <IResponseMessageBase> OnImageRequestAsync(RequestMessageImage requestMessage)
        {
            try
            {
                var opid      = requestMessage.FromUserName;
                var entitymsg = new MpEventRequestMsgLogDto();

                entitymsg.MpID    = mpId;
                entitymsg.OpenID  = opid;
                entitymsg.MsgType = requestMessage.MsgType.ToString();
                entitymsg.MsgId   = requestMessage.MsgId.ToString();
                entitymsg.MediaId = requestMessage.MediaId;
                await _mpEventRequestMsgLogAppService.Create(entitymsg);


                #region 春雨医生逻辑处理
                var chunyuHandler = _iocResolver.Resolve <IChunYuMessageHandler>();
                if (await chunyuHandler.IsAsking(mpId, requestMessage.FromUserName))
                {
                    await chunyuHandler.Ask(mpId, requestMessage.FromUserName, requestMessage.MsgType.ToString(), requestMessage.MediaId);

                    return(requestMessage.CreateResponseMessage <ResponseMessageNoResponse>());
                }
                #endregion

                #region 客服逻辑处理
                var kefuHandler = _iocResolver.Resolve <IKeFuMessageHandler>();
                if (await kefuHandler.IsAsking(mpId, requestMessage.FromUserName))
                {
                    await kefuHandler.Ask(mpId, requestMessage.FromUserName, requestMessage.MsgType.ToString(), requestMessage.MediaId);

                    return(requestMessage.CreateResponseMessage <ResponseMessageNoResponse>());
                }
                #endregion
            }
            catch (Exception ex)
            {
                _logger.Error(string.Format("MPID{0}记录图片回复信息出错:原因{1}", mpId, ex.Message));
            }
            return(await DefaultResponseMessageAsync(requestMessage));
        }
Exemplo n.º 26
0
        /// <summary>
        /// 处理图片请求
        /// </summary>
        /// <param name="requestMessage"></param>
        /// <returns></returns>
        public override IResponseMessageBase OnImageRequest(RequestMessageImage requestMessage)
        {
            var responseMessage = ResponseMessageBase.CreateFromRequestMessage <ResponseMessageNews>(RequestMessage);

            responseMessage.Content = "这里是正文内容,一共将发2条Article。";
            responseMessage.Articles.Add(new Article()
            {
                Title       = "您刚才发送了图片信息",
                Description = "您发送的图片将会显示在边上",
                PicUrl      = requestMessage.PicUrl,
                Url         = "http://weixin.senparc.com"
            });
            responseMessage.Articles.Add(new Article()
            {
                Title       = "第二条",
                Description = "第二条带连接的内容",
                PicUrl      = requestMessage.PicUrl,
                Url         = "http://weixin.senparc.com"
            });
            return(responseMessage);
        }
Exemplo n.º 27
0
        /// <summary>
        /// 处理图片请求
        /// </summary>
        /// <param name="requestMessage"></param>
        /// <returns></returns>
        public override IResponseMessageBase OnImageRequest(RequestMessageImage requestMessage)
        {
            var responseMessage = ResponseMessageBase.CreateFromRequestMessage <ResponseMessageNews>(RequestMessage);

            responseMessage.Content = "这里是正文内容,一共将发2条Article。";
            responseMessage.Articles.Add(new Article()
            {
                Title       = "美天网络统一帐号管理平台",
                Description = "美天网络统一帐号管理平台",
                PicUrl      = requestMessage.PicUrl,
                Url         = "http://www.xba.com.cn"
            });
            responseMessage.Articles.Add(new Article()
            {
                Title       = "第二条",
                Description = "第二条带连接的内容",
                PicUrl      = requestMessage.PicUrl,
                Url         = "http://www.xba.com.cn"
            });
            return(responseMessage);
        }
        /// <summary>
        /// 处理图片请求
        /// </summary>
        /// <param name="requestMessage"></param>
        /// <returns></returns>
        public override List <IResponseMessageBase> OnImageRequest(RequestMessageImage requestMessage)
        {
            //var responseMessage = CreateResponseMessage<ResponseMessageNews>();
            //responseMessage.Articles.Add(new Article()
            //{
            //    Title = "您刚才发送了图片信息",
            //    Description = "您发送的图片将会显示在边上",
            //    PicUrl = requestMessage.PicUrl,
            //    Url = "http://weixin.Innocellence.com"
            //});
            //responseMessage.Articles.Add(new Article()
            //{
            //    Title = "第二条",
            //    Description = "第二条带连接的内容",
            //    PicUrl = requestMessage.PicUrl,
            //    Url = "http://weixin.Innocellence.com"
            //});

            //return new List<IResponseMessageBase>(){responseMessage};
            return(CreateResponseMessage(string.Empty, (int)AutoReplyMPKeywordEnum.IMAGE));
        }
Exemplo n.º 29
0
        /// <summary>
        /// 处理图片请求
        /// </summary>
        /// <param name="requestMessage"></param>
        /// <returns></returns>
        public override IResponseMessageBase OnImageRequest(RequestMessageImage requestMessage)
        {
            var responseMessage = CreateResponseMessage <ResponseMessageNews>();

            //responseMessage.Articles.Add(new Article()
            //{
            //    Title = "您刚才发送了图片信息",
            //    Description = "您发送的图片将会显示在边上",
            //    PicUrl = requestMessage.PicUrl,
            //    Url = "http://weixin.senparc.com"
            //});
            //responseMessage.Articles.Add(new Article()
            //{
            //    Title = "第二条",
            //    Description = "第二条带连接的内容",
            //    PicUrl = requestMessage.PicUrl,
            //    Url = "http://weixin.senparc.com"
            //});

            return(responseMessage);
        }
Exemplo n.º 30
0
        /// <summary>
        /// 处理图片请求
        /// </summary>
        /// <param name="requestMessage"></param>
        /// <returns></returns>
        public override async Task <IResponseMessageBase> OnImageRequestAsync(RequestMessageImage requestMessage)
        {
            //一隔一返回News或Image格式
            if (base.GlobalMessageContext.GetMessageContext(requestMessage).RequestMessages.Count() % 2 == 0)
            {
                var responseMessage = CreateResponseMessage <ResponseMessageNews>();

                responseMessage.Articles.Add(new Senparc.NeuChar.Entities.Article()
                {
                    Title       = "您刚才发送了图片信息",
                    Description = "您发送的图片将会显示在边上",
                    PicUrl      = requestMessage.PicUrl,
                    Url         = "https://sdk.weixin.senparc.com"
                });
                responseMessage.Articles.Add(new Senparc.NeuChar.Entities.Article()
                {
                    Title       = "第二条",
                    Description = "第二条带连接的内容",
                    PicUrl      = requestMessage.PicUrl,
                    Url         = "https://sdk.weixin.senparc.com"
                });
                return(await Task.Run(() =>
                {
                    return responseMessage;
                }));

                //return responseMessage;
            }
            else
            {
                var responseMessage = CreateResponseMessage <ResponseMessageImage>();
                responseMessage.Image.MediaId = requestMessage.MediaId;
                return(await Task.Run(() =>
                {
                    return responseMessage;
                }));

                //return responseMessage;
            }
        }
Exemplo n.º 31
0
 /// <summary>
 /// 推送纯文字
 /// 2013-9-12
 /// </summary>
 /// <param name="id"></param>
 /// <returns></returns>
 public IResponseMessageBase GetResponseMessageTxtByContent(RequestMessageImage requestMessage, string content, int wid)
 {
     var responseMessage = ResponseMessageBase.CreateFromRequestMessage<ResponseMessageText>(requestMessage);
     var locationService = new LocationService();
     responseMessage.Content = content;
     DependencyManager.Resolve<IResponseMessageLogRepository>().Add(wid, requestMessage.FromUserName, requestMessage.MsgType.ToString(), "微信上墙", "text", "文字请求,推送纯粹文字,内容为:" + content, requestMessage.ToUserName);
     return responseMessage;
 }
Exemplo n.º 32
0
        //<?xml version="1.0" encoding="utf-8"?>
        //<xml>
        //  <ToUserName><![CDATA[gh_a96a4a619366]]></ToUserName>
        //  <FromUserName><![CDATA[olPjZjsXuQPJoV0HlruZkNzKc91E]]></FromUserName>
        //  <CreateTime>1357986928</CreateTime>
        //  <MsgType><![CDATA[text]]></MsgType>
        //  <Content><![CDATA[中文]]></Content>
        //  <MsgId>5832509444155992350</MsgId>
        //</xml>
        /// <summary>
        /// 获取XDocument转换后的IRequestMessageBase实例。
        /// 如果MsgType不存在,抛出UnknownRequestMsgTypeException异常
        /// </summary>
        /// <returns></returns>
        public static IRequestMessageBase GetRequestEntity(XDocument doc)
        {
            RequestMessageBase requestMessage = null;
            RequestMsgType msgType;
            try
            {
                msgType = MsgTypeHelper.GetRequestMsgType(doc);
                switch (msgType)
                {
                    case RequestMsgType.Text:
                        requestMessage = new RequestMessageText();
                        break;

                    case RequestMsgType.Location:
                        requestMessage = new RequestMessageLocation();
                        break;

                    case RequestMsgType.Image:
                        requestMessage = new RequestMessageImage();
                        break;

                    case RequestMsgType.Voice:
                        requestMessage = new RequestMessageVoice();
                        break;

                    case RequestMsgType.Video:
                        requestMessage = new RequestMessageVideo();
                        break;

                    case RequestMsgType.Link:
                        requestMessage = new RequestMessageLink();
                        break;

                    case RequestMsgType.ShortVideo:
                        requestMessage = new RequestMessageShortVideo();
                        break;

                    case RequestMsgType.Event:
                        //判断Event类型
                        switch (doc.Root.Element("Event").Value.ToUpper())
                        {
                            case "ENTER"://进入会话
                                requestMessage = new RequestMessageEvent_Enter();
                                break;

                            case "LOCATION"://地理位置
                                requestMessage = new RequestMessageEvent_Location();
                                break;

                            case "SUBSCRIBE"://订阅(关注)
                                requestMessage = new RequestMessageEvent_Subscribe();
                                break;

                            case "UNSUBSCRIBE"://取消订阅(关注)
                                requestMessage = new RequestMessageEvent_Unsubscribe();
                                break;

                            case "CLICK"://菜单点击
                                requestMessage = new RequestMessageEvent_Click();
                                break;

                            case "SCAN"://二维码扫描
                                requestMessage = new RequestMessageEvent_Scan();
                                break;

                            case "VIEW"://URL跳转
                                requestMessage = new RequestMessageEvent_View();
                                break;

                            case "MASSSENDJOBFINISH": //事件推送群发
                                requestMessage = new RequestMessageEvent_MassSendJobFinish();
                                break;

                            case "TEMPLATESENDJOBFINISH"://模板信息
                                requestMessage = new RequestMessageEvent_TemplateSendJobFinish();
                                break;

                            case "SCANCODE_PUSH"://扫码推事件(scancode_push)
                                requestMessage = new RequestMessageEvent_Scancode_Push();
                                break;

                            case "SCANCODE_WAITMSG"://扫码推事件且弹出“消息接收中”提示框(scancode_waitmsg)
                                requestMessage = new RequestMessageEvent_Scancode_Waitmsg();
                                break;

                            default://其他意外类型(也可以选择抛出异常)
                                requestMessage = new RequestMessageEventBase();
                                break;
                        }
                        break;

                    default:
                        throw new UnknownRequestMsgTypeException(string.Format("MsgType:{0} 在RequestMessageFactory中没有对应的处理程序!", msgType), new ArgumentOutOfRangeException());//为了能够对类型变动最大程度容错(如微信目前还可以对公众账号suscribe等未知类型,但API没有开放),建议在使用的时候catch这个异常
                }
                EntityHelper.FillEntityWithXml(requestMessage, doc);
            }
            catch (ArgumentException ex)
            {
                throw new WeixinException(string.Format("RequestMessage转换出错!可能是MsgType不存在!,XML:{0}", doc.ToString()), ex);
            }
            return requestMessage;
        }
Exemplo n.º 33
0
        /// <summary>
        /// 处理图片请求
        /// </summary>
        /// <param name="requestMessage"></param>
        /// <returns></returns>
        public override IResponseMessageBase OnImageRequest(RequestMessageImage requestMessage)
        {
            //int apiid = wxcomm.getApiid();

            //DependencyManager.Resolve<IResponseMessageLogRepository>().Add(apiid, requestMessage.FromUserName, requestMessage.MsgType.ToString(), requestMessage.PicUrl, "none", "", requestMessage.ToUserName);

            //#region ==== 微拍 ===
            //var responseMessage = base.CreateResponseMessage<ResponseMessageText>();
            //BLL.wx_paizhao_setting setBll = new BLL.wx_paizhao_setting();
            //bool isOpen = setBll.isOpened(apiid);
            //if (isOpen)
            //{
            //    if (CurrentMessageContext.RequestMessages.Count > 1)
            //    {

            //        string keywordStr = "";
            //        for (int i = CurrentMessageContext.RequestMessages.Count - 2; i >= 0; i--)
            //        {
            //            var historyMessage = CurrentMessageContext.RequestMessages[i];
            //            if (historyMessage.MsgType == RequestMsgType.Text)
            //            {
            //                keywordStr += (historyMessage as RequestMessageText).Content + ",";
            //            }
            //        }
            //        WeiXinPF.WeiXinComm.threeInterface.weipaiInterface wxcf = new WeiXinPF.WeiXinComm.threeInterface.weipaiInterface();
            //        if (wxcf.isWeipaiKeyWord(keywordStr, apiid))
            //        {
            //            //奥尔图的照片来拉
            //            string content = wxcf.weipaiChuanTuPian(requestMessage.FromUserName, requestMessage.PicUrl, apiid);
            //            responseMessage.Content = content;
            //            return responseMessage;
            //        }
            //    }
            //}

            //#endregion

            //#region 微信上墙
            //WeiXCommFun wxFun = new WeiXCommFun();
            ////查询微信上墙的活动,只取一条
            //BLL.wx_sq_act actBll = new BLL.wx_sq_act();
            //Model.wx_sq_act act = actBll.GetModel(apiid, DateTime.Now);
            //if (act != null)
            //{
            //    //查询是否在黑名单里
            //    BLL.wx_sq_heimd hBll = new BLL.wx_sq_heimd();
            //    bool isExist = hBll.Exists(requestMessage.FromUserName, act.id);
            //    if (isExist)
            //    {
            //        //存在黑名单里
            //        return wxFun.GetResponseMessageTxtByContent(requestMessage, "您在黑名单里,无法上传图片", apiid);
            //    }
            //    else
            //    {
            //        //说明有微信上墙活动
            //        //1 将图片的地址保存到数据库
            //        BLL.wx_sq_piclist pBll = new BLL.wx_sq_piclist();
            //        Model.wx_sq_piclist pic = new Model.wx_sq_piclist();
            //        pic.openid = requestMessage.FromUserName;
            //        pic.aid = act.id;
            //        pic.picUrl = requestMessage.PicUrl;
            //        pic.hasShenghe = false;
            //        pic.createDate = DateTime.Now;
            //        int ret = pBll.Add(pic);
            //        //2返回提示语句

            //        if (ret > 0)
            //        {
            //            string content = "";
            //            if (act.shenghe)
            //            {
            //                if (act.shengheTip == null || act.shengheTip.Trim().Length <= 0)
            //                {
            //                    content = "已经成功上传等待审核!<br/><a href=\"" + MyCommFun.getWebSite() + "/weixin/shangqiang/index.aspx?wid=" + apiid + "&aid=" + act.id + "\">查看相册</a>照片id为" + ret;

            //                }
            //                else
            //                {
            //                    content = act.shengheTip;
            //                }

            //            }
            //            else
            //            {
            //                if (act.noshengheTip == null || act.noshengheTip.Trim().Length <= 0)
            //                {
            //                     content = "已经成功上传点击查看<br/><a href=\"" + MyCommFun.getWebSite() + "/weixin/shangqiang/index.aspx?wid=" + apiid + "&aid=" + act.id + "\">查看相册</a>照片id为" + ret;

            //                }
            //                else
            //                {
            //                    content = act.noshengheTip;
            //                }
            //            }
            //            return wxFun.GetResponseMessageTxtByContent(requestMessage, content, apiid);
            //        }
            //        else
            //        {
            //            return wxFun.GetResponseMessageTxtByContent(requestMessage, "图片上传失败,请重新上传", apiid);
            //        }
            //    }

            //}
            //else
            //{
            //    return wxFun.GetResponseMessageTxtByContent(requestMessage, "您刚刚上传了一个图片", apiid);
            //}

            //#endregion

            ////var responseMessage = CreateResponseMessage<ResponseMessageNews>();
            ////responseMessage.Articles.Add(new Article()
            ////{
            ////    Title = "您刚才发送了图片信息",
            ////    Description = "您发送的图片将会显示在边上",
            ////    PicUrl = requestMessage.PicUrl,
            ////    Url = requestMessage.PicUrl
            ////});
            ////responseMessage.Articles.Add(new Article()
            ////{
            ////    Title = "第二条",
            ////    Description = "第二条带连接的内容",
            ////    PicUrl = requestMessage.PicUrl,
            ////    Url = "http://m.uweixin.cn"
            ////});
            ////return responseMessage;
            ///

            return null;
        }