为丰富小程序的服务能力,提高服务质量,微信为小程序提供客服消息能力,以便小程序用户可以方便快捷地与小程序服务提供方进行沟通。
用户可使用小程序客服消息功能,与小程序的客服人员进行沟通。
客服消息会话入口有两个:
1、小程序内:开发者在小程序内添加客服消息按钮组件,用户可在小程序内唤起客服会话页面,给小程序发消息;
2、已使用过的小程序客服消息会聚合显示在微信会话“小程序客服消息”内,用户可以在小程序外查看历史客服消息,并给小程序客服发消息。
客服消息下发条件:小程序用户在小程序内唤起客服会话或用户给小程序客服发送消息,具体下发时间有效期及消息条数限制见客服消息下发条件说明
客服消息类型:目前支持文本及图片类型消息
为尽量满足小程序开发者的需求,小程序可通过以下两种方式下发客服消息:1、调用发送客服消息接口;2、使用公众平台网页版客服工具
当用户和小程序客服产生特定动作的交互时(具体动作列表请见下方说明),小程序可向用户下发客服消息。
目前允许的动作列表如下,不同动作触发后,允许下发消息条数和下发时限不同。下发条数达到上限后,会返回错误码。
可发送客服消息条数不累加,上述用户动作会触发可下发条数及可下发时限的更新,可下发消息条数更新为当前可下发条数限制的最大值,有效下发时间限制也更新为最长有效时间。
调用客服消息接口发送客服消息
当用户在小程序内打开客服会话,或是给小程序客服发消息,微信服务器会将消息(或事件)的数据包(JSON或者XML格式)POST到开发者填写的URL。开发者收到请求后可以调用接口进行异步回复。
登录小程序,在“设置-开发设置-消息推送”启用消息推送功能并完成相关信息配置(包括服务器地址、Token、及加密方式等)。
启用并设置服务器配置后,用户发送的消息以及开发者需要的事件推送,都将被微信转发至开发者URL中。
小程序客服消息API文档
小程序也可以直接使用微信公众平台网页版客服工具进行客服消息回复。
若小程序没有启用消息推送,则用户发送的消息将会被转发至网页版客服工具,客服人员可在网页版客服工具中接入并回复用户。
注意:“用户通过客服消息按钮进入会话”事件将不会转发至网页版客服工具。
使用网页版客服工具前,小程序管理员需在小程序后台完成客服人员的绑定。目前小程序支持绑定不多于100个客服人员。
登录并接入
已被绑定的小程序客服人员可扫码登录微信公众平台网页版客服工具,并选择对应的小程序帐号,登录后即可看到与小程序对话的用户,可选择接入对话。
点击在线状态,可以选择在线状态、离开状态或退出登录
手动接入:客服人员上线后,点击“待接入”,即可在“待接入”列表中,手动接入待回复的对话
自动接入:当待接入的对话太多时,可以在设置/接入设置中,开启自动接入
重新接入:退出登录,或对话超过半小时,需要重新接入,激活对话
已经接入的会话,客服人员可以在48小时内和用户进行对话,目前支持发送文本、图片类型的消息。
小程序客服消息使用除必须遵守微信小程序平台运营规范外,还不能违反以下规则,包括但不限于:
不允许恶意诱导用户进行可能触发客服消息下发的操作,以达到可向用户下发客服消息目的
不允许恶意骚扰,下发与用户发送的消息没有关联的、对用户造成骚扰的消息
不允许恶意营销,下发内容涉嫌虚假夸大、违法类营销信息
不允许使用客服消息向用户下发虚假、色情、暴力等违反国家法律规定的信息
在页面中使用<contact-button/> 可以显示进入客服会话按钮。
当用户在客服会话发送消息(或进行某些特定的用户操作引发的事件推送时),微信服务器会将消息(或事件)的数据包(JSON或者XML格式)POST请求开发者填写的URL。开发者收到请求后可以使用发送客服消息接口进行异步回复。
微信服务器在将用户的消息发给小程序的开发者服务器地址(开发设置处配置)后,微信服务器在五秒内收不到响应会断掉连接,并且重新发起请求,总共重试三次,如果在调试中,发现用户无法收到响应的消息,可以检查是否消息处理超时。关于重试的消息排重,有msgid的消息推荐使用msgid排重。事件类型消息推荐使用FromUserName + CreateTime 排重。
服务器收到请求如果#不需要转发到客服工具#,必须做出下述回复,这样微信服务器才不会对此作任何处理,并且不会发起重试,否则,将出现严重的错误提示。详见下面说明:
一旦遇到以下情况,微信都会在小程序会话中,向用户下发系统提示“该小程序客服暂时无法提供服务,请稍后再试”:
如果开发者希望把消息或事件转发到客服工具,请参看转发消息到客服工具。客服工具接入请参考客服工具使用说明
如果开发者希望增强安全性,可以在开发者中心处开启消息加密,这样,用户发给小程序的消息以及小程序被动回复用户消息都会继续加密,详见消息加解密说明。
各消息类型的推送JSON、XML数据包结构如下。
用户在客服会话中发送文本消息时将产生如下数据包:
用户在客服会话中发送图片消息时将产生如下数据包:
用户在小程序“客服会话按钮”进入客服会话时将产生如下数据包:
如果开发者希望消息被转发到客服工具处理,请按照下述结构返回响应包。响应包的数据格式(XML或JSON)需要与设置的接收消息数据格式一致。
新增组件:
contact-button
客服会话按钮,用于在页面上显示一个客服会话按钮,用户点击该按钮后会进入客服会话。
当用户和小程序客服产生特定动作的交互时(具体动作列表请见下方说明),微信将会把消息数据推送给开发者,开发者可以在一段时间内(目前修改为48小时)调用客服接口,通过POST一个JSON数据包来发送消息给普通用户。此接口主要用于客服等有人工消息处理环节的功能,方便开发者为用户提供更加优质的服务。
目前允许的动作列表如下,不同动作触发后,允许的客服接口下发消息条数和下发时限不同。下发条数达到上限后,会收到错误返回码,具体请见返回码说明页:
接口调用请求说明
发送文本消息
发送图片消息
参数说明
小程序可以使用本接口获取客服消息内的临时素材(即下载临时的多媒体文件)。目前小程序仅支持下载图片文件。
HTTP 请求方式: GET,HTTPS 调用
请求示例(示例为通过curl命令获取多媒体文件)
正确情况下的返回 HTTP 头如下:
如果返回的是视频消息素材,则内容如下:
错误情况下的返回JSON数据包示例如下(示例为无效媒体ID错误):
新增临时素材
小程序可以使用本接口把媒体文件(目前仅支持图片)上传到微信服务器,用户发送客服消息或被动回复用户消息。
接口调用请求说明
HTTP 请求方式:POST/FORM,HTTPS 调用
调用示例(使用curl命令,用FORM表单方式上传一个多媒体文件):
正确情况下的返回 JSON 数据包结果如下:
错误情况下的返回JSON数据包示例如下(示例为无效媒体类型错误):