微信公眾平台消息接口使用指南
一 、簡介
公眾平台消息接口為開發者提供了一種新的消息處理方式。
二 、 申請消息接口
點擊申請,如實填寫負責人姓名 、 手機號和郵箱,填寫網址url和token,其中token可由開發者可以任意填寫,用作生成簽名。
三 、 網址接入
公眾平台用戶提交信息后,我們將以GET請求方式請求到填寫的Url上,並且帶上四個參數:
* signature — 微信加密簽名
* timestamp — 時間戳
* nonce — 隨機數
* echostr — 隨機字符串
開發者通過檢驗signature對網址接入合法性進行校驗。若此次GET請求原樣返回echostr參數內容,則接入生效,否則接入失敗。 驗證signature將結合開發者填寫的token參數、timestamp參數和nonce參數等,加密流程:
* 將token、timestamp、nonce三個參數進行字典序排序
* 將三個參數字符串拼接成一個字符串進行sha1加密
* 開發者獲得加密后的字符串可與signature對比,標識該請求來源於微信。
四 、 消息推送
當普通微信用戶向公眾賬號發消息時,公眾平台將POST該消息到填寫的Url上(現支持文本消息以及地理位置消息)。結構如下:
文本消息xml格式
<xml> <ToUserName><![CDATA[toUser]]></ToUserName> <FromUserName><![CDATA[fromUser]]></FromUserName> <CreateTime>1348831860</CreateTime> <MsgType><![CDATA[text]]></MsgType> <Content><![CDATA[this is a test]]></Content> </xml>
ToUserName 消息接收方微信號,一般為公眾平台賬號微信號
FromUserName 消息發送方微信號
CreateTime 消息創建時間
MsgType 文本消息為text
Content 消息內容
地理位置消息xml格式
<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> </xml>
ToUserName 消息接收方微信號,一般為公眾平台賬號微信號
FromUserName 消息發送方微信號
CreateTime 消息創建時間
MsgType 消息類型,地理位置為location
Location_X 地理位置緯度
Location_Y 地理位置經度
Scale 地圖縮放大小
Label 地理位置信息
圖片消息結構
<xml> <ToUserName><![CDATA[toUser]]></ToUserName> <FromUserName><![CDATA[fromUser]]></FromUserName> <CreateTime>1348831860</CreateTime> <MsgType><![CDATA[image]]></MsgType> <PicUrl><![CDATA[this is a url]></PicUrl> </xml>
ToUserName 消息接收方微信號,一般為公眾平台賬號微信號
FromUserName 消息發送方微信號
CreateTime 消息創建時間
MsgType 消息類型image
PicUrl 圖片鏈接,開發者可以用HTTP GET獲取
五 、 消息回復
對於每一個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>
FromUserName 消息發送方
ToUserName 消息接收方
CreateTime 消息創建時間
MsgType 消息類型,文本消息必須填寫text
Content 消息內容,大小限制在2048字節,字段為空為不合法請求
回復圖文消息格式
<xml> <ToUserName><![CDATA[toUser]]></ToUserName> <FromUserName><![CDATA[fromUser]]></FromUserName> <CreateTime>12345678</CreateTime> <MsgType><![CDATA[news]]></MsgType> <Content><![CDATA[]]></Content> <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>
FromUserName 消息發送方
ToUserName 消息接收方
CreateTime 消息創建時間
MsgType 消息類型,圖文消息必須填寫news
Content 消息內容,圖文消息可填空
ArticleCount 圖文消息個數,限制為10條以內
Articles 多條圖文消息信息,默認第一個item為大圖
Title 圖文消息標題
Description 圖文消息描述
PicUrl 圖片鏈接,支持JPG、PNG格式,較好的效果為大圖640*320,小圖80*80,限制圖片鏈接的域名需要與開發者填寫的基本資料中的Url一致
Url 點擊圖文消息跳轉鏈接
星標消息
在xml結構中,有一個FuncFlag字段,開發者可以通過填寫FuncFlag字段為1來對消息進行星標,你可以在實時消息的星標消息分類中找到該消息
六 、 示例代碼
PHP:下載