/// <summary> /// 首次关注发送的消息 /// </summary> /// <param name="customer"></param> private void SendMessageToUserFirstSub(Customer customer) { var model = new WeChatMessageModel(); model.msgtype = "news"; model.touser = customer.OpenId; model.news.articles.Add(new WeChatMessageModel.ArticlesItem { title = "同学你好,初次见面请收下见面礼", url = "http://www.bb-girl.cn/Customer/CouponList", picurl = "http://www.bb-girl.cn/images/hb.png", description = "礼轻情意重,赶紧用了吧。" }); var appId = _settingService.GetSettingByKey <string>(WeChatSettingNames.AppId); var appSecret = _settingService.GetSettingByKey <string>(WeChatSettingNames.AppSecret); string msgUrl = "https://api.weixin.qq.com/cgi-bin/message/custom/send?access_token={0}"; var token = GetAccessToken(appId, appSecret); string url = string.Format(msgUrl, token.access_token); HttpWebResponseUtility client = new HttpWebResponseUtility(); var msg = Newtonsoft.Json.JsonConvert.SerializeObject(model); client.CreatePostHttpResponse(url: url, data: msg); }
/// <summary> /// 相应消息 /// </summary> /// <param name="model"></param> /// <returns></returns> public string ResponseMessage(WeChatMessageModel model) { var result = string.Empty; switch (model.MsgType) { case "text": //文本回复 result = ResponseText(model.FromUserName, model.ToUserName, string.Format("收到文本:{0}", model.Content)); break; case "image": //图片回复 result = ResponseText(model.FromUserName, model.ToUserName, string.Format("收到图片:{0}", model.PicUrl)); break; case "voice": //语音回复 result = ResponseText(model.FromUserName, model.ToUserName, "收到语音"); break; case "video": //视频回复 result = ResponseText(model.FromUserName, model.ToUserName, "收到视频"); break; case "music": //音乐回复 result = ResponseText(model.FromUserName, model.ToUserName, "收到音乐"); break; case "news": //图文回复 result = ResponseText(model.FromUserName, model.ToUserName, "收到图文"); break; case "link": //链接回复 result = ResponseText(model.FromUserName, model.ToUserName, string.Format("收到:{0}", model.Title)); break; case "location": //地理位置回复 result = ResponseText(model.FromUserName, model.ToUserName, string.Format("收到地理位置:{0}", model.Label)); break; case "event": switch (model.Event) { case "subscribe": result = ResponseText(model.FromUserName, model.ToUserName, "欢迎关注测试公众号"); break; case "SCAN": break; } break; default: //默认回复 result = ResponseText(model.FromUserName, model.ToUserName, "未能解析出你要回复的值"); break; } return(result); }
/// <summary> /// 请求消息 /// </summary> /// <param name="message"></param> /// <returns></returns> public WeChatMessageModel RequestMessage(string message) { var model = new WeChatMessageModel(); if (string.IsNullOrEmpty(message)) { return(null); } var requestDocXml = new XmlDocument(); requestDocXml.LoadXml(message); var rootElement = requestDocXml.DocumentElement; if (rootElement != null) { var toUserNameNode = rootElement.SelectSingleNode("ToUserName"); if (toUserNameNode != null) { model.ToUserName = toUserNameNode.InnerText; } var fromUserNameNode = rootElement.SelectSingleNode("FromUserName"); if (fromUserNameNode != null) { model.FromUserName = fromUserNameNode.InnerText; } var createTimeNode = rootElement.SelectSingleNode("CreateTime"); if (createTimeNode != null) { model.CreateTime = createTimeNode.InnerText; } var mediaIdNode = rootElement.SelectSingleNode("MediaId"); if (mediaIdNode != null) { model.MediaId = mediaIdNode.InnerText; } var msgTypeNode = rootElement.SelectSingleNode("MsgType"); if (msgTypeNode != null) { model.MsgType = msgTypeNode.InnerText; } switch (model.MsgType) { case "text": //文本 var contentNode = rootElement.SelectSingleNode("Content"); if (contentNode != null) { model.Content = contentNode.InnerText; } break; case "image": //图片 var picUrlNode = rootElement.SelectSingleNode("PicUrl"); if (picUrlNode != null) { model.PicUrl = picUrlNode.InnerText; } break; case "voice": //语音 var formatNode = rootElement.SelectSingleNode("Format"); if (formatNode != null) { model.Format = formatNode.InnerText; } break; case "location": //地理位置 var locationXNode = rootElement.SelectSingleNode("Location_X"); if (locationXNode != null) { model.Location_X = locationXNode.InnerText; } var locationYNode = rootElement.SelectSingleNode("Location_Y"); if (locationYNode != null) { model.Location_X = locationYNode.InnerText; } var scaleNode = rootElement.SelectSingleNode("Scale"); if (scaleNode != null) { model.Scale = scaleNode.InnerText; } var labelNode = rootElement.SelectSingleNode("Label"); if (labelNode != null) { model.Label = labelNode.InnerText; } break; case "link": //链接 var titleNode = rootElement.SelectSingleNode("Title"); if (titleNode != null) { model.Title = titleNode.InnerText; } var descriptionNode = rootElement.SelectSingleNode("Description"); if (descriptionNode != null) { model.Description = descriptionNode.InnerText; } var urlNode = rootElement.SelectSingleNode("Url"); if (urlNode != null) { model.Url = urlNode.InnerText; } break; case "event": //事件 var xmlNode1 = rootElement.SelectSingleNode("Event"); if (xmlNode1 != null) { model.Event = xmlNode1.InnerText; } if (model.Event != "TEMPLATESENDJOBFINISH") //关注类型 { var node1 = rootElement.SelectSingleNode("EventKey"); if (node1 != null) { model.EventKey = node1.InnerText; } } break; } } return(model); }
public static WeChatMessage ToEntity(this WeChatMessageModel model, WeChatMessage destination, IObjectMapper ObjectMapper) { return(model.MapTo(destination, ObjectMapper)); }