/// <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); } }
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); }
/// <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); }
/// <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)); }
/// <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)); }
/// <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); }
public override IResponseMessageBase OnImageRequest(RequestMessageImage requestMessage) { IResponseMessageBase response = OnImageEvent?.Invoke(this, requestMessage); if (response != null) { return(response); } return(base.OnImageRequest(requestMessage)); }
private Task SaveImageTask(RequestMessageImage requestMessage) { TaskObject taskObject = new TaskObject() { thisObject = this, parameter1 = requestMessage }; Task t = new Task(SaveImage, taskObject); t.Start(); return(t); }
/// <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); }
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); } }
/// <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); }
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); }
/// <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; }
//<?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); }
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); }
/// <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); }
/// <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; } }
/// <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); }
/// <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)); }
/// <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); }
/// <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)); }
/// <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); }
/// <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; } }
/// <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; }
//<?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; }
/// <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; }