十年專注于品牌網站建設 十余年專注于網站建設_小程序開發_APP開發,低調、敢創新、有情懷!
      南昌百恒網絡微信公眾號 掃一掃關注
      小程序
      tel-icon全國服務熱線:400-680-9298,0791-88117053
      掃一掃關注百恒網絡微信公眾號
      掃一掃打開百恒網絡微信小程序

      百恒網絡

      南昌百恒網絡

      如何設置微信公眾號的被動回復

      百恒網絡 2017-03-21 7096

      處理get請求是為了讓微信服務器和公眾號服務器接頭,說白了就是對暗號的過程。微信服務器發過來一個“天王蓋地虎”,我們的公眾號服務器回一個“寶塔鎮河妖”,那肯定是不行的。完成這個過程要借助別人都不知道的token,如果請求中發過來的signature經過驗證是有效的,就把echostr還給它,如果無效,就回它“認錯人了吧!”。那如何正確的設置微信公眾號的被動回復,接下來南昌微信開發公司--百恒網絡來詳細講解。

      處理post請求是為了回應用戶發過來的消息或觸發的事件,讓用戶能跟我們的公眾號服務器愉快地玩耍。但因為這些消息和事件是放在xml里發過來的,而且響應的時候也要用xml格式封裝好,所以除了業務邏輯,還要處理xml的解析和封裝。

      說到xml解析,因為有express-xml-bodyparser這樣的middleware存在,并且這個輪子也不在我們的學習范圍里,就拿過來直接用了。

      除此之外,既然只有第二項的業務邏輯部分是不同的,那其他的部分我們就可以像webchat一樣,搞一個共用的庫。而我們對這個庫的要求也很簡單:

      能驗證signature

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

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

      而這個庫的用法,我們希望是:

      在get請求處理函數中把驗證signature需要的數據給它,讓它告訴我們true還是false

      在post請求處理函數中把消息或事件給它,讓它把要返回的xml數據給我們

      它在處理消息或事件時,能調用我們提供的消息或事件處理函數,給我們json格式的消息,接收我們函數返回的json結果

      綜合上面這兩種考慮,用ES 6的類實現模板方法模式。因為這個類干的是為微信服務器提供服務的工作,決定管它叫Waiter。我們的Waiter類有三個方法:

      verifySignature:驗證signature

      process:處理接收到的消息,調用業務邏輯,將返回結果封裝成xml返回

      populateReply:由process調用,子類要實現的業務邏輯就放在這里

      總體來說,完成后我們的應用大概是下圖這個樣子的:

      處理post請求流程圖

      具體實現以keystone為基礎,首先來看我們的路由定義:

      路由定義

      針對/api/weixin的post請求添加了中間件xmlparser。

      verify的定義非常簡單,只是調用waiter的verifySignature:

      verify的定義

      handle的定義更簡單,把req交給waiter去process,得到結果,將響應的Content-type設為xml,然后把reply send出去:

      handle的定義

      DWaiter是Waiter的子類,只實現了populateReply方法:

      DWaiter

      這個實現也很簡單,只處理了文本、圖片和語音三種消息,收到什么就回復什么;其它的全不理。

      最后是Waiter類:

      Waiter類

      Waiter類

      Waiter類

      代碼非常簡單直白,verifySignature跟webchat的是一樣一樣一樣的,process在簽名驗證通過后,從req.body.xml中獲得解析好的消息或事件,交給populateReply,然后根據populateReply返回的消息類型封裝成不同的xml數據。

      本文僅限內部技術人員學習交流,不得作于其他商業用途.希望此文對廣大技人員有所幫助。文章出自:南昌微信開發公司-百恒網絡:http://www.dgscpc.com

      400-680-9298,0791-88117053
      掃一掃關注百恒網絡微信公眾號
      掃一掃打開百恒網絡小程序

      歡迎您的光顧,我們將竭誠為您服務×

      售前咨詢 售前咨詢
       
      售前咨詢 售前咨詢
       
      售前咨詢 售前咨詢
       
      售前咨詢 售前咨詢
       
      售前咨詢 售前咨詢
       
      售后服務 售后服務
       
      售后服務 售后服務
       
      備案專線 備案專線
       
      ×
      国产色精品vr一区区三区| 欧美日韩一区二区成人午夜电影| 99在线观看精品| 亚洲精品无码久久千人斩| 亚洲国产精品成人网址天堂| 日韩精品视频在线观看免费| 国内精品一区二区三区在线观看| 国产精品自拍一区| 久久无码国产专区精品| 无码aⅴ精品一区二区三区浪潮 | 久久免费视频精品| 国产色婷婷五月精品综合在线| 精品国产一级在线观看| www.99精品| www亚洲精品少妇裸乳一区二区| 日韩精品福利视频一区二区三区 | 国产精品亚洲精品日韩动图| 一区二区三区日韩| 依依成人精品视频在线观看| 国产精品青草久久| 97超碰精品成人国产| 欧美精品VIDEOSEX性欧美| 国产主播精品在线| 国产精品久久久久免费a∨| 四虎亚洲精品高清在线观看 | 亚洲日韩中文字幕| 亚洲精品国产日韩| 日韩欧美亚洲国产精品字幕久久久| 日韩av.com| 亚洲日韩国产一区二区三区在线 | 国产精品男男视频一区二区三区| xxx国产精品xxx| 国产精品高清在线观看| 久久成人国产精品一区二区| 久久99精品久久久久久9蜜桃| 精品无码国产自产拍在线观看蜜| 精品人妻少妇一区二区三区| 中文国产成人精品久久久| 日产精品一线二线三线京东| 99久久国产宗和精品1上映| 亚洲精品无码午夜福利中文字幕|