/// <summary> /// /// </summary> /// <param name="requestMessage"></param> /// <returns></returns> public IResponseMessageBase GetResponseMessage(RequestMessageEvent_Subscribe requestMessage) { var responseMessage = CustomResponseMessage.TextMessage(requestMessage); responseMessage.Content = GetWelcomeInfo(); return(responseMessage); }
/// <summary> /// /// </summary> /// <param name="requestMessage"></param> /// <returns></returns> public IResponseMessageBase GetResponseMessage(RequestMessageEvent_Click requestMessage) { IResponseMessageBase reponseMessage = null; #region 配置在XML中的回复 dynamic commonResponseMessage = null; var message = WeixinCommon.ResponseList.FirstOrDefault(p => p.EventKey == requestMessage.EventKey); if (message != null) { switch (message.MsgType) { case ResponseMsgType.Text: commonResponseMessage = CustomResponseMessage.TextMessage(requestMessage); commonResponseMessage.Content = ((ResponseMessageText)message.ResponseMessage).Content; break; case ResponseMsgType.Image: commonResponseMessage = CustomResponseMessage.ImageMessage(requestMessage); commonResponseMessage.Image = ((ResponseMessageImage)message.ResponseMessage).Image; break; case ResponseMsgType.Voice: commonResponseMessage = CustomResponseMessage.VoiceMessage(requestMessage); commonResponseMessage.Voice = ((ResponseMessageVoice)message.ResponseMessage).Voice; break; case ResponseMsgType.Video: commonResponseMessage = CustomResponseMessage.VideoMessage(requestMessage); commonResponseMessage.Video = ((ResponseMessageVideo)message.ResponseMessage).Video; break; case ResponseMsgType.Music: commonResponseMessage = CustomResponseMessage.MusicMessage(requestMessage); commonResponseMessage.Music = ((ResponseMessageMusic)message.ResponseMessage).Music; break; case ResponseMsgType.News: commonResponseMessage = CustomResponseMessage.NewsMessage(requestMessage); var list = ((ResponseMessageNews)message.ResponseMessage).Articles; foreach (var item in list) { if (!string.IsNullOrWhiteSpace(item.Url)) { var openID = requestMessage.FromUserName; if (item.Url.Contains("?")) { item.Url = item.Url + "&openID=" + openID; } else { item.Url = item.Url + "?openID=" + openID; } item.Url = item.Url + "&_=" + DateTime.Now.ToString("yyyyMMddHHmmss"); if (!item.Url.StartsWith("http", StringComparison.CurrentCultureIgnoreCase)) { item.Url = WebSiteUrl + item.Url; } } if (!string.IsNullOrWhiteSpace(item.PicUrl)) { if (!item.PicUrl.StartsWith("http", StringComparison.CurrentCultureIgnoreCase)) { item.PicUrl = WebSiteUrl + item.PicUrl; } } } commonResponseMessage.Articles = list; break; } //reponseMessage = commonResponseMessage; } #endregion #region 需要做额外处理,填充下面的方法 switch (requestMessage.EventKey) { case "最新上架": var newcourse = new Course.Services.CourseManager().GetTopCourse(1).FirstOrDefault(); if (newcourse != null) { commonResponseMessage = CustomResponseMessage.NewsMessage(requestMessage); var articles = new List <Article>(); var desc = newcourse.Outline.NoHtml().HtmlDecode(); articles.Add(new Article { Title = newcourse.CourseName, Description = desc.Length > 50 ? desc.Substring(0, 47) + "..." : desc, Url = WebSiteUrl + "/zh-cn/course/weixinlearning/coursedetail?courseid=" + newcourse.CourseId + "&openID=" + requestMessage.FromUserName, PicUrl = newcourse.FrontImageUrl }); commonResponseMessage.Articles = articles; } break; case "绑定精友": var binding = new Services.WeiXinService().GetBindingUserAccount(requestMessage.FromUserName); //if (binding != null) //{ // commonResponseMessage = CustomResponseMessage.NewsMessage(requestMessage); // var articles = new List<Article>(); // articles.Add(new Article // { // Title = "绑定精友", // Description = "恭喜你,你已经绑定过了,无需再次绑定!", // Url = "", // PicUrl = "" // }); // commonResponseMessage.Articles = articles; //} if (binding != null) { var err = CustomResponseMessage.TextMessage(requestMessage); err.Content = string.Format("您已经绑定过了,无需再次绑定!", requestMessage.EventKey); commonResponseMessage = err; } break; } #endregion reponseMessage = commonResponseMessage; #region 未知事件的处理 if (reponseMessage == null) { var errResponseMessage = CustomResponseMessage.TextMessage(requestMessage); errResponseMessage.Content = string.Format("此功能开发中,敬请期待... ", requestMessage.EventKey); reponseMessage = errResponseMessage; } #endregion return(reponseMessage); }