/// <summary> /// 发送客服消息 /// </summary> /// <param name="strMsgType"></param> /// <param name="wechat"></param> /// <param name="strOpenids"></param> /// <param name="obj"></param> /// <param name="strTitle"></param> /// <param name="strComment"></param> /// <returns></returns> private static WxJsonResult SendMsgKF(Weixin.MP.GroupMessageType MsgType, SysWechatConfig wechat, string[] strOpenids, object obj, string strTitle = null, string strComment = null) { WxJsonResult Ret = null; foreach (var openId in strOpenids) { WxJsonResult returnResult = null; switch (MsgType) { case GroupMessageType.text: returnResult = CustomApi.SendText(wechat.WeixinAppId, wechat.WeixinCorpSecret, openId, (string)obj); break; //case GroupMessageType.mpnews: // returnResult = CustomApi.SendNews(wechat.WeixinAppId, wechat.WeixinCorpSecret, openId, (List<Article>)obj); // break; case GroupMessageType.mpnews: returnResult = CustomApi.SendMpNews(wechat.WeixinAppId, wechat.WeixinCorpSecret, openId, (string)obj); break; case GroupMessageType.image: returnResult = CustomApi.SendImage(wechat.WeixinAppId, wechat.WeixinCorpSecret, openId, (string)obj); break; case GroupMessageType.video: returnResult = CustomApi.SendVideo(wechat.WeixinAppId, wechat.WeixinCorpSecret, openId, (string)obj, strTitle, strComment); break; case GroupMessageType.voice: returnResult = CustomApi.SendVoice(wechat.WeixinAppId, wechat.WeixinCorpSecret, openId, (string)obj); break; } if (returnResult.errcode != ReturnCode.请求成功) { Ret = returnResult; } else if (Ret == null) { Ret = returnResult; } } return(Ret); }
/// <summary> /// Click事件接收 /// </summary> /// <param name="requestMessage"></param> /// <returns></returns> public override IResponseMessageBase OnEvent_ClickRequest(RequestMessageEvent_Click requestMessage) { Task.Run(() => { try { string key = requestMessage.EventKey; string openId = requestMessage.FromUserName; var replyItem = MpEventBll.GetByKey(key); if (replyItem != null) { switch (replyItem.ReplyType) { case "text": CustomApi.SendText(BaseClass.AppId, openId, replyItem.ReplyContent); break; case "img": CustomApi.SendImage(BaseClass.AppId, openId, replyItem.ReplyContent); break; case "news": CustomApi.SendMpNews(BaseClass.AppId, openId, replyItem.ReplyContent); break; } } } catch (Exception e) { LogHandler.Error($"错误位置:微信CLIKC事件回复\n请求数据:{JsonConvert.SerializeObject(requestMessage)}\n错误信息:{e.StackTrace}"); } }); var responseMessage = new SuccessResponseMessage(); return(responseMessage); }
/// <summary> /// 处理文字请求 /// </summary> /// <returns></returns> public override Senparc.Weixin.MP.Entities.IResponseMessageBase OnTextRequest(RequestMessageText requestMessage) { Task.Run(() => { try { string openId = requestMessage.FromUserName; string replyMode; LogHandler.Info(JsonConvert.SerializeObject(requestMessage)); var contentList = MsgReplyBll.GetReplyInfo(requestMessage.Content, out replyMode); LogHandler.Info(JsonConvert.SerializeObject(contentList)); LogHandler.Info("replyMode" + replyMode); if (contentList != null && contentList.Count > 0) { if (replyMode == AutoReplyMode.random_one.ToString()) { contentList = new List <mpmsgreplycontent>() { contentList[0] }; } foreach (var replyContent in contentList) { switch (replyContent.ReplyType) { //类型枚举参照 Senparc.Weixin.MP.AutoReplyType 枚举 case "text": CustomApi.SendText(BaseClass.AppId, openId, EConvert.ConvertEmojiHtml(Senparc.Weixin.HttpUtility.RequestUtility.UrlDecode(replyContent.ReplyContent))); break; case "img": CustomApi.SendImage(BaseClass.AppId, openId, replyContent.ReplyContent); break; case "news": CustomApi.SendMpNews(BaseClass.AppId, openId, replyContent.ReplyContent); break; } } } else { var replyItem = MpEventBll.GetByKey("ych_automsg"); if (replyItem != null) { switch (replyItem.ReplyType) { case "text": CustomApi.SendText(BaseClass.AppId, openId, EConvert.ConvertEmojiHtml(Senparc.Weixin.HttpUtility.RequestUtility.UrlDecode(replyItem.ReplyContent))); break; case "img": CustomApi.SendImage(BaseClass.AppId, openId, replyItem.ReplyContent); break; } } } } catch (Exception e) { LogHandler.Error($"错误位置:微信文字请求回复\n请求数据:{JsonConvert.SerializeObject(requestMessage)}\n错误信息:{e.StackTrace}"); } }); //将消息转发到客服 var responseMessage = CreateResponseMessage <ResponseMessageTransfer_Customer_Service>(); return(responseMessage); }