工作中遇到公众号发送客服消息,让用户点击选择。查看了微信开发者文档,发现“菜单消息” 可以满足,但是用户接收到的样式的确很难看,所以就想可不可以改变其样式来达到一种卡片式的消息。

先不说别的,先上微信客服消息---菜单消息文档如下:

1、开发文档

{"touser": "OPENID","msgtype": "msgmenu","msgmenu": {"head_content": "您对本次服务是否满意呢? ""list": [{"id": "101","content": "满意"},{"id": "102","content": "不满意"}],"tail_content": "欢迎再次光临"}
}

按照上述例子,用户会看到这样的菜单消息:

“您对本次服务是否满意呢?

满意

不满意”

其中,“满意”和“不满意”是可点击的,当用户点击后,微信会发送一条XML消息到开发者服务器,格式如下:

<xml>
<ToUserName><![CDATA[ToUser]]></ToUserName>
<FromUserName><![CDATA[FromUser]]></FromUserName>
<CreateTime>1500000000</CreateTime>
<MsgType><![CDATA[text]]></MsgType>
<Content><![CDATA[满意]]></Content>
<MsgId>1234567890123456</MsgId>
<bizmsgmenuid>101</bizmsgmenuid>
</xml>

XML参数说明:

参数 说明
ToUserName 开发者帐号
FromUserName 接收方帐号(OpenID)
CreateTime 消息创建时间戳
MsgType Text
Content 点击的菜单名
MsgId 消息ID
bizmsgmenuid 点击的菜单ID

收到XML推送之后,开发者可以根据提取出来的bizmsgmenuid和Content识别出微信用户点击的是哪个菜单。

2、实现方式

本人在测试号调用此接口一直报40200的错误码 invalid account type, 在文档上找不到对应的错误码;后来在网上查阅资料才知道,此接口必须在正式的公众号才能调用成功。

备注:

msgmenuid:单击了哪个按钮对应的id(测试号以文本方式发送给微信服务器的话,返回的xml中不会有这个id,只有公众号才会有)
1、根据msgmenuid来判断用户点击了哪一个按钮,然后处理相关逻辑。
2、为了防止用户多次点击,可以后台返回一个随机数,用户点击的时候可以通过这个随机数判断是否已经处理过,如果为空或者随机数不是后台生成的则拒绝处理,发送客服提示消息。

要想达到卡片式的效果,超链接必须要加上微信地址weixin://bizmsgmenu服务器才会返回菜单按钮样式的xml。至于排版,可以通过\t 空格 \n换行 自行排版。

发送文本消息的内容如下

"检测到您正在和【张三】医生进行咨询尚未结束,是否要切换至【李四】医生咨询?\n\n"+"\t\t\t\t\t"+
"<a href=\"weixin://bizmsgmenu?msgmenucontent=切换&msgmenuid=10001\">切换</a>"+
"\t\t\t\t\t\t\t\t\t\t\t\t\t"+
"<a href=\"weixin://bizmsgmenu?msgmenucontent=不切换&msgmenuid=10002\">不切换</a>\n"+
"\n快马健康!(本次消息有效时间为30分钟)"

效果图如下:

