• 微信公众号开发(四)


    微信公众号开发

     

     第一章 消息回复

      当用户发送消息给公众号时(或某些特定的用户操作引发的事件推送时),会产生一个POST请求,开发者可以在响应包(Get)中返回特定XML结构,来对该消息进行响应(现支持回复文本、图片、图文、语音、视频、音乐)。严格来说,发送被动响应消息其实并不是一种接口,而是对微信服务器发过来消息的一次回复。

        

    1.回复消息种类:

        1 回复文本消息

        2 回复图片消息

        3 回复语音消息

        4 回复视频消息

        5 回复音乐消息

        6 回复图文消息

    2.回复图文消息体格式:

        

    3.回复图文消息体参数说明:

         

    4.Java后台组装:

      /**
         * 图文消息组装
         * @param toUserName
         * @param fromUserName
         * @return
         */
        public static String initNewsMessage(String toUserName,String fromUserName){
            String message = null;
            List<News> newslist = new ArrayList<News>();//item列表
            NewsMessage newsMessage = new NewsMessage();//图文消息体(整体)
            
            //内层消息体
            News news = new News();
            news.setTitle("xxx信息产业有限公司介绍");
            news.setDescription("xxxx信息产业有限公司成立于2000年创建的专业从事软件开发、软件定制、软件实施的高新技术企业。公司充分发挥高校与企业联合,资金与技术结合的优势,提供成熟的软件产品以及应用软件的研究与开发,提供与行业管理相适应的系统集成、系统维护等服务。历经多年发展,公司已成为一家集技术研发、数据生产、技术咨询、人才培养于一体的高新技术企业。公司拥有一批长期专业从事软件开发、软件定制与实施的专业人才,具有雄厚的技术开发实力,全方位满足政府与企业信息化需求。");
            news.setPicUrl("http://xxxx.tunnel.qydev.com/xxxx/images/weixin/ndxt.jpg");
            news.setUrl("www.xxxx.com");
            //内层消息体
            News news2 = new News();
            news2.setTitle("雨花台介绍");
            news2.setDescription("雨花台风景区又名雨花台风景名胜区,亦简称雨花台。位于南京市中华门外1公里处,面积为153.7公顷,绿地覆盖率达90%以上。以自然山林为依托,以红色旅游为主体,融和自然风光和人文景观为一体的全国独具特色的纪念性风景名胜区。");
            news2.setPicUrl("http://xxxx.tunnel.qydev.com/xxxx/images/weixin/yuhuatai.jpg");
            news2.setUrl("http://baike.baidu.com/link?url=4n9y2aXuiAbVuqI-66XaZEZ92DzhmbexoXQ4YfqpUHiElacJGNyTq5vtf1lzbmwxjCBEh6bub4fYXB_WNFeyyL3_627N3dZJeysSizhPxeGXwfaKwQy5zB8_mxF-ExeatE9xT3EF8MZYvCrWffMy0QlifA9z1CLoQhJP00vt6Pq");
            
            newslist.add(news);//内层消息体放到list中
            newslist.add(news2);//内层消息体放到list中
            
            //设置图文消息体参数
            newsMessage.setToUserName(fromUserName);
            newsMessage.setFromUserName(toUserName);
            newsMessage.setCreateTime(String.valueOf(new Date().getTime()));
            newsMessage.setMsgType(MESSAGE_NEWS);
            newsMessage.setArticles(newslist);
            newsMessage.setArticleCount(newslist.size());
            
            message = newsMessageToXml(newsMessage);//转成xml
            return message;
        }

    5.图文消息转xml

      /**
         * 图片消息转xml
         * @param imageMessage
         * @return
         */
        public static String imageMessageToXml(ImageMessage imageMessage){
            XStream xstream = new XStream();
            xstream.alias("xml", imageMessage.getClass());//将拼装好的xml根节点替换成xml
            return xstream.toXML(imageMessage);
        }

    (下一章:微信公众号-关注推送&自定义推送)

     

  • 相关阅读:
    报错: Property accessor 'Form' on object 'Microsoft.AspNetCore.Http.DefaultHttpRequest' threw the following exception:'Incorrect ContentType: '
    路径查找算法应用之A*算法
    Pattern Tips 之三
    跨境通申报助手V1.0
    Docker 运行Nginx,使用不同的域名绑定转发到不同的 docker 容器端口,并设置跟随docker容器自启动
    Linux Shell 传参
    SQL Server Profiler 常规用法
    HttpClient 常规用法
    文本刷新不换行
    中土批量运维神器《ps1屠龙刀》 pk 西域批量运维圣器《ansible圣火令》
  • 原文地址:https://www.cnblogs.com/hooly/p/8039543.html
Copyright © 2020-2023  润新知