zoukankan      html  css  js  c++  java
  • 微信公众号开发(五)

    微信公众号开发

     

     第二章  创建菜单

    1.字定义回复主菜单:

      1.回复文本消息:

        

      2.回复单图文消息:

        

      3.回复多图文消息:

        

      4.回复单图片和回复音频:

        

    2.Java后台处理逻辑:

      /**
         * 后台返回给微信
         */
        @Override
        protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
            req.setCharacterEncoding("UTF-8");
            resp.setCharacterEncoding("UTF-8");
            PrintWriter out = resp.getWriter();//后台返回给微信页面的方法
            
            try {
                Map<String, String> map = MessageUtil.xmlToMap(req);//获取消息到集合中
                //获取参数
                String toUserName = map.get("ToUserName");
                String fromUserName = map.get("FromUserName");
                String msgType = map.get("MsgType");
                String content = map.get("Content");
                
                String message = null;
                //根据msgType判断消息类型
                if(MessageUtil.MESSAGE_EVENT.equals(msgType)){  //事件推送
                    String eventType = map.get("Event");//获取事件推送中的具体事件类型
                    if(MessageUtil.MESSAGE_SUBSCRIBE.equals(eventType)){   //关注
                        message = MessageUtil.initText(toUserName, fromUserName, MessageUtil.menuText());//关注推送
                    }else if(MessageUtil.MESSAGE_CLICK.equals(eventType)){  //click按钮点击回复
                        message = MessageUtil.initNewsMessage(toUserName, fromUserName);
                    }else if(MessageUtil.MESSAGE_VIEW.equals(eventType)){  //view类型按钮
                        String url = map.get("EventKey");//得到url
                        //message = MessageUtil.initText(toUserName, fromUserName, url);//回复一个url
                    }else if(MessageUtil.MESSAGE_SCANCODE.equals(eventType)){  //扫码类型按钮
                        String key = map.get("EventKey");
                        //message = MessageUtil.initText(toUserName, fromUserName, key);//回复一个key值
                    }
                    
                    System.out.println(message);
                    out.print(message);
                }else if(MessageUtil.MESSAGE_LOCATION.equals(msgType)){ //地理位置回复
                    String label = map.get("Label");
                    message = MessageUtil.initText(toUserName, fromUserName, label);//回复一个地理位置
                    
                    System.out.println(message);
                    out.print(message);
                }
            } catch (DocumentException e) {
                e.printStackTrace();
            }finally{
                out.close();
            }
         }

    以上几章基本上涵盖了微信公众号几个常用的模块,都是demo的形式展现出来,实际项目需要的话可以在此基础上修改完善。

    码字不易,还请诸位看官多多赐教啊。。

  • 相关阅读:
    20210805-接口测试实战(持续更新中···)
    2021-07-06:关于自动化测试
    学习记录-更新时间-2021-04-09
    知识点@解决端口被占用的问题
    PS学习笔记
    JS去掉数组中重复的数
    验证码倒计时
    统计数组中出现最多的字母及次数
    验证码倒计时js
    小兔鲜css
  • 原文地址:https://www.cnblogs.com/hooly/p/8039644.html
Copyright © 2011-2022 走看看