Exemplo n.º 1
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);
        }