微信多业务 – 消息转发多业务

微信多业务 – 消息转发多业务

         他做了一个微信开发个月,最近推出的微信客户服务能力.由于公司的公众微信号码认证,因此,有一个接口的权限.就在这个整合项目,本文仅适用于微通道的基础上发展.

见微信开发文档

假设公众号处于开发模式,须要在接收到用户发送的消息时,返回一个MsgType为transfer_customer_service的消息。微信server在收到这条消息时。会把这次发送的消息转到多客服系统。

用户被客服接入以后。客服关闭会话曾经。处于会话过程中,用户发送的消息均会被直接转发至客服系统。

上文中提到的消息数据详细举例为:

<xml>
<ToUserName><![CDATA[touser]]></ToUserName>
<FromUserName><![CDATA[fromuser]]></FromUserName>
<CreateTime>1399197672</CreateTime>
<MsgType><![CDATA[transfer_customer_service]]></MsgType>
</xml>
參数 描写叙述
ToUserName 开发人员微信号
FromUserName 发送方帐号(一个OpenID)
CreateTime 消息创建时间的时间戳 (整型)
MsgType transfer_customer_service。表明这是一条多客服消息

文档说得已经非常清楚了,直接上代码

/**
 * 微信多客服操作
 * 
 * @author xuyw
 * @email xyw10000@163.com
 * @date 2014-06-12
 */

1 构造xml发起客服请求,触发客服能够使用自己定义菜单或者keyword

/**
     * 生成消息转发到多客服
     * @param touser
     * @param fromuser
     * @return
     */
	public static String CreateRelayCustomMsg(String touser, String fromuser) {
		StringBuilder relayCustomMsg = new StringBuilder();
		relayCustomMsg.append("<xml>");
		relayCustomMsg.append("<ToUserName><![CDATA["+touser+"]]></ToUserName>");
		relayCustomMsg.append("<FromUserName><![CDATA["+fromuser+"]]></FromUserName>");
		relayCustomMsg.append("<CreateTime>"+new Date().getTime()+"</CreateTime>");
		relayCustomMsg.append("<MsgType><![CDATA[transfer_customer_service]]></MsgType>");
		relayCustomMsg.append("</xml>");
		return relayCustomMsg.toString();
	}

2 为了代码的简单演示将微信上随意操作都运行客服操作,ps实际开发则须要多重推断

public void doPost(HttpServletRequest request, HttpServletResponse response)
			throws ServletException, IOException {
		request.setCharacterEncoding("UTF-8");
		response.setContentType("text/html;charset=utf-8");
		Map<String, String> requestMap = MessageUtil.parseXml(request);

			// 发送方帐号(open_id)
			String fromUserName = requestMap.get("FromUserName");
			// 公众帐号
			String toUserName = requestMap.get("ToUserName");
                        String    message = CustomMsgUtil.CreateRelayCustomMsg(fromUserName,toUserName);
		
		
		PrintWriter out = response.getWriter();
		out.print(message);
		out.close();
	}

public static Map<String, String> parseXml(HttpServletRequest request) throws Exception {
		// 将解析结果存储在HashMap中
		Map<String, String> map = new HashMap<String, String>();

		// 从request中取得输入流
		InputStream inputStream = request.getInputStream();
		// 读取输入流
		SAXReader reader = new SAXReader();
		Document document = reader.read(inputStream);
		// 得到xml根元素
		Element root = document.getRootElement();
		// 得到根元素的全部子节点
		List<Element> elementList = root.elements();

		// 遍历全部子节点
		for (Element e : elementList)
			map.put(e.getName(), e.getText());

		// 释放资源
		inputStream.close();
		inputStream = null;

		return map;
	}

ok 代码编写完了 来看看执行效果吧

先登录多客服系统

微信多业务 - 消息转发多业务

打开微信 点击在线咨询

微信多业务 - 消息转发多业务

多客服就收到一条请求,点击接入

微信多业务 - 消息转发多业务

微信多业务 - 消息转发多业务

微信收到回复

微信多业务 - 消息转发多业务

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/109421.html原文链接:https://javaforall.cn

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)
blank

相关推荐

  • 苹果跳过id教程_苹果手机怎么绕过ID

    苹果跳过id教程_苹果手机怎么绕过ID如果您是非法渠道获得的手机请关闭本网页。常见问题汇总:iPhone5s,iPhone6、6plus,iPhoneSE,6S,iPhone6SPiPhoneSE,iPhone7,iPhone7P,iPhone8/iPhone8P,iPhoneX。iPadMini2,iPadMini3,iPadMini4,iPadAir,iPadPro(12.9…

  • GG修改器免root教程_gg修改器免root版怎么用

    GG修改器免root教程_gg修改器免root版怎么用前言:由于疫情期间在家无聊,没事学学Python,学不进去的时候打打和平精英,刷刷抖音,无意中发现一个游戏叫我功夫特牛,然后就想用点手段,O(∩_∩)O哈哈~以前也装过GG修改器,但是是在ROO

  • TCP/IP协议四层模型

    TCP/IP协议四层模型接下来的学习重心会放在Linux网络编程这一块,我的博客也会随之更新。参照的书籍有《Linux高性能服务器编程》(游双著)、《UNIX网络编程-卷1:套接字联网API》。  TCP/IP协议族是一个四层协议系统:1.数据链路层  1.1作用  (1)实现网卡接口的网络驱动,以处理数据在以太网线等物理媒介上的传输  (2)网络驱动程序隐藏了不同物理网络的不同电气特性,为上层协议提供一个

  • endnote参考文献排版_Endnote 导入参考文献的时候,格式错误太多了。是否有什么解决办法?…[通俗易懂]

    我把style的链接放评论区了通常endnote的格式错误有两种:1、参考文献本身存在错误;2、参考文献导入模板不符合GB/T7714第一种好解决,导入的时候从WebOfScience和知网导入即可。第二种比较麻烦,正好我刚写完硕士毕业论文,总结一下(多图预警。。。),只看怎么修改符合GB的参考文献直接看第二部分。答主从本科毕业论文开始就一直使用endnote进行文献管理和参考文献录入,使用过…

  • 网站被挂马实用怎么解决的办法之一[通俗易懂]

    网站被挂马实用怎么解决的办法之一[通俗易懂]最近单位网站在百度搜索点击打开都是SQ电影的内容,而直接输入网址反而没问题,在百度搜索中被提示为网站被黑的可能,很多客户搜索我们网站都进入了SQ电影网站,给公司的形象造成了很大的影响,作为公司的网站技术人员,以前也算是搞了5年的老站长了,什么事没惊着,从头开始分析网站被黑的原因。

  • 【奇葩bug】微信小程序:Unit8Array is not defined[通俗易懂]

    【奇葩bug】微信小程序:Unit8Array is not defined[通俗易懂]【奇葩bug】微信小程序:Unit8Arrayisnotdefined在用微信小程序里的蓝牙模块,要给设备写入信息。结果报错:VM22:2MiniProgramErrorUnit8ArrayisnotdefinedReferenceError:Unit8Arrayisnotdefined报错原因:正确拼写是Uint8Array…难怪根本搜不到相关问题,幻视误人啊。(完全没有技术含量的bug,也没有耽误太多时间,但实在是让我感到哭笑不得……另外,关于ArrayBuffer

发表回复

您的电子邮箱地址不会被公开。

关注全栈程序员社区公众号