public ActionResult WechatServiceSendMessage(List <NewsInfoView> newsList, bool isPreview = false)
        {
            SysWechatConfig wechat = WeChatCommonService.lstSysWeChatConfig.Find(p => p.AccountManageId == AccountManageID && !p.IsCorp.Value);

            if (wechat == null)
            {
                return(Json(new { results = new { Data = 500 } }));
            }
            try
            {
                NewsInfoView news = newsList[0];
                if ("video".Equals(news.NewsCate))
                {
                    news.ImageContent = SaveBase64ImageToServer(news.ImageContent);
                }
                string           strSendType     = string.Empty;
                SearchUserMPView searchCondition = new SearchUserMPView
                {
                    Group    = news.Group,
                    Province = news.Province,
                    City     = news.City,
                    Sex      = news.Sex
                };
                using (var transactionScope = new TransactionScope(TransactionScopeOption.Suppress, new TransactionOptions {
                    IsolationLevel = IsolationLevel.RepeatableRead
                }))
                {
                    SendResult       returnResult = null;
                    List <NewsModel> articles     = new List <NewsModel>();
                    var lstArticles = GetArticleList(newsList, isPreview, strSendType, searchCondition);
                    if (!isPreview && news.PostType == (int)MessagePostTypeEnum.定时推送)
                    {
                        transactionScope.Complete();
                    }
                    else
                    {
                        string[] openids = null;

                        if (isPreview)
                        {
                            openids = news.SendToPerson;
                        }
                        //发送消息
                        returnResult = WechatCommonMP.SendMsgMP(lstArticles, searchCondition, openids);
                        if (returnResult.errcode == Weixin.ReturnCode.请求成功)
                        {
                            transactionScope.Complete();
                        }
                    }
                }
            }
            catch (Exception e)
            {
                _Logger.Error(e, "An error occurred while sending mp news.");
                // _Logger.Error(e.ToString());
                return(Json(new { results = new { Data = 500 } }));
            }
            return(Json(new { results = new { Data = 200 } }));
        }
        public ActionResult PostQuickResponse(string openId, List <NewsInfoView> newsList)
        {
            try
            {
                var news = newsList[0];
                if ("video".Equals(news.NewsCate))
                {
                    news.ImageContent = SaveBase64ImageToServer(news.ImageContent);
                }
                SysWechatConfig wechat = WeChatCommonService.lstSysWeChatConfig.Find(p => p.Id == news.AppId && !p.IsCorp.Value);
                if (wechat == null)
                {
                    return(Json(new { results = new { Data = 500 } }));
                }
                ResponseMessageBase response = null;

                var lstArticles = GetArticleList(newsList, false, news.NewsCate, null, false);

                //发送消息
                WechatCommonMP.SendMsg(news.NewsCate, "", lstArticles, "", new string[] { openId }, null, true);

                switch (news.NewsCate)
                {
                case "text":
                    response = new ResponseMessageText()
                    {
                        Content = news.NewsContent
                    };
                    //returnResult = CustomApi.SendText(wechat.WeixinAppId, wechat.WeixinCorpSecret, openId, news.NewsContent);
                    break;

                case "news":
                    //var lstArticles = GetArticleList(newsList, false);
                    //List<NewsModel> articles = new List<NewsModel>();
                    //string host = CommonService.GetSysConfig("Content Server", "");
                    //if (host.EndsWith("/"))
                    //{
                    //    host = host.Substring(0, host.Length - 1);
                    //}
                    //for (int i = 0; i < lstArticles.Count; i++)
                    //{
                    //    var item = lstArticles[i];
                    //    var filePath = Server.MapPath("~/") + item.ImageCoverUrl.Insert(item.ImageCoverUrl.LastIndexOf('.'), "_T");
                    //    if (0 == i)
                    //    {
                    //        filePath = filePath.Replace("_T", "_B");
                    //    }
                    //    var ret0 = Innocellence.Weixin.MP.AdvancedAPIs.MediaApi.UploadTemporaryMedia(wechat.WeixinAppId, wechat.WeixinCorpSecret, Weixin.MP.UploadMediaFileType.thumb, filePath);
                    //    var picUrl = (host + item.ImageCoverUrl).Replace("\\", "/");
                    //    var url = string.Format("{0}/MPNews/ArticleInfo/WxDetail/{1}?wechatid={2}&isPreview={3}", host, item.Id, item.AppId, false);

                    //    articles.Add(new NewsModel() { title = item.ArticleTitle, content = WechatCommonMP.ImageConvert(item.ArticleContent, wechat.Id), thumb_url = picUrl, thumb_media_id = ret0.thumb_media_id, content_source_url = url });
                    //}
                    //var ret = Innocellence.Weixin.MP.AdvancedAPIs.MediaApi.UploadTemporaryNews(wechat.WeixinAppId, wechat.WeixinCorpSecret, 10000, articles.ToArray());
                    //returnResult = CustomApi.SendMpNews(wechat.WeixinAppId, wechat.WeixinCorpSecret, openId, ret.media_id);
                    string _newsHost = Infrastructure.Web.Domain.Service.CommonService.GetSysConfig("WeChatUrl", "");
                    response = new ResponseMessageNews()
                    {
                        Articles = lstArticles.Select(a => new Article()
                        {
                            Title       = a.ArticleTitle,
                            Url         = string.Format("{0}/{3}/ArticleInfo/wxdetail/{1}?wechatid={2}&isAutoReply={4}", _newsHost, a.Id, news.AppId, "mpnews", 0),// _newsHost + "/News/ArticleInfo/wxdetail/" + a.Id + "?wechatid=" + appId,
                            PicUrl      = _newsHost + a.ImageCoverUrl,
                            Description = a.ArticleComment
                        }).ToList()
                    };
                    break;

                case "image":
                    //WechatCommon.GetMediaInfo(AutoReplyContentEnum.IMAGE, news, news.AppId);
                    //returnResult = CustomApi.SendImage(wechat.WeixinAppId, wechat.WeixinCorpSecret, openId, news.MediaId);
                    response = new ResponseMessageImage()
                    {
                        Image = new Weixin.Entities.Image()
                        {
                            MediaId = news.MediaId
                        }
                    };
                    break;

                case "video":
                    //WechatCommon.GetMediaInfo(AutoReplyContentEnum.VIDEO, news, news.AppId);
                    ////var ret1 = Innocellence.Weixin.MP.AdvancedAPIs.GroupMessageApi.GetOpenIdVideoMediaIdResult(wechat.WeixinAppId, wechat.WeixinCorpSecret, news.MediaId, news.NewsTitle, news.NewsComment);
                    ////news.MediaId = ret1.media_id;
                    ////news.MediaCreateTime = ret1.created_at;
                    //returnResult = CustomApi.SendVideo(wechat.WeixinAppId, wechat.WeixinCorpSecret, openId, news.MediaId, news.NewsTitle, news.NewsComment);
                    response = new ResponseMessageVideo()
                    {
                        Video = new Video()
                        {
                            MediaId = news.MediaId
                        }
                    };
                    break;

                case "voice":
                    //WechatCommon.GetMediaInfo(AutoReplyContentEnum.VOICE, news, news.AppId);
                    //returnResult = CustomApi.SendVoice(wechat.WeixinAppId, wechat.WeixinCorpSecret, openId, news.MediaId);
                    response = new ResponseMessageVoice()
                    {
                        Voice = new Voice()
                        {
                            MediaId = news.MediaId
                        }
                    };
                    break;

                default:
                    throw new Exception("Invalid media type.");
                }
                //var user = _WechatMPUserService.GetUserByOpenId(openId);
                response.ToUserName = openId;
                var task = _WeChatUserRequestMessageLogHandler.WriteResponseLogMP(new List <Innocellence.Weixin.Entities.IResponseMessageBase> {
                    response
                }, news.AppId.ToString(), false);
                return(Json(new { results = new { Data = 200, Object = task.Result } }));
            }
            catch (Exception e)
            {
                _Logger.Error(e, "An error occurred while PostQuickResponse.");
                return(Json(new { results = new { Data = 500, Message = e.Message } }));
            }
        }