六、开发文档

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后,用户发送的消息会推送到第三方服务器,如推送失败就会报错。

自查方式:

  1. 微信小程序开启消息推送(微信小程序后台-开发管理-开发设置-消息推送)
  2. 微信小程序把「客服权限」授权给第三方平台(微信小程序后台-设置-第三方设置-第三方平台授权管理)

特殊情况:对于开启云函数且没开启云托管的微信小程序,用户发送的消息会推送到云函数,不会走到微信小程序客服系统,也不会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 客服管理服务端

  • 获取所有客服账号
  • 获取在线客服列表
  • 添加客服账号
  • 删除客服账号
  • 设置客服管理员
  • 取消客服管理员