发送消息---被动回复用户消息

对于每一个POST请求,开发者在响应包(Get)中返回特定XML结构,对该消息进行响应(现支持回复文本、图片、图文、语音、视频、音乐)。请注意,回复图片等多媒体消息时需要预先上传多媒体文件到微信服务器,只支持认证服务号。

微信服务器在五秒内收不到响应会断掉连接,并且重新发起请求,总共重试三次,如果在调试中,发现用户无法收到响应的消息,可以检查是否消息处理超时。

关于重试的消息排重,有msgid的消息推荐使用msgid排重。事件类型消息推荐使用FromUserName + CreateTime 排重。

发送被动响应消息其实并不是一种接口,而是对微信服务器发过来消息的一次回复,假如服务器无法保证在五秒内处理并回复,必须直接回复空串(是指回复一个空字符串,而不是一个XML结构体中content字段的内容为空,请切勿误解),微信服务器不会对此作任何处理,并且不会发起重试。。这种情况下,可以使用客服消息接口进行异步回复。

请开发者注意,一旦遇到以下情况,微信都会在公众号会话中,向用户下发系统提示“该公众号暂时无法提供服务,请稍后再试”:

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

各消息类型需要的XML数据包结构如下。

目录

回复文本消息

<xml>
<ToUserName><![CDATA[toUser]]></ToUserName>
<FromUserName><![CDATA[fromUser]]></FromUserName>
<CreateTime>12345678</CreateTime>
<MsgType><![CDATA[text]]></MsgType>
<Content><![CDATA[你好]]></Content>
</xml>
参数 是否必须 描述
ToUserName 接收方帐号(收到的OpenID)
FromUserName 开发者微信号
CreateTime 消息创建时间 (整型)
MsgType text
Content 回复的消息内容(换行:在content中能够换行,微信客户端就支持换行显示)

回复图片消息

<xml>
<ToUserName><![CDATA[toUser]]></ToUserName>
<FromUserName><![CDATA[fromUser]]></FromUserName>
<CreateTime>12345678</CreateTime>
<MsgType><![CDATA[image]]></MsgType>
<Image>
<MediaId><![CDATA[media_id]]></MediaId>
</Image>
</xml>
参数 是否必须 说明
ToUserName 接收方帐号(收到的OpenID)
FromUserName 开发者微信号
CreateTime 消息创建时间 (整型)
MsgType image
MediaId 通过上传多媒体文件,得到的id。

回复语音消息

<xml>
<ToUserName><![CDATA[toUser]]></ToUserName>
<FromUserName><![CDATA[fromUser]]></FromUserName>
<CreateTime>12345678</CreateTime>
<MsgType><![CDATA[voice]]></MsgType>
<Voice>
<MediaId><![CDATA[media_id]]></MediaId>
</Voice>
</xml>
参数 是否必须 说明
ToUserName 接收方帐号(收到的OpenID)
FromUserName 开发者微信号
CreateTime 消息创建时间戳 (整型)
MsgType 语音,voice
MediaId 通过上传多媒体文件,得到的id

回复视频消息

<xml>
<ToUserName><![CDATA[toUser]]></ToUserName>
<FromUserName><![CDATA[fromUser]]></FromUserName>
<CreateTime>12345678</CreateTime>
<MsgType><![CDATA[video]]></MsgType>
<Video>
<MediaId><![CDATA[media_id]]></MediaId>
<Title><![CDATA[title]]></Title>
<Description><![CDATA[description]]></Description>
</Video>
</xml>
参数 是否必须 说明
ToUserName 接收方帐号(收到的OpenID)
FromUserName 开发者微信号
CreateTime 消息创建时间 (整型)
MsgType video
MediaId 通过上传多媒体文件,得到的id
Title 视频消息的标题
Description 视频消息的描述

回复音乐消息

<xml>
<ToUserName><![CDATA[toUser]]></ToUserName>
<FromUserName><![CDATA[fromUser]]></FromUserName>
<CreateTime>12345678</CreateTime>
<MsgType><![CDATA[music]]></MsgType>
<Music>
<Title><![CDATA[TITLE]]></Title>
<Description><![CDATA[DESCRIPTION]]></Description>
<MusicUrl><![CDATA[MUSIC_Url]]></MusicUrl>
<HQMusicUrl><![CDATA[HQ_MUSIC_Url]]></HQMusicUrl>
<ThumbMediaId><![CDATA[media_id]]></ThumbMediaId>
</Music>
</xml>
参数 是否必须 说明
ToUserName 接收方帐号(收到的OpenID)
FromUserName 开发者微信号
CreateTime 消息创建时间 (整型)
MsgType music
Title 音乐标题
Description 音乐描述
MusicURL 音乐链接
HQMusicUrl 高质量音乐链接,WIFI环境优先使用该链接播放音乐
ThumbMediaId 缩略图的媒体id,通过上传多媒体文件,得到的id

回复图文消息

