微信公眾平臺消息接口為開發者提供了壹種新的消息處理方式。可以通過申請消息接口打通。
申請消息接口的步驟:
1、點擊申請,如實填寫負責人姓名 、 手機號和郵箱,填寫網址url和token,其中token可由開發者可以任意填寫,用作生成簽名。
2、 網址接入
公眾平臺用戶提交信息後,我們將以GET請求方式請求到填寫的Url上,並且帶上四個參數:
* signature — 微信加密簽名
* timestamp — 時間戳
* nonce — 隨機數
* echostr — 隨機字符串
開發者通過檢驗signature對網址接入合法性進行校驗。若此次GET請求原樣返回echostr參數內容,則接入生效,否則接入失敗。驗證signature將結合開發者填寫的token參數、timestamp參數和nonce參數等,加密流程:
* 將token、timestamp、nonce三個參數進行字典序排序
* 將三個參數字符串拼接成壹個字符串進行SHA1加密
* 開發者獲得加密後的字符串可與signature對比,標識該請求來源於微信。 ?
?
3 、 消息推送
當普通微信用戶向公眾賬號發消息時,公眾平臺將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獲取
4、 消息回復
對於每壹個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/cgi-bin/?...?star=1]