微信公眾平台消息接口API指南


 

下述文檔已過期,更加完整及詳細的請訪問  http://www.cnblogs.com/txw1958/p/wechat-tutorial.html

 

簡介

微信公眾平台消息接口為開發者提供了一種新的消息處理方式。微信公眾平台消息接口為開發者提供與用戶進行消息交互的能力。對於成功接入消息接口的微信公眾賬號,當用戶發消息給公眾號,微信公眾平台服務器會使用http請求對接入的網址進行消息推送,第三方服務器可通過響應包回復特定結構,從而達到回復消息的目的。

申請消息接口

點擊申請,填寫網址url和token,其中token可由開發者可以任意填寫,用作生成簽名。


填寫信息

網址接入

公眾平台用戶提交信息后,微信服務器將發送GET請求到填寫的URL上,並且帶上四個參數:

參數 描述
signature 微信加密簽名
timestamp 時間戳
nonce 隨機數
echostr 隨機字符串

開發者通過檢驗signature對請求進行校驗(下面有校驗方式)。若確認此次GET請求來自微信服務器,請原樣返回echostr參數內容,則接入生效,否則接入失敗。

signature結合了開發者填寫的token參數和請求中的timestamp參數、nonce參數。

加密/校驗流程:
1. 將token、timestamp、nonce三個參數進行字典序排序
2. 將三個參數字符串拼接成一個字符串進行sha1加密
3. 開發者獲得加密后的字符串可與signature對比,標識該請求來源於微信

消息推送

當普通微信用戶向公眾賬號發消息時,微信服務器將POST該消息到填寫的URL上。結構如下:

文本消息

 <xml>
 <ToUserName><![CDATA[toUser]]></ToUserName>
 <FromUserName><![CDATA[fromUser]]></FromUserName> 
 <CreateTime>1348831860</CreateTime>
 <MsgType><![CDATA[text]]></MsgType>
 <Content><![CDATA[this is a test]]></Content>
 <MsgId>1234567890123456</MsgId>
 </xml>
參數 描述
ToUserName 開發者微信號
FromUserName 發送方帳號(一個OpenID)
CreateTime 消息創建時間 (整型)
MsgType text
Content 文本消息內容
MsgId 消息id,64位整型

 

