国产av日韩一区二区三区精品,成人性爱视频在线观看,国产,欧美,日韩,一区,www.成色av久久成人,2222eeee成人天堂

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

高洛峰
發(fā)布: 2017-02-22 15:28:31
原創(chuàng)
1637人瀏覽過

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

一、公眾平臺(tái)的通訊過程

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

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

? ? 整個(gè)消息通訊流程如下圖:

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

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

  1. 接收來自2的XML信息

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

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

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

二、XML通訊格式

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

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

? ? 一個(gè)簡(jiǎn)單的文字請(qǐng)求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>
登錄后復(fù)制

  對(duì)應(yīng)節(jié)點(diǎn)的官方說明如下:

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

? ??

?

?

?

?

?

? ??

一個(gè)簡(jiǎn)單的文字返回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>
登錄后復(fù)制

  對(duì)應(yīng)節(jié)點(diǎn)的官方說明如下:

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

?

?

?

?

?

?


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

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

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

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

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

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

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

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

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

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

? ? 為此我做了一個(gè)開源項(xiàng)目:Senparc.Weixin.MP,地址:http://www.miracleart.cn/

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

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

  1. VS2012(至少VS2010 SP1);

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

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

?

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

微信app下載
微信app下載

微信是一款手機(jī)通信軟件,支持通過手機(jī)網(wǎng)絡(luò)發(fā)送語(yǔ)音短信、視頻、圖片和文字。微信可以單聊及群聊,還能根據(jù)地理位置找到附近的人,帶給大家全新的移動(dòng)溝通體驗(yàn),有需要的小伙伴快來保存下載體驗(yàn)吧!

下載
來源:php中文網(wǎng)
本文內(nèi)容由網(wǎng)友自發(fā)貢獻(xiàn),版權(quán)歸原作者所有,本站不承擔(dān)相應(yīng)法律責(zé)任。如您發(fā)現(xiàn)有涉嫌抄襲侵權(quán)的內(nèi)容,請(qǐng)聯(lián)系admin@php.cn
最新問題
開源免費(fèi)商場(chǎng)系統(tǒng)廣告
最新下載
更多>
網(wǎng)站特效
網(wǎng)站源碼
網(wǎng)站素材
前端模板
關(guān)于我們 免責(zé)申明 意見反饋 講師合作 廣告合作 最新更新
php中文網(wǎng):公益在線php培訓(xùn),幫助PHP學(xué)習(xí)者快速成長(zhǎng)!
關(guān)注服務(wù)號(hào) 技術(shù)交流群
PHP中文網(wǎng)訂閱號(hào)
每天精選資源文章推送
PHP中文網(wǎng)APP
隨時(shí)隨地碎片化學(xué)習(xí)
PHP中文網(wǎng)抖音號(hào)
發(fā)現(xiàn)有趣的

Copyright 2014-2025 http://www.miracleart.cn/ All Rights Reserved | php.cn | 湘ICP備2023035733號(hào)