上万部爽片,立即观看,在线观看,日韩av无码久久精品免费,欧美性受xxxx喷潮,欧洲男同gay,日韩精品一区二区三区

十年專(zhuān)注于品牌網(wǎng)站建設(shè) 十余年專(zhuān)注于網(wǎng)站建設(shè)_小程序開(kāi)發(fā)_APP開(kāi)發(fā),低調(diào)、敢創(chuàng)新、有情懷!
南昌百恒網(wǎng)絡(luò)微信公眾號(hào) 掃一掃關(guān)注
小程序
tel-icon全國(guó)服務(wù)熱線(xiàn):400-680-9298,0791-88117053
掃一掃關(guān)注百恒網(wǎng)絡(luò)微信公眾號(hào)
掃一掃打開(kāi)百恒網(wǎng)絡(luò)微信小程序

百恒網(wǎng)絡(luò)

南昌百恒網(wǎng)絡(luò)

如何設(shè)置微信公眾號(hào)的被動(dòng)回復(fù)

百恒網(wǎng)絡(luò) 2017-03-21 6931

處理get請(qǐng)求是為了讓微信服務(wù)器和公眾號(hào)服務(wù)器接頭,說(shuō)白了就是對(duì)暗號(hào)的過(guò)程。微信服務(wù)器發(fā)過(guò)來(lái)一個(gè)“天王蓋地虎”,我們的公眾號(hào)服務(wù)器回一個(gè)“寶塔鎮(zhèn)河妖”,那肯定是不行的。完成這個(gè)過(guò)程要借助別人都不知道的token,如果請(qǐng)求中發(fā)過(guò)來(lái)的signature經(jīng)過(guò)驗(yàn)證是有效的,就把echostr還給它,如果無(wú)效,就回它“認(rèn)錯(cuò)人了吧!”。那如何正確的設(shè)置微信公眾號(hào)的被動(dòng)回復(fù),接下來(lái)南昌微信開(kāi)發(fā)公司--百恒網(wǎng)絡(luò)來(lái)詳細(xì)講解。

處理post請(qǐng)求是為了回應(yīng)用戶(hù)發(fā)過(guò)來(lái)的消息或觸發(fā)的事件,讓用戶(hù)能跟我們的公眾號(hào)服務(wù)器愉快地玩耍。但因?yàn)檫@些消息和事件是放在xml里發(fā)過(guò)來(lái)的,而且響應(yīng)的時(shí)候也要用xml格式封裝好,所以除了業(yè)務(wù)邏輯,還要處理xml的解析和封裝。

說(shuō)到xml解析,因?yàn)橛衑xpress-xml-bodyparser這樣的middleware存在,并且這個(gè)輪子也不在我們的學(xué)習(xí)范圍里,就拿過(guò)來(lái)直接用了。

除此之外,既然只有第二項(xiàng)的業(yè)務(wù)邏輯部分是不同的,那其他的部分我們就可以像webchat一樣,搞一個(gè)共用的庫(kù)。而我們對(duì)這個(gè)庫(kù)的要求也很簡(jiǎn)單:

能驗(yàn)證signature

能提供json格式的消息給我們

能把json格式的返回消息封裝成xml

而這個(gè)庫(kù)的用法,我們希望是:

在get請(qǐng)求處理函數(shù)中把驗(yàn)證signature需要的數(shù)據(jù)給它,讓它告訴我們true還是false

在post請(qǐng)求處理函數(shù)中把消息或事件給它,讓它把要返回的xml數(shù)據(jù)給我們

它在處理消息或事件時(shí),能調(diào)用我們提供的消息或事件處理函數(shù),給我們json格式的消息,接收我們函數(shù)返回的json結(jié)果

綜合上面這兩種考慮,用ES 6的類(lèi)實(shí)現(xiàn)模板方法模式。因?yàn)檫@個(gè)類(lèi)干的是為微信服務(wù)器提供服務(wù)的工作,決定管它叫Waiter。我們的Waiter類(lèi)有三個(gè)方法:

verifySignature:驗(yàn)證signature

process:處理接收到的消息,調(diào)用業(yè)務(wù)邏輯,將返回結(jié)果封裝成xml返回

populateReply:由process調(diào)用,子類(lèi)要實(shí)現(xiàn)的業(yè)務(wù)邏輯就放在這里

總體來(lái)說(shuō),完成后我們的應(yīng)用大概是下圖這個(gè)樣子的:

處理post請(qǐng)求流程圖

具體實(shí)現(xiàn)以keystone為基礎(chǔ),首先來(lái)看我們的路由定義:

路由定義

針對(duì)/api/weixin的post請(qǐng)求添加了中間件xmlparser。

verify的定義非常簡(jiǎn)單,只是調(diào)用waiter的verifySignature:

verify的定義

handle的定義更簡(jiǎn)單,把req交給waiter去process,得到結(jié)果,將響應(yīng)的Content-type設(shè)為xml,然后把reply send出去:

handle的定義

DWaiter是Waiter的子類(lèi),只實(shí)現(xiàn)了populateReply方法:

DWaiter

這個(gè)實(shí)現(xiàn)也很簡(jiǎn)單,只處理了文本、圖片和語(yǔ)音三種消息,收到什么就回復(fù)什么;其它的全不理。

最后是Waiter類(lèi):

Waiter類(lèi)

Waiter類(lèi)

Waiter類(lèi)

代碼非常簡(jiǎn)單直白,verifySignature跟webchat的是一樣一樣一樣的,process在簽名驗(yàn)證通過(guò)后,從req.body.xml中獲得解析好的消息或事件,交給populateReply,然后根據(jù)populateReply返回的消息類(lèi)型封裝成不同的xml數(shù)據(jù)。

本文僅限內(nèi)部技術(shù)人員學(xué)習(xí)交流,不得作于其他商業(yè)用途.希望此文對(duì)廣大技人員有所幫助。文章出自:南昌微信開(kāi)發(fā)公司-百恒網(wǎng)絡(luò):http://syshcw.cn

400-680-9298,0791-88117053
掃一掃關(guān)注百恒網(wǎng)絡(luò)微信公眾號(hào)
掃一掃打開(kāi)百恒網(wǎng)絡(luò)小程序

歡迎您的光顧,我們將竭誠(chéng)為您服務(wù)×

售前咨詢(xún) 售前咨詢(xún)
 
售前咨詢(xún) 售前咨詢(xún)
 
售前咨詢(xún) 售前咨詢(xún)
 
售前咨詢(xún) 售前咨詢(xún)
 
售前咨詢(xún) 售前咨詢(xún)
 
售后服務(wù) 售后服務(wù)
 
售后服務(wù) 售后服務(wù)
 
備案專(zhuān)線(xiàn) 備案專(zhuān)線(xiàn)
 
×