public IActionResult AddTextReplyRule() { WeixinRequestRule model = new WeixinRequestRule(); Core.Admin.WriteLogActions("查看添加自定义回复规则;"); return(View(model)); }
public IActionResult EditClickReplyRule() { WeixinRequestRule ruleModel = WeixinRequestRule.Find(WeixinRequestRule._.RequestType == (int)WeixinRequestRule.XRequestType.CustomMenu);//获取规则 if (ruleModel == null) { return(EchoTipPage("系统找不到本记录!")); } switch (ruleModel.ResponseType) { case 0: //文本 ViewBag.txtContent = ruleModel.ListContent[0].Content; break; case 1: //多图 break; case 2: //语音 ViewBag.txtSoundTitle = ruleModel.ListContent[0].Title; ViewBag.txtSoundUrl = ruleModel.ListContent[0].MediaURL; ViewBag.txtSoundContent = ruleModel.ListContent[0].Content; break; case 8: //单图 ViewBag.txtSingleImage = ruleModel.ListContent[0].ImgURL; break; } Core.Admin.WriteLogActions($"查看点击菜单事件回复规则;"); return(View(ruleModel)); }
public ActionResult GetClickReplyRuleList(string keyword, int page = 1, int limit = 20) { int numPerPage, currentPage, startRowIndex; numPerPage = limit; currentPage = page; startRowIndex = (currentPage - 1) * numPerPage; Expression ex = WeixinRequestRule._.RequestType == (int)WeixinRequestRule.XRequestType.CustomMenu;//点击自定义菜单 if (!string.IsNullOrWhiteSpace(keyword)) { if (Utils.IsInt(keyword)) { ex &= (WeixinRequestRule._.Id == int.Parse(keyword) | WeixinRequestRule._.Keywords.Contains(keyword)); } else { ex &= WeixinRequestRule._.Keywords.Contains(keyword); } } IList <WeixinRequestRule> list = WeixinRequestRule.FindAll(ex, null, null, startRowIndex, numPerPage); long totalCount = WeixinRequestRule.FindCount(ex, null, null, startRowIndex, numPerPage); Admin.WriteLogActions($"查看公众号点击事件自定义回复规则({page});"); return(Content(JsonConvert.SerializeObject(new { total = totalCount, rows = list }), "text/plain")); }
public IActionResult AddClickReplyRule() { WeixinRequestRule model = new WeixinRequestRule(); model.RequestType = (int)WeixinRequestRule.XRequestType.CustomMenu;//文本请求 Core.Admin.WriteLogActions("查看添加点击菜单事件回复规则;"); return(View(model)); }
public IActionResult DelTextReplyRule(int id) { WeixinRequestRule model = WeixinRequestRule.Find(WeixinRequestRule._.RequestType == (int)WeixinRequestRule.XRequestType.Text & WeixinRequestRule._.Id == id);//获取规则 if (model == null) { tip.Message = "系统找不到本记录"; return(Json(tip)); } Admin.WriteLogActions("删除关键字回复规则(id:" + model.Id + ");"); model.Delete(); tip.Status = JsonTip.SUCCESS; tip.Message = "删除规则成功"; return(Json(tip)); }
public ActionResult NotFindKeywordAutoReply() { WeixinRequestRule ruleModel = WeixinRequestRule.Find(WeixinRequestRule._.RequestType == (int)WeixinRequestRule.XRequestType.NotFindKeyword);//获取规则 if (ruleModel == null) { ruleModel = new WeixinRequestRule(); ruleModel.RequestType = (int)WeixinRequestRule.XRequestType.NotFindKeyword; ruleModel.ResponseType = (int)WeixinRequestRule.XResponseType.Text; ruleModel.RuleName = "未找到关键词自动回复"; ruleModel.IsDefault = 1; ruleModel.Insert(); //增加Response WeixinRequestContent content = new WeixinRequestContent() { RuleId = ruleModel.Id, Content = "未找到关键词自动回复", }; content.Insert(); ruleModel = WeixinRequestRule.Find(WeixinRequestRule._.RequestType == (int)WeixinRequestRule.XRequestType.NotFindKeyword);//重新获取规则 } switch (ruleModel.ResponseType) { case 0: //文本 ViewBag.txtContent = ruleModel.ListContent[0].Content; break; case 1: //多图 break; case 2: //语音 ViewBag.txtSoundTitle = ruleModel.ListContent[0].Title; ViewBag.txtSoundUrl = ruleModel.ListContent[0].MediaURL; ViewBag.txtSoundContent = ruleModel.ListContent[0].Content; break; case 8: //单图 ViewBag.txtSingleImage = ruleModel.ListContent[0].ImgURL; break; } Core.Admin.WriteLogActions("查看公众号未找到关键字自动回复;"); return(View(ruleModel)); }
public IActionResult SubscribeReply() { WeixinRequestRule ruleModel = WeixinRequestRule.Find(WeixinRequestRule._.RequestType == (int)WeixinRequestRule.XRequestType.Flow);//获取规则 if (ruleModel == null) { ruleModel = new WeixinRequestRule(); ruleModel.RequestType = (int)WeixinRequestRule.XRequestType.Flow; ruleModel.ResponseType = (int)WeixinRequestRule.XResponseType.Text; ruleModel.RuleName = "关注自动回复"; ruleModel.IsDefault = 1; ruleModel.Insert(); //增加Response WeixinRequestContent content = new WeixinRequestContent() { RuleId = ruleModel.Id, Content = "关注公众号自动回复文本" }; content.Insert(); } switch (ruleModel.ResponseType) { case 0: //文本 ViewBag.txtContent = ruleModel.ListContent[0].Content; break; case 1: //多图 break; case 2: //语音 ViewBag.txtSoundTitle = ruleModel.ListContent[0].Title; ViewBag.txtSoundUrl = ruleModel.ListContent[0].MediaURL; ViewBag.txtSoundContent = ruleModel.ListContent[0].Content; break; case 8: //单图 ViewBag.txtSingleImage = ruleModel.ListContent[0].ImgURL; break; } Admin.WriteLogActions("查看公众号关注自动回复;"); return(View(ruleModel)); }
public IActionResult EditClickReplyRule(WeixinRequestRule entity) { WeixinRequestRule model = WeixinRequestRule.Find(WeixinRequestRule._.RequestType == (int)WeixinRequestRule.XRequestType.CustomMenu & WeixinRequestRule._.Id == entity.Id);//获取规则 if (model == null) { tip.Message = "系统找不到本记录"; return(Json(tip)); } model.ResponseType = entity.ResponseType; model.Keywords = entity.Keywords; model.IsDefault = 1; int defaultDetailId = int.Parse(Request.Form["hdfTID"]);//默认一条的ID。肯定至少有一条 int responseType = model.ResponseType; IList <WeixinRequestContent> ls = new List <WeixinRequestContent>(); if (responseType == 0) //纯文本 { string txtContent = Request.Form["txtContent"]; if (string.IsNullOrEmpty(txtContent)) { tip.Message = "文本回复,文本不能为空!"; return(Json(tip)); } model.ResponseType = (int)WeixinRequestRule.XResponseType.Text;//回复的类型:文本1,图文2,语音3,视频4,第三方接口5 ls.Add(new WeixinRequestContent { RuleId = model.Id, Content = txtContent.Trim(), Id = defaultDetailId }); } else if (responseType == (int)WeixinRequestRule.XResponseType.Image) //图文 { #region 赋值规则图片 string[] itemIdArr = Request.Form["item_id"]; string[] itemTitleArr = Request.Form["item_title"]; string[] itemContentArr = Request.Form["item_imginfo"]; string[] itemImgUrlArr = Request.Form["item_imgurl"]; string[] itemLinkUrlArr = Request.Form["item_linkurl"]; if (itemIdArr != null && itemTitleArr != null && itemImgUrlArr != null && itemLinkUrlArr != null && itemContentArr != null) { if ((itemIdArr.Length == itemTitleArr.Length) && (itemTitleArr.Length == itemImgUrlArr.Length) && (itemImgUrlArr.Length == itemLinkUrlArr.Length)) { for (int i = 0; i < itemIdArr.Length; i++) { if (!string.IsNullOrEmpty(itemTitleArr[i])) { WeixinRequestContent modelt = new WeixinRequestContent(); modelt.Id = Utils.StrToInt(itemIdArr[i].Trim(), 0); modelt.Title = itemTitleArr[i].Trim(); modelt.Content = itemContentArr[i].Trim(); modelt.ImgURL = itemImgUrlArr[i].Trim(); modelt.LinkUrl = itemLinkUrlArr[i].Trim(); modelt.RuleId = model.Id; ls.Add(modelt); } } //model.contents = ls; } } #endregion if (ls == null || ls.Count < 1) { tip.Message = "图文列表,图文项目不能为空!"; return(Json(tip)); } } else if (responseType == (int)WeixinRequestRule.XResponseType.Video) //语音 { string txtSoundTitle = Request.Form["txtSoundTitle"]; if (string.IsNullOrEmpty(txtSoundTitle)) { tip.Message = "语音回复,语音标题不能为空!"; return(Json(tip)); } string txtSoundUrl = Request.Form["txtSoundUrl"]; if (string.IsNullOrEmpty(txtSoundUrl)) { tip.Message = "语音回复,语音地址不能为空!"; return(Json(tip)); } string txtSoundContent = Request.Form["txtSoundContent"]; ls.Add(new WeixinRequestContent { RuleId = model.Id, MediaURL = txtSoundUrl.Trim(), Title = txtSoundTitle, Id = defaultDetailId, Content = txtSoundContent }); } else if (responseType == (int)WeixinRequestRule.XResponseType.SingleImage) //单图片 { string txtSingleImage = Request.Form["txtSingleImage"]; if (string.IsNullOrEmpty(txtSingleImage)) { tip.Message = "单图片回复,图片地址不能为空!"; return(Json(tip)); } ls.Add(new WeixinRequestContent { RuleId = model.Id, ImgURL = txtSingleImage.Trim(), Id = defaultDetailId }); } model.Save(); IList <WeixinRequestContent> oldwc = model.ListContent; if (oldwc != null && oldwc.Count > 0) { foreach (WeixinRequestContent p in ls) { if (oldwc.Find(s => s.Id == p.Id) != null) { oldwc.Remove(oldwc.Find(s => s.Id == p.Id)); } } if (oldwc != null && oldwc.Count > 0) { oldwc.Delete(); } } if (ls != null && ls.Count > 0) { foreach (var item in ls) { item.RuleId = model.Id; } } ls.Save(); tip.Message = "修改点击自定义菜单事件自动回复成功!"; tip.Status = JsonTip.SUCCESS; tip.ReturnUrl = "close"; Admin.WriteLogActions("修改点击自定义菜单事件自动回复;"); return(Json(tip)); }
public IActionResult AddTextReplyRule(WeixinRequestRule model) { model.IsDefault = 1; int responseType = model.ResponseType; model.RequestType = (int)WeixinRequestRule.XRequestType.Text;//文本请求 IList <WeixinRequestContent> ls = new List <WeixinRequestContent>(); if (responseType == 0) //纯文本 { string txtContent = Request.Form["txtContent"]; if (string.IsNullOrEmpty(txtContent)) { tip.Message = "文本回复,文本不能为空!"; return(Json(tip)); } model.ResponseType = (int)WeixinRequestRule.XResponseType.Text;//回复的类型:文本1,图文2,语音3,视频4,第三方接口5 ls.Add(new WeixinRequestContent { RuleId = model.Id, Content = txtContent.Trim() }); } else if (responseType == (int)WeixinRequestRule.XResponseType.Image) //图文 { #region 赋值规则图片 string[] itemIdArr = Request.Form["item_id"]; string[] itemTitleArr = Request.Form["item_title"]; string[] itemContentArr = Request.Form["item_imginfo"]; string[] itemImgUrlArr = Request.Form["item_imgurl"]; string[] itemLinkUrlArr = Request.Form["item_linkurl"]; if (itemIdArr != null && itemTitleArr != null && itemImgUrlArr != null && itemLinkUrlArr != null && itemContentArr != null) { if ((itemIdArr.Length == itemTitleArr.Length) && (itemTitleArr.Length == itemImgUrlArr.Length) && (itemImgUrlArr.Length == itemLinkUrlArr.Length)) { for (int i = 0; i < itemIdArr.Length; i++) { if (!string.IsNullOrEmpty(itemTitleArr[i])) { WeixinRequestContent modelt = new WeixinRequestContent(); modelt.Id = Utils.StrToInt(itemIdArr[i].Trim(), 0); modelt.Title = itemTitleArr[i].Trim(); modelt.Content = itemContentArr[i].Trim(); modelt.ImgURL = itemImgUrlArr[i].Trim(); modelt.LinkUrl = itemLinkUrlArr[i].Trim(); modelt.RuleId = model.Id; ls.Add(modelt); } } //model.contents = ls; } } #endregion if (ls == null || ls.Count < 1) { tip.Message = "图文列表,图文项目不能为空!"; return(Json(tip)); } } else if (responseType == (int)WeixinRequestRule.XResponseType.Video) //语音 { string txtSoundTitle = Request.Form["txtSoundTitle"]; if (string.IsNullOrEmpty(txtSoundTitle)) { tip.Message = "语音回复,语音标题不能为空!"; return(Json(tip)); } string txtSoundUrl = Request.Form["txtSoundUrl"]; if (string.IsNullOrEmpty(txtSoundUrl)) { tip.Message = "语音回复,语音地址不能为空!"; return(Json(tip)); } string txtSoundContent = Request.Form["txtSoundContent"]; ls.Add(new WeixinRequestContent { RuleId = model.Id, MediaURL = txtSoundUrl.Trim(), Title = txtSoundTitle, Content = txtSoundContent }); } else if (responseType == (int)WeixinRequestRule.XResponseType.SingleImage) //单图片 { string txtSingleImage = Request.Form["txtSingleImage"]; if (string.IsNullOrEmpty(txtSingleImage)) { tip.Message = "单图片回复,图片地址不能为空!"; return(Json(tip)); } ls.Add(new WeixinRequestContent { RuleId = model.Id, ImgURL = txtSingleImage.Trim() }); } model.Insert(); IList <WeixinRequestContent> oldwc = model.ListContent; if (oldwc != null && oldwc.Count > 0) { foreach (WeixinRequestContent p in ls) { if (oldwc.Find(s => s.Id == p.Id) != null) { oldwc.Remove(oldwc.Find(s => s.Id == p.Id)); } } if (oldwc != null && oldwc.Count > 0) { oldwc.Delete(); } } if (ls != null && ls.Count > 0) { foreach (var item in ls) { item.RuleId = model.Id; } } ls.Save(); tip.Message = "添加文本关键字回复规则成功!"; tip.Status = JsonTip.SUCCESS; tip.ReturnUrl = "close"; Core.Admin.WriteLogActions("添加文本关键字回复规则;"); return(Json(tip)); }
/// <summary> /// 定阅事件的统一处理 /// </summary> public IResponseMessageBase EventSubscribe(int type, RequestMessageEventBase requestMessage) { int accountId = GetAccountId(); //取得公众账户ID string EventName = ""; if (requestMessage.Event.ToString().Trim() != "") { EventName = requestMessage.Event.ToString(); } //else if (requestMessage.EventKey != null) //{ // EventName += requestMessage.EventKey.ToString(); //} if (!ExistsOriginalId(accountId, requestMessage.ToUserName)) { //验证接收方是否为我们系统配置的帐号,即验证微帐号与微信原始帐号id是否一致,如果不一致,说明【1】配置错误,【2】数据来源有问题 //new BLL.weixin_response_content().Add(accountId, requestMessage.FromUserName, requestMessage.MsgType.ToString(), EventName, "none", "未取到关键词对应的数据", requestMessage.ToUserName); WeixinResponseContent entity = new WeixinResponseContent() { OpenId = requestMessage.FromUserName, RequestType = requestMessage.MsgType.ToString(), RequestContent = EventName, ResponseType = "none", ReponseContent = "未取到关键词对应的数据", XmlContent = requestMessage.ToUserName }; entity.Insert(); return(GetResponseMessageTxtByContent(requestMessage, "验证微帐号与微信原始帐号id不一致,可能原因【1】系统配置错误,【2】非法的数据来源", accountId)); } int responseType = 0, ruleId = 0; //int ruleId = new BLL.weixin_request_rule().GetRuleIdAndResponseType(accountId, "request_type=" + type, out responseType); WeixinRequestRule rule = WeixinRequestRule.Find(WeixinRequestRule._.RequestType == type); if (rule != null) { responseType = rule.ResponseType; ruleId = rule.Id; } if (ruleId <= 0) { //new BLL.weixin_response_content().Add(accountId, requestMessage.FromUserName, requestMessage.MsgType.ToString(), EventName, "none", "未取到关键词对应的数据", requestMessage.ToUserName); WeixinResponseContent entity = new WeixinResponseContent() { OpenId = requestMessage.FromUserName, RequestType = requestMessage.MsgType.ToString(), RequestContent = EventName, ResponseType = "none", ReponseContent = "未取到关键词对应的数据", XmlContent = requestMessage.ToUserName }; entity.Insert(); return(null); } IResponseMessageBase reponseMessage = null; switch (responseType) { case (int)WeixinRequestRule.XResponseType.Text: //发送纯文字 reponseMessage = GetResponseMessageTxt(requestMessage, rule.Id, accountId); break; case (int)WeixinRequestRule.XResponseType.Image: //发送多图文 reponseMessage = GetResponseMessageNews(requestMessage, rule.Id, accountId); break; case (int)WeixinRequestRule.XResponseType.Voice: //发送语音 reponseMessage = GetResponseMessageeMusic(requestMessage, rule.Id, accountId); break; case (int)WeixinRequestRule.XResponseType.SingleImage: reponseMessage = GetResponseMessageSingleImage(requestMessage, rule.Id, accountId); break; default: break; } return(reponseMessage); }