JAVA微信公众号网页开发——将接收的消息转发到微信自带的客服系统
如果公众号处于开发模式,普通微信用户向公众号发消息时,微信服务器会先将消息POST到开发者填写的url上,无法直接推送给微信自带的客服功能。如果需要把用户推送的普通消息推送到客服功能中,就需要进行代码修改。
代码:
public void customer(HttpServletResponse response) { //获取方式参考:https://www.cnblogs.com/pxblog/p/10542583.html 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); }
-----------------------有任何问题可以在评论区评论,也可以私信我,我看到的话会进行回复,欢迎大家指教------------------------
(蓝奏云官网有些地址失效了,需要把请求地址lanzous改成lanzoux才可以)
分类:
JAVA
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· 没有源码,如何修改代码逻辑?
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 记一次.NET内存居高不下排查解决与启示
· DeepSeek 开源周回顾「GitHub 热点速览」
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了