微信多客服 - 消息转发多客服

做了几个月的微信开发,前不久微信推出多客服功能.因为公司的公众号是微信认证,因而有接口权限.正好将此功能集成到项目中,本文只适合有微信开发基础.

查看微信开发文档

如果公众号处于开发模式,需要在接收到用户发送的消息时,返回一个MsgType为transfer_customer_service的消息,微信服务器在收到这条消息时,会把这次发送的消息转到多客服系统。用户被客服接入以后,客服关闭会话以前,处于会话过程中,用户发送的消息均会被直接转发至客服系统。

上文中提到的消息数据具体举例为:

<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 [email protected]
 * @date 2014-06-12
 */

1 构造xml发起客服请求,触发客服可以使用自定义菜单或者关键字

/**
     * 生成消息转发到多客服
     * @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 代码编写完了 来看看运行效果吧

先登录多客服系统

打开微信 点击在线咨询

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

微信收到回复

微信多客服 - 消息转发多客服

时间: 2024-12-22 05:31:55

微信多客服 - 消息转发多客服的相关文章

微信公众号发送消息之发送客服消息基类封装

当用户主动发消息给公众号的时候(包括发送信息.点击自定义菜单.订阅事件.扫描二维码事件.支付成功事件.用户维权),微信将会把消息数据推送给开发者,开发者在一段时间内(目前修改为48小时)可以调用客服消息接口,通过POST一个JSON数据包来发送消息给普通用户,在48小时内不限制发送次数.此接口主要用于客服等有人工消息处理环节的功能,方便开发者为用户提供更加优质的服务. http请求方式: POST https://api.weixin.qq.com/cgi-bin/message/custom/

微信公众平台多客服新增自定义客服头像和消息转发接口功能

多客服一般是开放给微信认证服务号的一个便捷功能,可以将消息转发到多客服方便回复.对有些“选择综合症“的客服,看到那一层不变的客服头像就想吐槽.现在好了,多客服新增自定义客服头像和接口功能,也可以自定义昵称 一.开通“多客服”的公众号可为客服工号配置自定义头像. 使用6.0.2版微信的用户在同公众号进行客服沟通时,可以看到配置的客服头像和昵称. 二.为满足公众号个性化客服需求,公众平台为开发者提供了“多客服”相关接口,可将消息转发到多客服 和 消息转发到指定客服. A:如果公众号处于开发模式,普通

微信公众号开发(三)----服务号客服消息

因为订阅号没有客服消息,所以只能在用户发送消息以后,进行被动的回复.而服务号可以通过客服消息主动给用户发消息,下面我就介绍一下这个功能怎么使用. 客服消息主要是向公众号服务器发送HTTPS请求,所以这部分的内容可以使用PostMan等工具进行测试和验证.那么下面就开始吧. 1. 获取AccessToken 发送客服消息需要用到AccessToken,可以用appId和AppSecrect来获取.获取的接口文档为获取AccessToken, AppId和AppSecrect可以在公众号主页--->

微信公众平台开发(十二) 发送客服消息

原文:微信公众平台开发(十二) 发送客服消息 一.简介 当用户主动发消息给公众号的时候(包括发送信息.点击自定义菜单.订阅事件.扫描二维码事件.支付成功事件.用户维权),微信将会把消息数据推送给开发者,开发者在一段时间内(目前修改为48小时)可以调用客服消息接口,通过POST一个JSON数据包来发送消息给普通用户,在48小时内不限制发送次数.此接口主要用于客服等有人工消息处理环节的功能,方便开发者为用户提供更加优质的服务. 二.思路分析 官方文档中只提供了一个发送客服消息的接口,开发者只要POS

微信程序开发系列教程(三)使用微信API给微信用户发文本消息

这个系列的第二篇教程,介绍的实际是被动方式给微信用户发文本消息,即微信用户关注您的公众号时,微信平台将这个关注事件通过一个HTTP post发送到您的微信消息服务器上.您对这个post请求做了应答(格式为文本),则该应答会通过微信平台投递到您粉丝的微信应用上. 微信开发者中心的文档将这种行为称为"被动回复用户消息": 回复消息报文的格式在开发者文档里也有清晰的定义,是一个xml格式的字符串.我的第二篇教程里也有具体的发送该报文的代码示例. 本文作为这个开发系列的第三篇教程,介绍的是如何

java 发送微信客服消息

? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 package com.baosight.wechat.service; import net.sf.json.JSONObject;

微信公众平台开发(73) 客服接口发送客服消息

原文:微信公众平台开发(73) 客服接口发送客服消息 微信公众平台开发 客服接口 发送客服消息作者:方倍工作室 地址:http://www.cnblogs.com/txw1958/p/weixin73-custom-send.html 当用户主动发消息给公众号的时候(包括发送信息.点击自定义菜单clike事件.订阅事件.扫描二维码事件.支付成功事件.用户维权),微信将会把消息数据推送给开发者,开发者在一段时间内(目前为24小时)可以调用客服消息接口,通过POST一个JSON数据包来发送消息给普通

微信公众号客服消息提醒

微信客服消息提醒:    public static void Test(String openid) throws Exception{            String token = getWeiXinAccessToken.getToken();        String strJson = "{\"touser\" :\""+openid+"\",";        strJson += "\"

微信客服消息:形式简单,功能强劲

微信内部客服消息 1. 这里要讲的核心内容是基于微信浏览器的URL Schemes来实现微信内部消息的控制,就是weixin://,这个是不是和http://有一样的格式,表达的意思类似,就是告知浏览器,采取什么协议解析URL内容,只是这里的weixin://只能是微信浏览器才能识别.2. 微信内部的客服消息,其功能,就是将推荐的客户可能问到的问题,以一个问题列表的方式展现给客户,方便客户直接点击问题,就相当于提问了,表现形式,就是客户点击了的问题,直接在提问框中显示出来了,和客户自己输入了这个