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