當使用者傳送訊息給公眾號碼時(或某些特定的使用者操作引發的事件推送時),會產生一個POST請求,開發者可以在回應套件(Get)中傳回特定XML結構,來對此訊息進行回應(現支援回覆文字、圖片、圖文、語音、影片、音樂)。嚴格來說,發送被動回應訊息其實不是一種接口,而是對微信伺服器發過來訊息的回覆。
微信伺服器在將使用者的訊息發給公眾號的開發者伺服器位址(開發者中心處配置)後,微信伺服器在五秒內收不到回應會斷掉連接,並且重新發起請求,總共重試三次,如果在偵錯中,發現用戶無法收到回應的訊息,可以檢查是否訊息處理逾時。關於重試的消息排重,有msgid的消息推薦使用msgid排重。事件類型訊息推薦使用FromUserName CreateTime 排重。
如果開發者希望增強安全性,可以在開發者中心處開啟訊息加密,這樣,用戶發給公眾號的訊息以及公眾號被動回覆用戶訊息都會繼續加密(但),詳見被動回覆訊息加解密說明。
假如伺服器無法保證在五秒內處理並回复,必須做出下述回复,這樣微信伺服器才不會對此作任何處理,並且不會發起重試(這種情況下,可以使用客服訊息介面進行非同步回覆),否則,將出現嚴重的錯誤提示。詳見下方說明:
1、直接回覆success(推薦方式) #2、直接回覆空白字串(指位元組長度為0的空字串,而不是XML結構體中content字段的內容為空) |
#一旦遇到以下情況,微信都會在公眾號碼會話中,向使用者下發系統提示「該公眾號暫時無法提供服務,請稍後再試」:
1、開發者在5秒內未回覆任何內容 2.開發者回覆了異常數據,例如JSON數據等 |
#
另外,請注意,回覆圖片等多媒體訊息時需要預先透過素材管理介面上傳臨時素材到微信伺服器,可以使用素材管理中的暫存素材,也可以使用永久素材。
回覆文字訊息
#<xml> <ToUserName><! [CDATA[toUser]]></ToUserName> <FromUserName><![CDATA[fromUser]]></FromUserName> <CreateTime>1234567;1234567 ;/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 | #否 | 音樂描述 |
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 | | |