• 三、接收并响应微信用户


    当微信用户发送信息或事件方式发送过来时,即为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;
    }
  • 相关阅读:
    JavaScript的学习----2.操作BOM对象
    Maven的配置和Eclipse中导入SpringBoot项目一些注意点
    JavaScript学习----1.基础篇
    线程池的学习
    CSS的初步学习
    类的加载细节探索
    反射与注解
    数据结构第二章
    数据结构第一章
    用结构和STL常用算法实现对学生成绩的排序和查找(vector)
  • 原文地址:https://www.cnblogs.com/genesis/p/5519338.html
Copyright © 2020-2023  润新知