Java微信公众平台开发(9) 关键字回复以及客服接口实现

网友投稿 376 2023-05-22


Java微信公众平台开发(9) 关键字回复以及客服接口实现

(一)关键字自动回复

在前面的文章中我们已经完成对消息回复的分类以及实现,这里说的关键字回复只是对消息回复功能的应用化,这里我在【文本类型消息】下实现,其大致思路是:首先获取到消息文本的内容content,然后更具获取content去匹配自己需要设定的关键字,然后根据匹配到的不同结果给出不同的消息回复,简单代码如下:

String openid=map.get("FromUserName"); //用户openid

//普通文本消息

TextMessage txtmsg=new TextMessage();

txtmsg.setToUserName(openid);

txtmsg.setFromUserName(mpid);

txtmsg.setCreateTime(new Date().getTime());

txtmsg.setMsgType(MessageUtil.RESP_MESSAGE_TYPE_TEXT);

if (map.get("MsgType").equals(MessageUtil.REQ_MESSAGE_TYPE_TEXT)) { // 文本消息

String content=map.get("Content");

if("1".equals(content)){

http:// txtmsg.setContent("你好,你发送的内容是1!");

}else if("2".equals(content)){

txtmsg.setContent("你好,你发送的内容是2!");

}else if("3".equals(content)){

txtmsg.setContent("你好,你发送的内容是3!");

}else if("4".equals(content)){

txtmsg.setContent("崔用志博客");

}else{

txtmsg.setContentOgKemVGkgS("你好,欢迎来到崔用志博客!");

}

return MessageUtil.textMessageToXml(txtmsg);

}

基本关键字回复的逻辑就是这样,你可以根据自己的需要设置自己的关键字以及实现流程,最终运行结果如下:

①直接给微信服务器回复【空】,注意这里是直接回复空而不是回复内容为空!

所以我们的代码实现为:

//这个是错误代码回复

if (map.get("MsgType").equals(MessageUtil.REQ_MESSAGE_TYPE_LINK)) { // 链接消息

txtmsg.setContent("");

return MessageUtil.textMessageToXml(txtmsg);

}

//这个是正确代码回复

if (map.get("MsgType").equals(MessageUtil.REQ_MESSAGE_TYPE_LOCATION)) { // 位置消息

System.out.println("==============这是位置消息!");

return "";

}

②将消息转接到多客服助手,让客服去做消息的处理!

新建客服消息实体类CustomerMessage.java,简单代码如下:

package com.cuiyongzhi.wechat.message.resp;

/**

* ClassName: CustomerMessage

* @Description: 客服消息接口

* @author dapengniao

* @date 2016年3月14日 下午6:28:08

*/

public class CustomerMessage {

// 接收方帐号(收到的OpenID)

private String ToUserName;

// 开发者微信号

private String FromUserName;

// 消息创建时间 (整型)

private long CreateTime;

// 消息类型(text/music/news)

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 long getCreateTime() {

return CreateTime;

}

public void setCreateTime(long createTime) {

CreateTime = createTime;

}

public String getMsgType() {

return MsgType;

}

public void setMsgType(String msgType) {

MsgType = msgType;

}

}

然后在我们需要回复的地方加入消息转发代码即可,简单如下:

String openid=map.get("FromUserName"); //用户openid

CustomerMessage customer=new CustomerMessage();

customer.setToUserName(fromUserName);

customer.setFromUserName(toUserName);

customer.setCreateTime(new Date().getTime());

customer.setMsgType("transfer_customer_service");

// 文本消息

if (msgType.equals(MessageUtil.REQ_MESSAGE_TYPE_TEXT)) {

return MessageUtil.customerMessageToXml(customer);

}

这样就把用户发送的消息转发到多客服助手,这样我们的客服人员就可以对应的答复,方便我们消息的处理!多客服的相关使用和下载可以查看 http://mp.weixin.qq.com/wiki/11/f0e34a15cec66fefb28cf1c0388f68ab.html 。

感谢你的翻阅,如有疑问可以留言讨论,下一篇将讲述【自定义菜单的基本实现】的两种实现方案!


版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:.net MVC+Bootstrap下使用localResizeIMG上传图片
下一篇:java springmvc乱码解决归纳整理详解
相关文章

 发表评论

暂时没有评论,来抢沙发吧~