微信服务号接入多客服系统
public class Customer {
private String ToUserName;
private String FromUserName;
private Integer CreateTime;
private String MsgType;
public String getToUserName() {
return ToUserName;
}
public void setToUserName(String toUserName)...
public class Customer {
private String ToUserName;
private String FromUserName;
private Integer CreateTime;
private String MsgType;
public String getToUserName() {
return ToUserName;
}
public void setToUserName(String toUserName) {
ToUserName = toUserName;
}
public String getFromUserName() {
return FromUserName;
}
public void setFromUserName(String fromUserName) {
FromUserName = fromUserName;
}
public Integer getCreateTime() {
return CreateTime;
}
public void setCreateTime(Integer createTime) {
CreateTime = createTime;
}
public String getMsgType() {
return MsgType;
}
public void setMsgType(String msgType) {
MsgType = msgType;
}
}
import java.io.InputStream;
import java.io.Writer;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import javax.servlet.http.HttpServletRequest;
import org.dom4j.Document;
import org.dom4j.Element;
import org.dom4j.io.SAXReader;
import com.thoughtworks.xstream.XStream;
import com.thoughtworks.xstream.core.util.QuickWriter;
import com.thoughtworks.xstream.io.HierarchicalStreamWriter;
import com.thoughtworks.xstream.io.xml.PrettyPrintWriter;
import com.thoughtworks.xstream.io.xml.XppDriver;
/**
* 消息工具类
*
*/
public class MessageUtil {
/**
* 解析微信发来的请求(XML)
* @param request
* @return
* @throws Exception
*/
@SuppressWarnings("unchecked")
public static Map parseXml(HttpServletRequest request) throws Exception {
// 将解析结果存储在HashMap中
Map map = new HashMap();
// 从request中取得输入流
InputStream inputStream = request.getInputStream();
// 读取输入流
SAXReader reader = new SAXReader();
Document document = reader.read(inputStream);
// 得到xml根元素
Element root = document.getRootElement();
// 得到根元素的所有子节点
List elementList = root.elements();
// 遍历所有子节点
for (Element e : elementList){
map.put(e.getName(), e.getText());
System.out.println("-----xml------"+e.getName()+"|"+e.getText());
}
// 释放资源
inputStream.close();
inputStream = null;
return map;
}
/**
* 返回多客服消息
* @param customer
* @return xml
*/
public static String senCustomerToXml(Customer customer) {
xstream.alias("xml", customer.getClass());
return xstream.toXML(customer);
}
public static boolean isNumeric(String str){
for (int i = str.length();--i>=0;){
if (!Character.isDigit(str.charAt(i))){
return false;
}
}
return true;
}
/**
* 扩展xstream,使其支持CDATA块
*
* @date 2013-05-19
*/
private static XStream xstream = new XStream(new XppDriver() {
public HierarchicalStreamWriter createWriter(Writer out) {
return new PrettyPrintWriter(out) {
// 对所有xml节点的转换都增加CDATA标记
boolean cdata = true;
@SuppressWarnings("unchecked")
public void startNode(String name, Class clazz) {
System.out.println("name:"+name);
super.startNode(name);
}
protected void writeText(QuickWriter writer, String text) {
System.out.println("text:"+text);
if(isNumeric(text)){
cdata = false;
}else{
cdata = true;
}
if (cdata) {
writer.write("");
} else {
writer.write(text);
}
}
};
}
});
}
public class MultiMessage {
/**
* @param openid 微信用户
* @param CreateTime 接收微信消息时的时间
* @param toUserName 公众服务号的微信号
* @return
*/
public String sendCustomer(String openid,String CreateTime,String toUserName){
Customer cus = new Customer();
cus.setCreateTime(Integer.valueOf(CreateTime));
cus.setFromUserName(toUserName);
cus.setMsgType("transfer_customer_service");
cus.setToUserName(openid);
return MessageUtil.senCustomerToXml(cus);
}
}
本文档为【微信服务号接入多客服系统】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑,
图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。
本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。
网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。