Пример #1
0
        /// <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);
        }
Пример #2
0
        /// <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);
        }
Пример #3
0
        /// <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);
        }