1. 程式人生 > >微信公眾平臺訊息介面使用指南

微信公眾平臺訊息介面使用指南

一 、簡介

公眾平臺訊息介面為開發者提供了一種新的訊息處理方式。

二 、 申請訊息介面

點選申請,如實填寫負責人姓名 、 手機號和郵箱,填寫網址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]></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]></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:下載