• JAVA微信公众号网页开发——将接收的消息转发到微信自带的客服系统


    如果公众号处于开发模式,普通微信用户向公众号发消息时,微信服务器会先将消息POST到开发者填写的url上,无法直接推送给微信自带的客服功能。如果需要把用户推送的普通消息推送到客服功能中,就需要进行代码修改。

    官方文档:https://developers.weixin.qq.com/doc/offiaccount/Customer_Service/Forwarding_of_messages_to_service_center.html

    代码:

     public void customer(HttpServletResponse response) {
            String msgType = "获取推送消息中的MsgType数据";
            /**
             * 判断微信推送的消息中的MsgType是否是event类型
             * 不是event类型的,我们进行转发,因为只需要针对微信用户发来的消息才进行转发,而对于其他任何事件(比如菜单点击、地理位置上报等)都不应该转接,否则客服在客服系统上就会看到一些无意义的消息了。
             * fromUsername 为推送消息的fromUsername
             * toUsername 为推送消息的toUsername
             */
            String time = System.currentTimeMillis()+"";
            if (!"event".equalsIgnoreCase(msgType)) {
                String textTpl=customerText(fromUsername, toUsername, time);
                send(textTpl, response);
            }
    
    
        }
    
        /**
         * 封装发送xml
         * @param fromUsername
         * @param toUsername
         * @param time
         * @return
         */
        private String customerText(String fromUsername,String toUsername,String time){
            String textTpls = "<xml>"+
                    "<ToUserName><![CDATA["+fromUsername+"]]></ToUserName>"+
                    "<FromUserName><![CDATA["+toUsername+"]]></FromUserName>"+
                    "<CreateTime>"+time+"</CreateTime>"+
                    "<MsgType><![CDATA[transfer_customer_service]]></MsgType>"+
                    "</xml>";
    
            return textTpls;
        }
    
        private void send(String textTpl,HttpServletResponse response) throws IOException {
            String type="text/xml;charset=UTF-8";
            response.setContentType(type);
            response.setHeader("Pragma", "No-cache");
            response.setHeader("Cache-Control", "no-cache");
            response.setDateHeader("Expires", 0);
            response.getWriter().write(textTpl);
        }
    

      

  • 相关阅读:
    ES6解构之复杂数据
    QQ音乐API-借他人之力实现我的音乐盒
    canvas 简易的加载进度条
    File System 之本地文件系统
    File System 定额(配额查询)
    window.btoa 和 window.atob
    Web App、Hybrid App与Native App
    函数节流和函数防抖
    javascript瀑布流
    protobuf的使用(netty传输多种对象类型)
  • 原文地址:https://www.cnblogs.com/pxblog/p/12610036.html
Copyright © 2020-2023  润新知