Nodejs學習記錄:用koa.js開發微信公衆號

區別於網上不少教程,這裏咱們用Koa.js進行開發html

基本原理

  • 微信服務器就至關於一個轉發服務器,終端(手機、Pad等)發起請求至微信服務器,微信服務器,而後將請求轉發給自定義服務(這裏就是咱們的具體實現)。服務處理完畢,而後轉發給微信服務器,微信服務器再將具體響應回覆到終端;
  • 通訊協議爲:HTTP;
  • 數據格式爲:XML。

圖片描述
其實,咱們須要作的事情,就是對HTTP請求,作出響應。具體的請求內容,咱們按照特定的XML格式去解析,處理完畢後,也要按照特定的XML格式返回。node

平臺註冊

要想完成對微信公衆平臺的開發,咱們須要註冊一個微信公衆平臺賬號。註冊步驟以下:   打開微信公共平臺的官網,https://mp.weixin.qq.com/,點擊「當即註冊」。數據庫

而後根據提示,填寫基本信息,郵箱激活,選擇類型,信息登記,公衆號信息,完成註冊。json

在註冊完成之後,咱們要對公衆號進行一些基本的設置。登陸公衆號,找到【公衆號設置】,而後設置頭像以及其它信息。服務器

nodejs環境搭建

咱們須要在公網上找一臺服務器,以即可以啓動咱們的nodejs的環境,啓動環境後經過設置訪問地址,咱們就能夠接收微信服務器發送的消息了,而且咱們也能夠向微信服務器發送消息了。微信

在公網的服務器中安裝完成nodejs之後,咱們還須要安裝一些nodejs所用到的模塊:session

  • koa
  • koa-bodyparser
  • koa-router
  • koa-session
  • koa-static
  • request //http請求
  • sha1 //加密模塊
  • rowbody :微信開發

    • 下面會經過這個raw-body模塊,把this上的request對象也就是http模塊中的request對象,去拼裝它的數據,最終能夠拿到一個buffer的xml數據

微信開發者模式配置:

配置URL和token:app

圖片描述

首先URL要填寫公網上咱們安裝nodejs接收與發送數據的路徑。咱們能夠填寫【訪問測試】的地址,而後加上對應的路由就能夠了。微信公衆平臺

http://18948u0e32.imwork.net/

Token要與咱們自定義服務器端的token一致。填寫完成之後,就能夠點擊提交了,在提交之前,咱們啓動app.js(點擊【提交運行】)。這樣根據咱們的路由匹配就能夠驗證簽名是否有效了。

圖片描述

服務器配置(已啓用)

access_token:

  • 讓咱們的系統每隔2小時啓動去刷新一次票據,這樣不管什麼時候咱們內部調用接口,這個票據始終是最新的。
  • 爲了方便頻繁調用,咱們須要把票據儲存在一個地方,而且是惟一的一個地方。(數據庫或文件)

圖片描述

返回的數據

{"access_token":"4eEGodhnohrWKUGynL1Dgcyt-88HtE-7x1KtobAh_7jQvk8qD1ObUvd8dwqzNdfQHJi4LrhO8s55b27cJCID-Q0KXiP6PmYNoHR_pp2nZASQeEkBYiOLlnrAS1OyjYDkWSNfAEAOKF","expires_in":1512120482046}

微信服務器接入認證和自動回覆:

步驟:

  1. 處理POST類型的控制邏輯,接受一個XML的數據包(是的,不是json的,蛋疼)
  2. 解析這個數據包(得到數據包的消息類型或者事件類型)
  3. 拼裝出咱們定義好的消息
  4. 包裝成XML的格式
  5. 在5秒種內返回回去

 參考

用node.js進行微信公衆平臺的開發
基於Nodejs構建屬於本身的微信公衆號
慕課網 7天搞定Node.js微信公衆號
koa2 + co-wechat快速搭建微信公衆號對接服務
egg + co-wechat快速搭建微信公衆號對接服務

相關文章
相關標籤/搜索