当前位置:K88软件开发文章中心编程全书微信小程序 → 文章内容

微信小程序API 接收消息和事件

减小字体 增大字体 作者:佚名  来源:网上搜集  发布时间:2019-1-15 15:01:24

由 ?﹏???ζ???﹏﹏? 创建,youj 最后一次修改 2016-12-27 接收消息和事件在页面中使用<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小程序的原始IDFromUserName发送者的openidCreateTime消息创建时间(整型)MsgTypetextContent文本消息内容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小程序的原始IDFromUserName发送者的openidCreateTime消息创建时间(整型)MsgTypeimagePicUrl图片链接(由系统生成)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小程序的原始IDFromUserName发送者的openidCreateTime事件创建时间(整型)MsgTypeeventEvent事件类型,user_enter_tempsessionSessionFrom开发者在客服会话按钮设置的sessionFrom参数

微信小程序API 接收消息和事件