当微信用户发送信息或事件方式发送过来时,即为post请求
一、获取用户发送过来的信息(有文本、图片语音、视频等等)
string data = GetRequestData(); //data即为用户发送过来的信息 /// <summary> /// 获取当前请求的数据包内容 /// </summary> public static string GetRequestData() { using (var stream = HttpContext.Current.Request.InputStream) { using (var reader = new StreamReader(stream, Encoding.UTF8)) { return reader.ReadToEnd(); } } }
二、回复用户信息(有文本、图片语音、视频等等)
string resXml = ResponseMsg(data); //以xml格式回复 /// <summary> /// 回复内容 /// </summary> /// <param name="xmlMsg"></param> /// <returns></returns> public static string ResponseMsg(string data) { TextMsg xmlMsg = new TextMsg(); XElement xml = XElement.Parse(data); string type = xml.Element("MsgType").Value;//发送类型 xmlMsg.FromUserName = xml.Element("FromUserName").Value; //微信用户openId xmlMsg.ToUserName = xml.Element("ToUserName").Value; //公众号 int createTime = GetCreateTime(); string resXml = ""; #region 回复图文消息 if (type == "event") { resXml = "<xml>" + "<ToUserName><![CDATA[" + xmlMsg.FromUserName + "]]></ToUserName>" + "<FromUserName><![CDATA[" + xmlMsg.ToUserName + "]]></FromUserName>" + "<CreateTime>" + createTime + "</CreateTime>" + "<MsgType><![CDATA[news]]></MsgType>" + "<Content><![CDATA[]]></Content>" + "<ArticleCount>1</ArticleCount>" + "<Articles>" + "<item>" + "<Title><![CDATA[天堂纪念网]]></Title>" + "<Description><![CDATA[ 天堂纪念网是由珠海市孝爱科技有限公司投资创办的具有自主知识产权的全球网上祭祀服务平台,天堂纪念网除了为用户提供全面、专业的个性化、高仿真、交互性网上祭祀服务外,还提供了强大的氏族宗祠建设平台、讣告发布平台,并将开通在线族谱编撰管理系统,以及“遗嘱馆”即遗嘱在线保密箱服务等,全方位满足用户的多样化需求。]]></Description>" + "<PicUrl><![CDATA[http://mmbiz.qpic.cn/mmbiz/tSibzYJaJwqGWHAeXJut3Jric61bA92KnwWuPSvN9PEdWITHJaoicUvGVGgM2ibibMSpvicRjYV3StSu2Ukxia0O2hYYg/640?wx_fmt=jpeg&tp=webp&wxfrom=5&wx_lazy=1]]></PicUrl>" + "<Url><![CDATA[http://mp.weixin.qq.com/s?__biz=MjM5NjQ1MjI0MQ==&mid=503078765&idx=1&sn=c561b5372d89d3f069063a28275021a3#rd]]></Url>" + "</item>" + "</Articles>" + "<FuncFlag>0</FuncFlag>" + "</xml>"; } #endregion #region 回复文本 if (type == "text") { resXml = "<xml>" + "<ToUserName><![CDATA[" + xmlMsg.FromUserName + "]]></ToUserName>" + "<FromUserName><![CDATA[" + xmlMsg.ToUserName + "]]></FromUserName>" + "<CreateTime>" + createTime + "</CreateTime>" + "<MsgType><![CDATA[text]]></MsgType>" + "<Content><![CDATA[" + "请登录www.5201000.com了解更多内容" + "]]></Content>" + "</xml>"; } #endregion return resXml; }