圖片消息

 <xml>
 <ToUserName><![CDATA[toUser]]></ToUserName>
 <FromUserName><![CDATA[fromUser]]></FromUserName>
 <CreateTime>1348831860</CreateTime>
 <MsgType><![CDATA[image]]></MsgType>
 <PicUrl><![CDATA[this is a url]></PicUrl>
 <MsgId>1234567890123456</MsgId>
 </xml>
參數 描述
ToUserName 開發者微信號
FromUserName 發送方帳號(一個OpenID)
CreateTime 消息創建時間 (整型)
MsgType image
PicUrl 圖片鏈接
MsgId 消息id,64位整型

 

地理位置消息

<xml>
<ToUserName><![CDATA[toUser]]></ToUserName>
<FromUserName><![CDATA[fromUser]]></FromUserName>
<CreateTime>1351776360</CreateTime>
<MsgType><![CDATA[location]]></MsgType>
<Location_X>23.134521</Location_X>
<Location_Y>113.358803</Location_Y>
<Scale>20</Scale>
<Label><![CDATA[位置信息]]></Label>
<MsgId>1234567890123456</MsgId>
</xml> 
參數 描述
ToUserName 開發者微信號
FromUserName 發送方帳號(一個OpenID)
CreateTime 消息創建時間 (整型)
MsgType location
Location_X 地理位置維度
Location_Y 地理位置經度
Scale 地圖縮放大小
Label 地理位置信息
MsgId 消息id,64位整型

 

鏈接消息

<xml>
<ToUserName><![CDATA[toUser]]></ToUserName>
<FromUserName><![CDATA[fromUser]]></FromUserName>
<CreateTime>1351776360</CreateTime>
<MsgType><![CDATA[link]]></MsgType>
<Title><![CDATA[公眾平台官網鏈接]]></Title>
<Description><![CDATA[公眾平台官網鏈接]]></Description>
<Url><![CDATA[url]]></Url>
<MsgId>1234567890123456</MsgId>
</xml> 
參數 描述
ToUserName 接收方微信號
FromUserName 發送方微信號,若為普通用戶,則是一個OpenID
CreateTime 消息創建時間
MsgType 消息類型,link
Title 消息標題
Description 消息描述
Url 消息鏈接
MsgId 消息id,64位整型

 

事件推送

事件推送只支持微信4.5版本,即將開放,敬請期待。

<xml>
<ToUserName><![CDATA[toUser]]></ToUserName>
<FromUserName><![CDATA[fromUser]]></FromUserName>
<CreateTime>123456789</CreateTime>
<MsgType><![CDATA[event]]></MsgType>
<Event><![CDATA[LOCATION]]></Event>
<Latitude>23.137466</Latitude>
<Longitude>113.352425</Longitude>
<Precision>119.385040</Precision>
</xml>
參數 描述
ToUserName 接收方微信號
FromUserName 發送方微信號,若為普通用戶,則是一個OpenID
CreateTime 消息創建時間
MsgType 消息類型,event
Event 事件類型,有ENTER(進入會話)和LOCATION(地理位置)
Latitude 地理位置維度,事件類型為LOCATION的時存在
Longitude 地理位置經度,事件類型為LOCATION的時存在
Precision 地理位置精度,事件類型為LOCATION的時存在

消息回復

對於每一個POST請求,開發者在響應包中返回特定xml結構,對該消息進行響應(現支持回復文本、圖文、語音、視頻、音樂和對收到的消息進行星標操作)。

微信服務器在五秒內收不到響應會斷掉連接。

回復xml結構如下:

回復文本消息

 <xml>
 <ToUserName><![CDATA[toUser]]></ToUserName>
 <FromUserName><![CDATA[fromUser]]></FromUserName>
 <CreateTime>12345678</CreateTime>
 <MsgType><![CDATA[text]]></MsgType>
 <Content><![CDATA[content]]></Content>
 <FuncFlag>0</FuncFlag>
 </xml>
參數 描述
ToUserName 接收方帳號(收到的OpenID)
FromUserName 開發者微信號
CreateTime 消息創建時間
MsgType text
Content 回復的消息內容
FuncFlag 位0x0001被標志時,星標剛收到的消息。

 

回復音樂消息

 <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>
 </Music>
 <FuncFlag>0</FuncFlag>
 </xml>
參數 描述
ToUserName 接收方帳號(收到的OpenID)
FromUserName 開發者微信號
CreateTime 消息創建時間
MsgType music
MusicUrl 音樂鏈接
HQMusicUrl 高質量音樂鏈接,WIFI環境優先使用該鏈接播放音樂
FuncFlag 位0x0001被標志時,星標剛收到的消息。

 

回復圖文消息

 <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>
 <FuncFlag>1</FuncFlag>
 </xml> 
參數 描述
ToUserName 接收方帳號(收到的OpenID)
FromUserName 開發者微信號
CreateTime 消息創建時間
MsgType news
ArticleCount 圖文消息個數,限制為10條以內
Articles 多條圖文消息信息,默認第一個item為大圖
Title 圖文消息標題
Description 圖文消息描述
PicUrl 圖片鏈接,支持JPG、PNG格式,較好的效果為大圖640*320,小圖80*80,限制圖片鏈接的域名需要與開發者填寫的基本資料中的Url一致
Url 點擊圖文消息跳轉鏈接

 

 

注意事項

1.用戶OpenID對一個公眾號是固定唯一的串

2.請使用80端口

3.用戶關注公眾號,微信公眾平台服務器推送一條內容為Hello2BizUser的文本消息到第三方服務器

 
 
 

 

更多教程及全部源代碼將在微信中陸續發布,請關注方倍工作室微信公眾平台賬號,然后回復“教程”。

 原文:http://www.cnblogs.com/txw1958/p/wechat-tutorial.html 

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM