zoukankan      html  css  js  c++  java
  • 三、接收并响应微信用户

    当微信用户发送信息或事件方式发送过来时,即为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;
    }
  • 相关阅读:
    Linux内核的整体框架
    Unix环境高级编程_文件和目录
    Unix环境高级编程_文件I/O
    u-boot启动的第二阶段
    linux基础之vi编辑器设置文件模板
    ARM linux开发之安装配置tftp
    STM32笔试题笔记
    linux基础之find命令常用用法
    ARM linux开发之根文件系统
    ARM linux开发之linux内核启动简介
  • 原文地址:https://www.cnblogs.com/genesis/p/5519338.html
Copyright © 2011-2022 走看看