6.1 在页面使用客服消息
需要将 button 组件 open-type 的值设置为 contact,当用户点击后就会进入客服会话,如果用户在会话中点击了微信小程序消息,则会返回到微信小程序,开发者可以通过 bindcontact 事件回调获取到用户所点消息的页面路径 path 和对应的参数 query,开发者需根据路径自行跳转。此外,开发者可以通过设置 session-from 将会话来源透传到客服。
示例代码
<button open-type="contact" bindcontact="handleContact" session-from="sessionFrom"></button>
Page({
handleContact (e) {
console.log(e.detail.path)
console.log(e.detail.query)
}
})
返回参数说明
| 参数 | 类型 | 说明 |
| path | String | 微信小程序消息指定的路径 |
| query | Object | 微信小程序消息指定的查询参数 |
6.2 后台接入消息服务
用户向微信小程序客服发送消息、或者进入会话等情况时,开发者填写的服务器 URL (如果使用的是云开发,则是配置的云函数)将得到微信服务器推送过来的消息和事件,开发者可以依据自身业务逻辑进行响应。接入和使用方式请参考消息推送。
6.3 后台接入消息报错自查
报错表现: 用户发送消息出现系统文案 “该微信小程序提供的服务出现故障,请稍后再试”。
报错原因: 微信小程序配置callback后,用户发送的消息会推送到第三方服务器,如推送失败就会报错。
自查方式:
- 微信小程序开启消息推送(微信小程序后台-开发管理-开发设置-消息推送)

- 微信小程序把「客服权限」授权给第三方平台(微信小程序后台-设置-第三方设置-第三方平台授权管理)

特殊情况:对于开启云函数且没开启云托管的微信小程序,用户发送的消息会推送到云函数,不会走到微信小程序客服系统,也不会callback给第三方服务器或者微信小程序消息推送的服务器地址。
6.4 将消息转发到客服
如果微信小程序处于开发模式,普通微信用户向微信小程序客服发消息时,微信服务器会先将消息POST到开发者填写的url上,如果希望将消息转发到客服系统,则需要开发者在响应包中返回MsgType为transfer_customer_service的消息,微信服务器收到响应后会把当次发送的消息转发至客服系统。
用户被客服接入以后,客服关闭会话以前,处于会话过程中时,用户发送的消息均会被直接转发至客服系统。当会话超过30分钟客服没有关闭时,微信服务器会自动停止转发至客服,而将消息恢复发送至开发者填写的url上。
用户在等待队列中时,用户发送的消息仍然会被推送至开发者填写的url上。
这里特别要注意,只针对微信用户发来的消息才进行转发,而对于其他任何事件都不应该转接,否则客服在客服系统上就会看到一些无意义的消息了。
调用说明
<xml>
<ToUserName><![CDATA[touser]]></ToUserName>
<FromUserName><![CDATA[fromuser]]></FromUserName>
<CreateTime>1399197672</CreateTime>
<MsgType><![CDATA[transfer_customer_service]]></MsgType>
</xml>
请求参数说明
| 参数 | 是否必须 | 描述 |
| ToUserName | 是 | 接收方OpenID账号 |
| FromUserName | 是 | 开发者微信号 |
| CreateTime | 是 | 消息创建时间戳(整型) |
| MsgType | 是 | transfer_customer_service |
6.5 客服管理服务端
- 获取所有客服账号
- 获取在线客服列表
- 添加客服账号
- 删除客服账号
- 设置客服管理员
- 取消客服管理员