亚洲国产日韩欧美一区二区三区,精品亚洲国产成人av在线,国产99视频精品免视看7,99国产精品久久久久久久成人热,欧美日韩亚洲国产综合乱

目錄
一、公眾平臺的通訊過程
二、XML通訊格式
三、一些需要注意和容易被忽視的問題:
四、工欲善其事,必先利其器:Senparc.Weixin.MP.dll
首頁 微信小程序 微信開發(fā) Senparc.Weixin.MP SDK 微信公眾平臺開發(fā)教程(二):成為開發(fā)者

Senparc.Weixin.MP SDK 微信公眾平臺開發(fā)教程(二):成為開發(fā)者

Feb 22, 2017 pm 03:28 PM
微信公眾平臺

? ? 我覺得做好成為開發(fā)者的準備比稀里糊涂開通微信后臺的“高級”功能更重要,所以這一節(jié)先放在前面說。

一、公眾平臺的通訊過程

? ? 作為開發(fā)者,我們需要面對的主要有兩個對象:微信服務(wù)器和應(yīng)用程序(網(wǎng)站)服務(wù)器。

? ? 當微信用戶向你的公眾平臺發(fā)送一條消息,實際上這條消息首先發(fā)送到微信服務(wù)器,由微信服務(wù)器向網(wǎng)站服務(wù)器發(fā)起另外一個請求,網(wǎng)站服務(wù)器返回這個請求的結(jié)果,再由微信服務(wù)器發(fā)送到微信客戶端。

? ? 整個消息通訊流程如下圖:

? ??Senparc.Weixin.MP SDK 微信公眾平臺開發(fā)教程(二):成為開發(fā)者

? ? 上述5個步驟中,作為開發(fā)者我們主要精力都集中在步驟3上,這個步驟主實際上要有3項任務(wù):

  1. 接收來自2的XML信息

  2. 服務(wù)器內(nèi)部邏輯執(zhí)行

  3. 組織并返回用于4的XML信息

? ? 上述三項任務(wù)我會在后面做詳細說明,并提供一整套簡單、高效的處理方法。

二、XML通訊格式

? ? 用戶使用微信客戶端發(fā)送的不同類型的消息,網(wǎng)站服務(wù)器會收到不同格式的數(shù)據(jù)(文字、語音、圖片等等),數(shù)據(jù)格式暫時只有XML一種。

? ? 作為學(xué)習,我覺得只要熟練掌握最簡單的文字類型就可以了,其他的格式都是大同小異。且在后面的說明中你會發(fā)現(xiàn),Senparc.Weixin.MP.dll可以幫助我們完全忽略這些繁瑣的格式和定義。

? ? 一個簡單的文字請求XML(RequestMessage)內(nèi)容如下:

<xml>
    <ToUserName><![CDATA[gh_a96a4a619366]]></ToUserName>
    <FromUserName><![CDATA[olPjZjsXuQPJoV0HlruZkNzKc91E]]></FromUserName>
    <CreateTime>1357986928</CreateTime>
    <MsgType><![CDATA[text]]></MsgType>
    <Content><![CDATA[TNT2]]></Content>
    <MsgId>5832509444155992350</MsgId>
</xml>

  對應(yīng)節(jié)點的官方說明如下:

參數(shù)描述
ToUserName開發(fā)者微信號
FromUserName發(fā)送方帳號(一個OpenID)
CreateTime消息創(chuàng)建時間 (整型)
MsgTypetext
Content文本消息內(nèi)容
MsgId消息id,64位整型

一個簡單的文字返回XML(ResponseMessage)內(nèi)容如下:

<xml>
   <ToUserName><![CDATA[olPjZjsXuQPJoV0HlruZkNzKc91E]]></ToUserName>
   <FromUserName><![CDATA[gh_a96a4a619366]]></FromUserName>
   <CreateTime>12345678</CreateTime>
   <MsgType><![CDATA[text]]></MsgType>
   <Content><![CDATA[content]]></Content>
   <FuncFlag>0</FuncFlag>
</xml>

  對應(yīng)節(jié)點的官方說明如下:

參數(shù) 描述
ToUserName 接收方帳號(收到的OpenID)
FromUserName 開發(fā)者微信號
CreateTime 消息創(chuàng)建時間
MsgType text
Content 回復(fù)的消息內(nèi)容,長度不超過2048字節(jié)
FuncFlag 位0x0001被標志時,星標剛收到的消息。

?

?

?

?

?

?