微信公众号发送客服消息---菜单消息,卡片消息相关推荐

  1. 微信公众号发送客服消息【文本、图片】

    微信公众号发送客服消息[文本.图片] /// <summary> /// 微信用户唯一标识OpenId /// </summary> public static string ...

  2. php公众号客服消息图文,微信公众号发送客服消息功能怎么实现?

    1.微号帮平台:免费注册试用7天 根据页面上的提示完成新用户注册操作,>>立即注册 注册成功后,使用用户名.密码登录平台,>>立即登录 3.登录成功后,进入管理中心,选择添加公 ...

  3. 微信公众号发送客服消息asp源码示例

    微信公众号发送客服消息asp源码示例有三种,一种是发送纯文本,一种是发送图文信息,一种是发送可以换行并且带链接的效果,如下图效果: 三种效果 下面是asp推送客服消息的代码: <% functi ...

  4. 微信公众号发送客服消息(文本、图文)和模板消息

    壹:客服消息 微信文档发送客服消息链接:https://api.weixin.qq.com/cgi-bin/message/custom/send?access_token=ACCESS_TOKEN ...

  5. php公众号发送客服消息

    // 模拟 http 请求 function https_request($url,$data = null){// php curl 发起get或者post请求// curl 初始化$curl = ...

  6. java微信公众号多客服_微信公众号多客服功能怎么实现?

    原标题:微信公众号多客服功能怎么实现? 微信公众号多客服功能怎么实现?为了方便更好地接待公众号的用户,很多企业想要为公众号接入多客服,以此提升公众号服务.公众号多客服功能可以通过接入米多客公众号客服软 ...

  7. 【微信公众号发红包转账】微信公众号上手机网页接收请求,通过公众号给用户发红包 开发流程...

    有了微信支付 的开发做铺垫,相关的微信其他业务处理起来逻辑就能清晰很多. 准备好这两个架包 ------------------------------------------------------ ...

  8. 微信公众号 智能客服

    前言 微信公众号的开发,园子里有很多资料,这里简述. 虽说是智能,现在是仿佛智障,很多是hard code逻辑,日后将逐步加入LUIS,现在一些常用的打招呼(你好,您好,hi,hey,hello,ho ...

  9. 怎样在微信公众号发文件?

    怎样在微信公众号发文件? 我们都知道创建一个微信公众号,在公众号中发布一些文章是非常简单的,但公众号添加附件下载的功能却被限制,如今可以使用小程序"微附件"进行在公众号中添加附件. ...

  10. java 微信自定义菜单开发_微信公众号开发之设置自定义菜单实例代码【java版】...

    本实例是为了实现在管理后台实现微信菜单的添加删除管理. 1.首先我们需要新建一个数据库表用于存放menu菜单项 可包含的字段有id.父类id.name.排序.是否显示.类型(view.click).链 ...

最新文章

  1. python教程实例-python 类和实例 - 刘江的python教程
  2. Redis安装(CentOS7/tar.gz)
  3. 实模式切换到保护模式,为什么要开启A20地址线(系统升级产生的兼容性问题)
  4. linux里hba状态_Windows和Linux系统查看HBA卡wwn号的方法 | 系统之家官网
  5. android 广播 关闭对话框,Android 对话框、信息提示和菜单
  6. Install-Package Ninject -Project SportsStore.WebUI
  7. 漂亮实用的loading(加载)封装
  8. php 生成会员卡号,PHP实现生成唯一会员卡号
  9. 大话量子通信丨赠书名单公示
  10. HttpClient在Android新API上的java.lang.NoSuchFieldError: No static field INSTANCE问题
  11. 高可用免费代理ip爬取实战
  12. 大神超短代码实现超牛特效
  13. (python) 1200000有多少个约数(只计算正约数)
  14. 爬虫|基于船讯网实现AIS数据爬虫 船讯网轨迹数据以及轨迹信息
  15. 用C++生成一个随机数
  16. 【OpenCV】中的鱼眼相机及其标定
  17. Mission planner加载天地图(混合卫星地图含标注)
  18. 【数据分析与挖掘实战】B站影视区数据分析
  19. 使用kail破解wifi密码
  20. CUDA安装失败,解决办法

热门文章

  1. python常见的缩进错误_python常见编译错误:IndentationError缩进错误
  2. kali linux怎么安装无线网卡驱动,Kali Linux 安装BCM43142网卡驱动
  3. KALI虚拟机挂代理教程
  4. PHP微信公众号开发之:获得和缓存access_token,原理及代码
  5. linux 空格变问号,遭遇UTF-8编码转换后,空格变成问号的问题
  6. 基于Windows平台的Radius服务器搭建指南
  7. rap格式鸿蒙,你,想要成为rap star吗?
  8. hazy的面试小笔记之计网(持续更新)
  9. Python 结巴(jieba)库之花拳绣腿
  10. 如何使用python sklearn 中的LeaveOneGroupOu?特例:leave one pair out的实现多重比较校正?