Exemplo n.º 1
0
        /// <summary>
        /// 推送纯文字
        /// </summary>
        public IResponseMessageBase GetResponseMessageTxt(RequestMessageText requestMessage, int ruleId, int accountId)
        {
            var    responseMessage = ResponseMessageBase.CreateFromRequestMessage <ResponseMessageText>(requestMessage);
            string openid          = requestMessage.FromUserName;
            string token           = ConvertDateTimeInt(DateTime.Now).ToString();
            //responseMessage.Content = new BLL.weixin_request_content().GetContent(ruleId);
            WeixinRequestContent ctx = WeixinRequestContent.Find(WeixinRequestContent._.RuleId == ruleId);

            if (ctx != null)
            {
                responseMessage.Content = ctx.Content;
                WeixinResponseContent entity = new WeixinResponseContent()
                {
                    OpenId         = requestMessage.FromUserName,
                    RequestType    = requestMessage.MsgType.ToString(),
                    RequestContent = requestMessage.Content,
                    ResponseType   = "text",
                    ReponseContent = responseMessage.Content,
                    XmlContent     = requestMessage.ToUserName
                };
                entity.Insert();
            }
            //new BLL.weixin_response_content().Add(accountId, requestMessage.FromUserName, requestMessage.MsgType.ToString(), requestMessage.Content, "text", responseMessage.Content, requestMessage.ToUserName);
            return(responseMessage);
        }
Exemplo n.º 2
0
        /// <summary>
        /// 处理语音请求
        /// </summary>
        public IResponseMessageBase GetResponseMessageeMusic(RequestMessageEventBase requestMessage, int ruleId, int accountId)
        {
            var    responseMessage = ResponseMessageBase.CreateFromRequestMessage <ResponseMessageMusic>(requestMessage);
            string EventName       = "";

            if (requestMessage.Event.ToString().Trim() != "")
            {
                EventName = requestMessage.Event.ToString();
            }
            //else if (requestMessage.EventKey != null)
            //{
            //    EventName += requestMessage.EventKey.ToString();
            //}

            //Model.weixin_request_content model = new BLL.weixin_request_content().GetModel(ruleId);
            WeixinRequestContent model = WeixinRequestContent.Find(WeixinRequestContent._.RuleId == ruleId);

            if (model == null)
            {
                //new BLL.weixin_response_content().Add(accountId, requestMessage.FromUserName, requestMessage.MsgType.ToString(), EventName, "music", "-1", requestMessage.ToUserName);
                WeixinResponseContent entity = new WeixinResponseContent()
                {
                    OpenId         = requestMessage.FromUserName,
                    RequestType    = requestMessage.MsgType.ToString(),
                    RequestContent = EventName,
                    ResponseType   = "music",
                    ReponseContent = "-1",
                    XmlContent     = requestMessage.ToUserName
                };
                entity.Insert();
            }
            else
            {
                if (model.MediaURL.Contains("http://"))
                {
                    responseMessage.Music.MusicUrl = model.MediaURL;
                }
                else
                {
                    //因为安装目录是以/开头,所以去掉,以免出现双斜杆
                    responseMessage.Music.MusicUrl = Utils.GetServerUrl() + model.MediaURL;
                }
                responseMessage.Music.Title       = model.Title;
                responseMessage.Music.Description = model.Content;
                //new BLL.weixin_response_content().Add(accountId, requestMessage.FromUserName, requestMessage.MsgType.ToString(), EventName, "music", "音乐链接:" + model.media_url + "|标题:" + model.title + "|描述:" + model.content, requestMessage.ToUserName);
                WeixinResponseContent entity = new WeixinResponseContent()
                {
                    OpenId         = requestMessage.FromUserName,
                    RequestType    = requestMessage.MsgType.ToString(),
                    RequestContent = EventName,
                    ResponseType   = "music",
                    ReponseContent = "音乐链接:" + model.MediaURL + "|标题:" + model.Title + "|描述:" + model.Content,
                    XmlContent     = requestMessage.ToUserName
                };
                entity.Insert();
            }
            return(responseMessage);
        }