<xml>
<ToUserName><![CDATA[toUser]]></ToUserName>
<FromUserName><![CDATA[fromUser]]></FromUserName>
<CreateTime>12345678</CreateTime>
<MsgType><![CDATA[news]]></MsgType>
<ArticleCount>2</ArticleCount>
<Articles>
<item>
<Title><![CDATA[title1]]></Title>
<Description><![CDATA[description1]]></Description>
<PicUrl><![CDATA[picurl]]></PicUrl>
<Url><![CDATA[url]]></Url>
</item>
<item>
<Title><![CDATA[title]]></Title>
<Description><![CDATA[description]]></Description>
<PicUrl><![CDATA[picurl]]></PicUrl>
<Url><![CDATA[url]]></Url>
</item>
</Articles>
</xml> 
参数 是否必须 说明
ToUserName 接收方帐号(收到的OpenID)
FromUserName 开发者微信号
CreateTime 消息创建时间 (整型)
MsgType news
ArticleCount 图文消息个数,限制为10条以内
Articles 多条图文消息信息,默认第一个item为大图,注意,如果图文数超过10,则将会无响应
Title 图文消息标题
Description 图文消息描述
PicUrl 图片链接,支持JPG、PNG格式,较好的效果为大图360*200,小图200*200
Url 点击图文消息跳转链接
时间: 2024-10-10 01:32:38

发送消息---被动回复用户消息的相关文章

UNIGUI接收普通消息和被动回复用户消息

接收普通消息和被动回复用户消息 用户发送消息给公众号时(或某些特定的用户操作引发的事件推送时),会产生一个POST请求,开发者可以在响应包(Get)中返回特定XML结构,来对该消息进行响应(现支持回复文本.图片.图文.语音.视频.音乐).严格来说,发送被动响应消息其实并不是一种接口,而是对微信服务器发过来消息的一次回复. 假如服务器无法保证在五秒内处理并回复,必须做出下述回复,这样微信服务器才不会对此作任何处理,并且不会发起重试(这种情况下,可以使用客服消息接口进行异步回复),否则,将出现严重的

Delphi XE7 用indy开发微信公众平台(6)- 被动回复用户消息

被动回复用户消息 1.回复文本消息 function ReplyText(Msg: TMessage; MsgText: String): RawByteString; var X: IXMLDocument; begin X := NewXMLDocument; try X.Xml.text := TextMsg; X.Active := true; with X.DocumentElement.ChildNodes do begin Nodes['ToUserName'].NodeValue

微信被动回复用户消息-文本消息-填坑

一个大坑 private void replyTextMessage(Scan scan, HttpServletResponse response) { String reply = getReplyByInput(scan.getContent()); StringBuffer str = new StringBuffer(); str.append("<xml>"); str.append("<ToUserName><![CDATA[&qu

被动回复用户消息和关注事件推送

/** * @Author: itwo * @Date: 2016-07-18 11:04:35 * @Last Modified by: itwo * @Last Modified time: 2016-07-28 11:55:54 */ // 接收用户信息 // 微信公众账号接收用户的消息类型判断 define("TOKEN", "weixin"); $wechatObj = new wechatCallbackapiTest(); if(isset($_GET

被动回复用户消息

针对 图文消息的公告: 所以 即使我想要拿到多图文消息也不能了. 原文地址:https://www.cnblogs.com/ahMay/p/12036698.html

Java微信公众平台开发_03_消息管理之被动回复消息

GitHub源码:https://github.com/shirayner/weixin_gz 一.本节要点 1.回调url 上一节,我们启用服务器配置的时候,填写了一个服务器地址(url),如下图,这个url就是回调url,是开发者用来接收微信消息和事件的接口URL .也就是说,用户在微信公众号中发送的消息会被推送到这个回调url,而我们可以接收用户的消息,并进行回复. 2.被动回复消息的流程 官方文档: 我们在上一节中设置的消息加解密方式是安全模式.因此在用户发给公众号的消息(接收消息)以及

OYMLCN.WeChat.Core微信公众平台SDK核心库(被动回复模块)现已基本完成

NuGet包地址: https://www.nuget.org/packages/OYMLCN.WeChat.Core 由于来的OYMLCN.WeChat存在深度封装,并没有做完整的测试,对于使用不友好,现已重新构建SDK的接收消息被动回复模块. 现已做到最大程度的简易化及模块化,每个模块都已完成单元测试(根据微信说明文档的示例内容). 接下来将会重新构建微信接口的调用模块,将会在基本完成后发布. 类JQuery操作的方式将会在所有功能完善并完成测试以后再整合到OYMLCN.WeChat当中.

微信公众平台回复过了怎么不能再次回复?亲们要注意查看&quot;公众平台回复用户消息时限变更通知&quot;的公告啊

有网友一直在问“微信公众平台回复过了怎么不能再次回复?”,其实这个是微信公众平台订阅号设置的一个时间限制,一般都会提示:由于该用户48小时未与你互动,你不能再主动发消息给他.直到用户下次主动发消息给你才可以对其进行回复.” 48小时算比较长的了,最开始才24小时.2014年01月16日才延长的,以下是“公众平台回复用户消息时限变更通知”公告 公众平台回复用户消息时限将从24小时延长为48小时.用户向公众号发消息后的48小时内,公众号都可与之互动.与此同时,开发者使用客服消息接口回复用户消息的时限

用java开发微信公众号:接收和被动回复普通消息(三)

上篇说完了如何接入微信公众号,本文说一下微信公众号的最基本功能:普通消息的接收和回复.说到普通消息,那么什么是微信公众号所定义的普通消息呢,微信开发者文档中提到的接收的普通消息包括如下几类: 1.文本消息2.图片消息3.语音消息4.视频消息5.小视频消息6.地理位置消息7.链接消息(被动回复的消息) 被动回复的普通消息包括: 1.回复文本消息2.回复图片消息3.回复语音消息4.回复视频消息5.回复音乐消息6.回复图文消息 其实接收消息和被动回复消息这两个动作是不分家的,这本来就是一个交互场景,一