微信小程序开发 专题
专题目录
您的位置:微信小程序开发 > 微信小程序开发专题 > 微信小程序API 接收消息和事件
微信小程序API 接收消息和事件
作者:--    发布时间:2019-11-20

接收消息和事件


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

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

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

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

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

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

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

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

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

文本消息

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

xml 格式

<xml>
   <tousername><![cdata[touser]]></tousername>
   <fromusername><![cdata[fromuser]]></fromusername>
   <createtime>1482048670</createtime>
   <msgtype><![cdata[text]]></msgtype>
   <content><![cdata[this is a test]]></content>
   <msgid>1234567890123456</msgid>
</xml>

json 格式

{
    "tousername": "touser",
    "fromusername": "fromuser",
    "createtime": 1482048670,
    "msgtype": "text",
    "content": "this is a test",
    "msgid": 1234567890123456
}

参数说明

参数说明
tousername小程序的原始id
fromusername发送者的openid
createtime消息创建时间(整型)
msgtypetext
content文本消息内容
msgid消息id,64位整型

图片消息

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

xml 格式

<xml>
      <tousername><![cdata[touser]]></tousername>
      <fromusername><![cdata[fromuser]]></fromusername>
      <createtime>1482048670</createtime>
      <msgtype><![cdata[image]]></msgtype>
      <picurl><![cdata[this is a url]]></picurl>
      <mediaid><![cdata[media_id]]></mediaid>
      <msgid>1234567890123456</msgid>
</xml>

json 格式

{
    "tousername": "touser",
    "fromusername": "fromuser",
    "createtime": 1482048670,
    "msgtype": "image",
    "picurl": "this is a url",
    "mediaid": "media_id",
    "msgid": 1234567890123456
}

参数说明

参数说明
tousername小程序的原始id
fromusername发送者的openid
createtime消息创建时间(整型)
msgtypeimage
picurl图片链接(由系统生成)
mediaid图片消息媒体id,可以调用获取临时素材接口拉取数据。
msgid消息id,64位整型

进入会话事件

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

xml 格式

<xml>
    <tousername><![cdata[touser]]></tousername>  
    <fromusername><![cdata[fromuser]]></fromusername>  
    <createtime>1482048670</createtime>  
    <msgtype><![cdata[event]]></msgtype>  
    <event><![cdata[user_enter_tempsession]]></event>  
    <sessionfrom><![cdata[sessionfrom]]></sessionfrom> 
</xml>

json 格式

{
    "tousername": "touser",
    "fromusername": "fromuser",
    "createtime": 1482048670,
    "msgtype": "event",
    "event": "user_enter_tempsession",
    "sessionfrom": "sessionfrom"
}

参数说明

参数说明
tousername小程序的原始id
fromusername发送者的openid
createtime事件创建时间(整型)
msgtypeevent
event事件类型,user_enter_tempsession
sessionfrom开发者在客服会话按钮设置的sessionfrom参数

网站声明:
本站部分内容来自网络,如您发现本站内容
侵害到您的利益,请联系本站管理员处理。
联系站长
373515719@qq.com
关于本站:
编程参考手册