Exemplo n.º 3
0
        /// <summary>
        /// 推送单张图片
        /// </summary>
        public IResponseMessageBase GetResponseMessageSingleImagesContent(RequestMessageEventBase requestMessage, int ruleId, int accountId)
        {
            var    responseMessage = ResponseMessageBase.CreateFromRequestMessage <ResponseMessageImage>(requestMessage);
            string EventName       = "";
            var    locationService = new LocationService();

            NewLife.Log.XTrace.WriteLine("相应单图片回复");
            WeixinRequestContent model = WeixinRequestContent.Find(WeixinRequestContent._.RuleId == ruleId);

            if (model == null)
            {
                NewLife.Log.XTrace.WriteLine("没找到单图片回复规则");
                //new BLL.weixin_response_content().Add(accountId, requestMessage.FromUserName, requestMessage.MsgType.ToString(), EventName, "music", "-1", requestMessage.ToUserName);
                WeixinResponseContent entity = new WeixinResponseContent()
                {
                    OpenId         = requestMessage.FromUserName,
                    RequestType    = requestMessage.MsgType.ToString(),
                    RequestContent = EventName,
                    ResponseType   = "image",
                    ReponseContent = "-1",
                    XmlContent     = requestMessage.ToUserName
                };
                entity.Insert();
            }
            else
            {
                if (string.IsNullOrEmpty(model.MediaURL))
                {
                    //如果没有mediaid 则先上传
                    string imgUrl       = "~/wwwroot" + model.ImgURL;
                    var    uploadResult = Senparc.Weixin.MP.AdvancedAPIs.MediaApi.UploadTemporaryMedia(siteConfig.AppId, UploadMediaFileType.image,
                                                                                                       ServerUtility.ContentRootMapPath(imgUrl));
                    model.MediaURL = uploadResult.media_id;
                    model.Update();
                    NewLife.Log.XTrace.WriteLine("上传素材,返回mediaid:" + uploadResult.media_id);
                }
                Image img = new Image();
                img.MediaId = model.MediaURL;
                responseMessage.CreateTime = DateTime.Now;
                responseMessage.Image      = img;

                NewLife.Log.XTrace.WriteLine("回复单图片,mediaid" + img.MediaId + ";回复用户openid:" + responseMessage.FromUserName);

                WeixinResponseContent entity = new WeixinResponseContent()
                {
                    OpenId         = requestMessage.FromUserName,
                    RequestType    = requestMessage.MsgType.ToString(),
                    RequestContent = EventName,
                    ResponseType   = "image",
                    ReponseContent = "图片:" + model.MediaURL + "|标题:" + model.Title,
                    XmlContent     = requestMessage.ToUserName
                };
                entity.Insert();
            }

            return(responseMessage);
        }
Exemplo n.º 4
0
        /// <summary>
        /// 推送纯文字
        /// </summary>
        public IResponseMessageBase GetResponseMessageTxt(RequestMessageEventBase requestMessage, int ruleId, int accountId)
        {
            var    responseMessage   = ResponseMessageBase.CreateFromRequestMessage <ResponseMessageText>(requestMessage);
            string openid            = requestMessage.FromUserName;
            string token             = ConvertDateTimeInt(DateTime.Now).ToString();
            WeixinRequestContent rct = WeixinRequestContent.Find(WeixinRequestContent._.RuleId == ruleId);

            responseMessage.Content = rct != null ? rct.Content : "";// new BLL.weixin_request_content().GetContent(ruleId);

            NewLife.Log.XTrace.WriteLine("文本自动关注回复:" + ruleId + "||" + responseMessage.Content);

            string EventName = "";

            if (requestMessage.Event.ToString().Trim() != "")
            {
                EventName = requestMessage.Event.ToString();
            }
            //else if (requestMessage.EventKey != null)
            //{
            //    EventName += requestMessage.EventKey.ToString();
            //}

            //new BLL.weixin_response_content().Add(accountId, requestMessage.FromUserName, requestMessage.MsgType.ToString(), EventName, "text", responseMessage.Content, requestMessage.ToUserName);
            WeixinResponseContent entity = new WeixinResponseContent()
            {
                OpenId         = requestMessage.FromUserName,
                RequestType    = requestMessage.MsgType.ToString(),
                RequestContent = EventName,
                ResponseType   = "text",
                ReponseContent = responseMessage.Content,
                XmlContent     = requestMessage.ToUserName
            };

            entity.Insert();

            return(responseMessage);
        }