我们在微信公众号的后台可以发现微信给我们制定了两种模式,一种是开发者模式(也就是我们一直在做的开发),还有一种模式是编辑模式,然而很蛋疼的是有些功能一旦我们切换到开发者模式下就无法使用了,比较典型的就是关键字回复以及服务器无响应的时候返回的【服务器无法响应】等问题 ,这里我给出的解决方案是:①对关键字给出关键字回复的代码实现;②【服务器5s无响应】解决方案是接入多客服,以方便我们的消息处理!

(一)关键字自动回复

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

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

String mpid=map.get("ToUserName"); //公众号原始ID

//普通文本消息

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)){

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.setContent("你好,欢迎来到崔用志博客!");

}

return MessageUtil.textMessageToXml(txtmsg);

}

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

(二)该公众号暂时无法提供服务解决方案——多客服接口使用

在我们使用或者开发过程中可能会遇到【该公众号暂时无法提供服务】的回复,出现这个回复的原因是我们的应用服务在5s内没有给到腾讯服务器任何响应,腾讯服务器给用户的自动响应提示,如何解决以及避免这种情况的出现,我们可以有如下解决方案:

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

所以我们的代码实现为:

//这个是错误代码回复

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

String mpid=map.get("ToUserName"); //公众号原始ID

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 。

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

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持聚米学院。

java实现客服转接_Java微信公众平台开发(9) 关键字回复以及客服接口实现相关推荐

  1. java UTD对点发送信息_Java微信公众平台开发(九)--关键字回复以及客服接口实现(该公众号暂时无法提供服务解决方案)...

    转自:http://www.cuiyongzhi.com/post/47.html 我们在微信公众号的后台可以发现微信给我们制定了两种模式,一种是开发者模式(也就是我们一直在做的开发),还有一种模式是 ...

  2. Senparc.Weixin.MP SDK 微信公众平台开发教程(十一):高级接口说明

    这里所说的高级接口是指面向通过认证的服务号开通的高级功能. 高级功能大致可以分类为: 用户接口 分组接口 客服接口(有别于之前介绍的多客服) 群发接口 多媒体接口 二维码接口 模板消息接口(不是所有账 ...

  3. java获取微信用户源码_Java微信公众平台开发(十)--微信用户信息的获取

    前面的文章有讲到微信的一系列开发文章,包括token获取.菜单创建等,在这一篇将讲述在微信公众平台开发中如何获取微信用户的信息,在上一篇我们有说道微信用户和微信公众账号之间的联系可以通过Openid关 ...

  4. 获取微信用户信息java开发_Java微信公众平台开发(十二)--微信用户信息的获取

    前面的文章有讲到微信的一系列开发文章,包括token获取.菜单创建等,在这一篇将讲述在微信公众平台开发中如何获取微信用户的信息,在上一篇我们有说道微信用户和微信公众账号之间的联系可以通过Openid关 ...

  5. java微信开发平台_Java微信公众平台开发(1) 接入微信公众平台

    前面几篇文章一直都在说微信公众平台的开发准备工作,那么从这篇开始我们就将正式的进入JAVA微信公众平台开发的整个流程,那么这篇我们开始聊聊如何将我们的服务端和微信公众平台对接! (一)接入流程解析 通 ...

  6. java微信公众号支付开发平台_Java微信公众平台开发之公众号支付(微信内H5调起支付)...

    官方文档 准备工作:已通过微信认证的公众号,必须通过ICP备案域名(否则会报支付失败) 借鉴了很多大神的文章,在此先谢过了 整个支付流程,看懂就很好写了 一.设置支付目录 在微信公众平台设置您的公众号 ...

  7. java微信公众号获取地理位置_Java微信公众平台开发之获取地理位置

    本部分需要用到微信的JS-SDK,微信JS-SDK是微信公众平台面向网页开发者提供的基于微信内的网页开发工具包. 通过使用微信JS-SDK,网页开发者可借助微信高效地使用拍照.选图.语音.位置等手机系 ...

  8. java 微信获取用户地理位置_Java微信公众平台开发之获取地理位置

    本部分需要用到微信的JS-SDK,微信JS-SDK是微信公众平台面向网页开发者提供的基于微信内的网页开发工具包. 通过使用微信JS-SDK,网页开发者可借助微信高效地使用拍照.选图.语音.位置等手机系 ...

  9. java微信公众号中文乱码_java微信公众平台开发回复中文消息乱码解决方案

    如上图所示,中文乱码,解决方法: 1,找到公众管理平台服务器配置的url请求地址对应的类(java是一个普通的servlet类). 2,在doPost方法中加入以下代码: // 将请求.响应的编码均设 ...

最新文章

  1. 初学java---第二课《接收控制台(console)输入的方法》
  2. dede文章调用时过滤调 body里面的style属性和值
  3. matlab绘图z=sin(x,用matlab编写函数文件,实现绘制函数 z= sin(x+y)/(x+y)在【-2:2,-2:2]的图像...
  4. c++ 实现录音并且指定到文件_通话自动录音,留下美好回忆,记录完整录音证据...
  5. 有关javabean的说法不正确的是_关于 JavaBean, 下列叙述中不正确的是 ( ) 。_学小易找答案...
  6. MM模块采购收货的错误解决方案(2)
  7. matlab 正20面体,求正十二面体和正二十面体的相邻两个表面的二面角大小
  8. AOP设计与原理(连接点,切入点与代理模式)——Spring AOP(二)
  9. 谷歌邮箱无法登录问题
  10. WinEdit + CTex 打开论文模板出现乱码
  11. 机器学习基础-Lagrange duality
  12. 设置表头QHeaderView
  13. QQ音乐推荐歌单API报错 invalid referer
  14. 虚拟服务器有没有加入bt端口,三分钟学会架设BT服务器
  15. HTML学生个人网站作业设计:电影网站设计——电影资讯博客(5页) HTML+CSS+JavaScript 简单DIV布局个人介绍网页模板代码 DW学生个人网站制作成品下载
  16. Django框架(五)--ORM操作
  17. docker嵌入式开发(六)安装nextcloud云盘
  18. Python 小白上手的简单爬虫——肯德基——一蓑烟雨任平生
  19. (转)如何根据RGB值来判断这是种什么颜色?
  20. 贪心算法适用条件_【算法】贪心算法

热门文章

  1. Kroneker Tensor:克罗内克张量
  2. eBPF 入门之编程
  3. Linux内存管理:函数调用图谱-1
  4. Linux文件系统:编写一个内核文件系统
  5. Docker生态技术链
  6. Linux内核空间内存申请函数kmalloc、kzalloc、vmalloc的区别
  7. Linux Shell 中各种括号的作用 ()、(())、[]、[[]]、{}
  8. 一个简单的状态机设计
  9. 用户需求说明书_「软件项目管理入门」(21) 需求调研和需求分析怎么做?
  10. 对python的功能和扩展功能的认知_Python基础-基础认知和库了解