课程表

微信小程序框架

微信小程序组件

微信小程序API

微信小程序开放接口

微信小程序工具

微信小程序设计规范

工具箱
速查手册

小程序API 接收消息和事件

当前位置:免费教程 » 移动开发 » 微信小程序

接收消息和事件


在页面中使用 <contact-button/> 可以显示进入客服会话按钮。

当用户在客服会话发送消息(或进行某些特定的用户操作引发的事件推送时),微信服务器会将消息(或事件)的数据包(JSON或者XML格式)POST请求开发者填写的URL。开发者收到请求后可以使用发送客服消息接口进行异步回复。

微信服务器在将用户的消息发给小程序的开发者服务器地址(开发设置处配置)后,微信服务器在五秒内收不到响应会断掉连接,并且重新发起请求,总共重试三次,如果在调试中,发现用户无法收到响应的消息,可以检查是否消息处理超时。关于重试的消息排重,有msgid的消息推荐使用msgid排重。事件类型消息推荐使用FromUserName + CreateTime 排重。

服务器收到请求如果#不需要转发到客服工具#,必须做出下述回复,这样微信服务器才不会对此作任何处理,并且不会发起重试,否则,将出现严重的错误提示。详见下面说明:

  1. 1、直接回复success(推荐方式)
  2. 2、直接回复空串(指字节长度为0的空字符串,而不是结构体中content字段的内容为空)

一旦遇到以下情况,微信都会在小程序会话中,向用户下发系统提示“该小程序客服暂时无法提供服务,请稍后再试”:

  1. 1、开发者在5秒内未回复任何内容
  2. 2、开发者回复了异常数据

如果开发者希望把消息或事件转发到客服工具,请参看转发消息到客服工具。客服工具接入请参考客服工具使用说明

如果开发者希望增强安全性,可以在开发者中心处开启消息加密,这样,用户发给小程序的消息以及小程序被动回复用户消息都会继续加密,详见消息加解密说明

各消息类型的推送JSON、XML数据包结构如下。

文本消息

用户在客服会话中发送文本消息时将产生如下数据包:

XML 格式

  1. <xml>
  2. <ToUserName><![CDATA[toUser]]></ToUserName>
  3. <FromUserName><![CDATA[fromUser]]></FromUserName>
  4. <CreateTime>1482048670</CreateTime>
  5. <MsgType><![CDATA[text]]></MsgType>
  6. <Content><![CDATA[this is a test]]></Content>
  7. <MsgId>1234567890123456</MsgId>
  8. </xml>

JSON 格式

  1. {
  2. "ToUserName": "toUser",
  3. "FromUserName": "fromUser",
  4. "CreateTime": 1482048670,
  5. "MsgType": "text",
  6. "Content": "this is a test",
  7. "MsgId": 1234567890123456
  8. }

参数说明

参数说明
ToUserName小程序的原始ID
FromUserName发送者的openid
CreateTime消息创建时间(整型)
MsgTypetext
Content文本消息内容
MsgId消息id,64位整型

图片消息

用户在客服会话中发送图片消息时将产生如下数据包:

XML 格式

  1. <xml>
  2. <ToUserName><![CDATA[toUser]]></ToUserName>
  3. <FromUserName><![CDATA[fromUser]]></FromUserName>
  4. <CreateTime>1482048670</CreateTime>
  5. <MsgType><![CDATA[image]]></MsgType>
  6. <PicUrl><![CDATA[this is a url]]></PicUrl>
  7. <MediaId><![CDATA[media_id]]></MediaId>
  8. <MsgId>1234567890123456</MsgId>
  9. </xml>

JSON 格式

  1. {
  2. "ToUserName": "toUser",
  3. "FromUserName": "fromUser",
  4. "CreateTime": 1482048670,
  5. "MsgType": "image",
  6. "PicUrl": "this is a url",
  7. "MediaId": "media_id",
  8. "MsgId": 1234567890123456
  9. }

参数说明

参数说明
ToUserName小程序的原始ID
FromUserName发送者的openid
CreateTime消息创建时间(整型)
MsgTypeimage
Content图片链接(由系统生成)
MediaId图片消息媒体id,可以调用获取临时素材接口拉取数据。
MsgId消息id,64位整型

进入会话事件

用户在小程序“客服会话按钮”进入客服会话时将产生如下数据包:

XML 格式

  1. <xml>
  2. <ToUserName><![CDATA[toUser]]></ToUserName>
  3. <FromUserName><![CDATA[fromUser]]></FromUserName>
  4. <CreateTime>1482048670</CreateTime>
  5. <MsgType><![CDATA[event]]></MsgType>
  6. <Event><![CDATA[user_enter_tempsession]]></Event>
  7. <SessionFrom><![CDATA[sessionFrom]]></SessionFrom>
  8. </xml>

JSON 格式

  1. {
  2. "ToUserName": "toUser",
  3. "FromUserName": "fromUser",
  4. "CreateTime": 1482048670,
  5. "MsgType": "event",
  6. "Event": "user_enter_tempsession",
  7. "SessionFrom": "sessionFrom"
  8. }

参数说明

参数说明
ToUserName小程序的原始ID
FromUserName发送者的openid
CreateTime事件创建时间(整型)
MsgTypeevent
Event事件类型,user_enter_tempsession
SessionFrom开发者在客服会话按钮设置的sessionFrom参数

转发消息到客服工具

如果开发者希望消息被转发到客服工具处理,请按照下述结构返回响应包。响应包的数据格式(XML或JSON)需要与设置的接收消息数据格式一致。

XML 格式
  1. <xml>
  2. <ToUserName><![CDATA[toUser]]></ToUserName>
  3. <FromUserName><![CDATA[fromUser]]></FromUserName>
  4. <CreateTime>1482048670</CreateTime>
  5. <MsgType><![CDATA[transfer_customer_service]]></MsgType>
  6. </xml>
JSON 格式
  1. {
  2. "ToUserName": "toUser",
  3. "FromUserName": "fromUser",
  4. "CreateTime": 1482048670,
  5. "MsgType": "transfer_customer_service",
  6. }
参数说明
参数说明
ToUserName发送者的openid
FromUserName小程序原始ID
CreateTime事件创建时间(整型)
MsgTypetransfer_customer_service
转载本站内容时,请务必注明来自W3xue,违者必究。
 友情链接:直通硅谷  点职佳  北美留学生论坛

本站QQ群:前端 618073944 | Java 606181507 | Python 626812652 | C/C++ 612253063 | 微信 634508462 | 苹果 692586424 | C#/.net 182808419 | PHP 305140648 | 运维 608723728

W3xue 的所有内容仅供测试,对任何法律问题及风险不承担任何责任。通过使用本站内容随之而来的风险与本站无关。
关于我们  |  意见建议  |  捐助我们  |  报错有奖  |  广告合作、友情链接(目前9元/月)请联系QQ:27243702 沸活量
皖ICP备17017327号-2 皖公网安备34020702000426号