溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

微信公眾平臺開發中的基本原理及消息接口是怎樣的

發布時間:2021-09-16 14:02:31 來源:億速云 閱讀:164 作者:柒染 欄目:開發技術

微信公眾平臺開發中的基本原理及消息接口是怎樣的,很多新手對此不是很清楚,為了幫助大家解決這個難題,下面小編將為大家詳細講解,有這方面需求的人可以來學習下,希望你能有所收獲。

一、基本原理

在開始做之前,大家可能對這個很感興趣,但是又比較茫然。是不是很復雜?很難學???

其實恰恰相反,很簡單。為了打消大家的顧慮,先簡單介紹了微信公眾平臺的基本原理。

微信服務器就相當于一個轉發服務器,終端(手機、Pad等)發起請求至微信服務器,微信服務器,然后將請求轉發給自定義服務。

服務處理完畢,然后揮發給微信服務器,微信服務器再將具體響應回復到終端。

通信協議為:HTTP

數據格式為:XML

具體的流程如下圖所示:

微信公眾平臺開發中的基本原理及消息接口是怎樣的

其實,我們需要做的事情,就是對HTTP請求,做出響應。

具體的請求內容,我們按照特定的XML格式去解析,處理完畢后,也要按照特定的XML格式返回。

我們只需要一個簡單的實現HttpHandler即可。

當然,微信平臺還能實現更加復雜的業務,比如微信可以作為內嵌的瀏覽器,我們可以通過微信的鏈接,打開htm界面,然后實現自己的邏輯。

 二、消息接口(官方文檔)

申請消息接口

點擊申請 ,填寫網址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消息創建時間 (整型)
MsgTypetext
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消息創建時間 (整型)
MsgTypeimage
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消息創建時間 (整型)
MsgTypelocation
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[EVENT]]></Event>
<EventKey><![CDATA[EVENTKEY]]></EventKey>
</xml>
參數描述
ToUserName接收方微信號
FromUserName發送方微信號,若為普通用戶,則是一個OpenID
CreateTime消息創建時間
MsgType消息類型,event
Event事件類型,subscribe(訂閱)、unsubscribe(取消訂閱)、CLICK(自定義菜單點擊事件)
EventKey事件KEY值,與自定義菜單接口中KEY值對應

消息回復

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

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

回復xml結構如下:

回復文本消息

 <xml>
 <ToUserName><![CDATA[toUser]]></ToUserName>
 <FromUserName><![CDATA[fromUser]]></FromUserName>
 <CreateTime>12345678</CreateTime>
 <MsgType><![CDATA[text]]></MsgType>
 <Content><![CDATA[content]]></Content>
 </xml>
參數描述
ToUserName接收方帳號(收到的OpenID)
FromUserName開發者微信號
CreateTime消息創建時間
MsgTypetext
Content回復的消息內容,長度不超過2048字節

回復音樂消息

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

回復圖文消息

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

官方接口文檔:http://mp.weixin.qq.com/wiki/index.php?title=%E6%B6%88%E6%81%AF%E6%8E%A5%E5%8F%A3%E6%8C%87%E5%8D%97

注意事項

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

2.請使用80端口

盡請關注:后續我們將全面講解具體的開發過程。

三、消息類圖

微信公眾平臺開發中的基本原理及消息接口是怎樣的

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持億速云。

看完上述內容是否對您有幫助呢?如果還想對相關知識有進一步的了解或閱讀更多相關文章,請關注億速云行業資訊頻道,感謝您對億速云的支持。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

亚洲午夜精品一区二区_中文无码日韩欧免_久久香蕉精品视频_欧美主播一区二区三区美女