1、客服消息功能概述在页面中使用 contact-button/ 可以显示进入客服会话按钮。当用户在客服会话发送消息(或进行某些特定的用户操作引发的事件推送时),微信服务器会将消息(或事件 ...
1、客服消息功能概述
在页面中使用 <contact-button/> 可以显示进入客服会话按钮。
当用户在客服会话发送消息(或进行某些特定的用户操作引发的事件推送时),微信服务器会将消息(或事件)的数据包(JSON或者XML格式)POST请求开发者填写的URL。开发者收到请求后可以使用发送客服消息接口进行异步回复。
微信服务器在将用户的消息发给小程序的开发者服务器地址(开发设置处配置)后,微信服务器在五秒内收不到响应会断掉连接,并且重新发起请求,总共重试三次,如果在调试中,发现用户无法收到响应的消息,可以检查是否消息处理超时。关于重试的消息排重,有msgid的消息推荐使用msgid排重。事件类型消息推荐使用FromUserName + CreateTime 排重。
服务器收到请求必须做出下述回复,这样微信服务器才不会对此作任何处理,并且不会发起重试,否则,将出现严重的错误提示。详见下面说明:
1、直接回复success(推荐方式) 2、直接回复空串(指字节长度为0的空字符串,而不是结构体中content字段的内容为空)
一旦遇到以下情况,微信都会在小程序会话中,向用户下发系统提示“该小程序客服暂时无法提供服务,请稍后再试”:
1、开发者在5秒内未回复任何内容 2、开发者回复了异常数据
小程序客服消息界面效果展示
小程序客服消息列表展示
点击小程序客服消息进入的界面
小程序客服消息聊天界面
小程序客服消息聊天界面右上角按钮点击
点击自己小程序按钮进入的界面
2、网页版客服工具具体可参考https://mp.weixin.qq.com/debug/wxadoc/introduction/custom.html#网页版客服工具
3、客服消息功能具体实现消息推送配置
填写服务器配置
登录https://mp.weixin.qq.com
点击设置
消息推送配置
消息推送配置
验证消息的确来自微信服务器
开发者提交信息后,微信服务器将发送GET请求到填写的服务器地址URL上,GET请求携带参数如下表所示:
参数详解
/** * 检验signature对请求进行校验 */ function checkSignature(params){ //token 就是自己填写的令牌 var key=[token, params.timestamp, params.nonce].sort().join(''); //将token (自己设置的) 、timestamp(时间戳)、nonce(随机数)三个参数进行字典排序 var sha1 = crypto.createHash('sha1'); //将上面三个字符串拼接成一个字符串再进行sha1加密 sha1.update(key); return sha1.digest('hex') === params.signature; //将加密后的字符串与signature进行对比,若成功,返回echostr }小程序界面实现
contact-button
客服会话按钮,用于在页面上显示一个客服会话按钮,用户点击该按钮后会进入客服会话。