三、一些需要注意和容易被忽視的問題:

  1. 每條XML信息都有大小限制,如文本信息,建議Content內(nèi)容不要超過600字。

  2. 上圖中,步驟2開始之后,微信服務(wù)器有一個等待時間:5秒,如果在這個時間內(nèi)沒有進行到步驟4,那么這個請求將會被關(guān)閉(包括數(shù)據(jù)傳輸?shù)臅r間)。也就是說如果超過時間,即使網(wǎng)站服務(wù)器返回了數(shù)據(jù),客戶端也無法收到回復(fù)。

  3. 在文本消息中,是允許添加標簽來放置連接的,但是有許多朋友測試之后發(fā)現(xiàn)iOS沒問題,Android上鏈接無法點擊,其實原因是(至少目前為止):Android的微信客戶端對標簽格式的判定比較嚴格,請嚴格按照這個格式書寫:內(nèi)容,href后不要使用單引號,也不要添加其他屬性。

  4. 上面XML節(jié)點中的FromUserName即微信用戶的OpenId,對于同一個公眾賬號,這個OpenId的前6位是一致的,并且在整個公眾平臺的記錄中也是唯一的。也就是說同一個用戶關(guān)注了兩個不同的公眾賬號,他會有兩個不同的OpenId。

  5. CreateTime使用的是Unix時間,因此如果使用C#的話,需要做一個轉(zhuǎn)換。

  6. 盡量保持官方API中XML節(jié)點的順序,以前微信服務(wù)器是使用節(jié)點位置的方式讀取信息的(node[0]),而非節(jié)點名稱,現(xiàn)在這個問題似乎有好轉(zhuǎn),不過還是要小心(¥…………&%&……)。

  7. 由于這種特殊的通訊方式,(至少目前為止)所有請求必須從客戶端先發(fā)起,不要指望光使用API或SDK可以實現(xiàn)由網(wǎng)站服務(wù)器主動推送消息到客戶端(當然其他辦法還是有的,比如模擬登陸)。

四、工欲善其事,必先利其器:Senparc.Weixin.MP.dll

? ? 雖然整個通訊過程十分簡單,但是官方API還是對一些字段做了特殊的約定或處理,況且面向過程地處理這么多類型的請求數(shù)據(jù)也是一件十分費力的事情。

? ? 為此我做了一個開源項目:Senparc.Weixin.MP,地址:http://ipnx.cn/

? ? Senparc.Weixin.MP的主要目的是幫助C#開發(fā)者簡化整個通訊過程,面向?qū)ο蟮靥幚硐?,把主要精力放到業(yè)務(wù)邏輯上,而非繁瑣的API上。

? ? 使用Senparc.Weixin.MP,并部署到外網(wǎng)與微信服務(wù)器通訊,你需要準備這些環(huán)境:

  1. VS2012(至少VS2010 SP1);

  2. 如果需要運行MVC的Demo,至少需要.NET 4.0(安裝MVC 4),運行Webforms Demo,至少需要.NET 3.5;

  3. 一個可以使用80端口訪問的域名或IP,虛擬主機、花生殼映射內(nèi)網(wǎng)、VPS、獨立服務(wù)器都可以。

?

更多Senparc.Weixin.MP SDK 微信公眾平臺開發(fā)教程(二):成為開發(fā)者相關(guān)文章請關(guān)注PHP中文網(wǎng)!


本站聲明
本文內(nèi)容由網(wǎng)友自發(fā)貢獻,版權(quán)歸原作者所有,本站不承擔相應(yīng)法律責任。如您發(fā)現(xiàn)有涉嫌抄襲侵權(quán)的內(nèi)容,請聯(lián)系admin@php.cn

熱AI工具

Undress AI Tool

Undress AI Tool

免費脫衣服圖片

Undresser.AI Undress

Undresser.AI Undress

人工智能驅(qū)動的應(yīng)用程序,用于創(chuàng)建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用于從照片中去除衣服的在線人工智能工具。

Clothoff.io

Clothoff.io

AI脫衣機

Video Face Swap

Video Face Swap

使用我們完全免費的人工智能換臉工具輕松在任何視頻中換臉!

熱工具

記事本++7.3.1

記事本++7.3.1

好用且免費的代碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

功能強大的PHP集成開發(fā)環(huán)境

Dreamweaver CS6

Dreamweaver CS6

視覺化網(wǎng)頁開發(fā)工具

SublimeText3 Mac版

SublimeText3 Mac版

神級代碼編輯軟件(SublimeText3)

熱門話題

Laravel 教程
1597
29
PHP教程
1488
72