微信公眾平臺訊息介面使用指南
阿新 • • 發佈:2019-02-09
一 、簡介
公眾平臺訊息介面為開發者提供了一種新的訊息處理方式。
二 、 申請訊息介面
點選申請,如實填寫負責人姓名 、 手機號和郵箱,填寫網址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:下載