egg + co-wechat快速搭建微信公眾號對接服務
開始寫業務
$ npm i -S koa co-wechat
因為co-wechat是個中介軟體,所以我們也把它放到middleware下面去,不過還需要進行一層封裝。
在app目錄下新建middleware目錄,並新建wechat.js檔案。
// app/middleware/wechat.js const wechat = require('co-wechat'); module.exports = (options, app) => { return wechat(options).middleware(async (message, ctx) => { // TODO }); };
因為co-wechat的呼叫還是有點跟標準不一樣的,只export整個包是不行的,要按如上封裝一下(參考使用koa的中介軟體)。TODO就是業務程式碼,後面還會把它豐富,並抽離到service。但是!!!!!由於後面還有一步微信驗證,所以這裡暫時還不能寫任何程式碼!!!不能寫任何程式碼!!!不能寫任何程式碼!!!
然後配置一下router,新增兩項
上面聲明瞭一個wechat變數,來返回一個接受了config引數的結果,其結果是個function,可參考co-wechat的說明去理解。下面的get、post都要繫結,是因為get用來通過微信後臺配置時候的驗證用的,post才是正常的業務邏輯,此處需要結合微信的文件去理解,不理解也沒關係,後面會有另外一篇純手動實現微信對接的文章去梳理。// app/router.js const wechat = app.middlewares.wechat({ token: '微信後臺配置', appid: '微信後臺提供', encodingAESKey: '微信後臺配置此時寫成空字串就行了' }); router.get('/wechat', wechat); router.post('/wechat', wechat);
最後,關掉egg的csrf
// config/config.default.js
config.security = {
csrf: {
enable: false,
ignoreJSON: true
}
};
OK,此時已經距離成功只有一步之遙了。開啟你自己的微信測試公眾號,在介面配置資訊修改裡填入資訊。記得開啟花生殼,url輸入花生殼裡對映的域名,別忘了在後面加上/wechat。如:http://yoururl.com/wechat點選“提交”,如果驗證成功,證明已經綁上了,如果不成功,請回頭走一遍每一個細節。如果繫結成功了,下面就可以寫一些真正的業務程式碼了。還記得上面提到的 app/middleware/wechat.js 裡面的 TODO部分嗎?可以往裡面加東西了。但是如果你還要重複上面的“介面配置資訊修改”操作,那麼記得把這部分暫時註釋掉。
編輯 app/middleware/wechat.js
// app/middleware/wechat.js
const wechat = require('co-wechat');
module.exports = (options, app) => {
return wechat(options).middleware(async (message, ctx) => {
// TODO
let { MsgType, Content } = message;
if (MsgType === 'text') {
let reply;
switch (Content) {
case '12345':
reply = '上山打老虎';
break;
case 'kiki':
reply = '是我媳婦';
break;
default:
const msgs = [
'我媳婦老漂亮了',
'我媳婦會做飯',
'我媳婦會煎藥',
'我媳婦吃的可多了',
'我媳婦可能睡了',
'我媳婦叫kiki',
'我媳婦會打太極拳',
'我媳婦總掉頭髮',
'我媳婦可愛哭了',
'我媳婦有點二'
];
let rand = Math.floor(Math.random() * msgs.length);
reply = msgs[rand];
}
return reply;
} else {
return '歡迎光臨';
}
});
};
然後就可以去公眾號裡發信息,各種調戲了。理論上,這部分業務程式碼應該抽到service裡面,包括之前的一些config資訊,也應該放到config裡面,此處就不做展開了,留給大家自由發揮吧。在正確的結果基礎上改,才知道自己哪裡寫的有問題不是。注意事項
最後重申一下注意事項:
- 除錯時記得開啟花生殼
- 本機的埠號要與內網穿透的埠號匹配上
- 記得把egg的csrf關掉
- 微信後臺的各種id、token要跟程式碼裡的對上
- 在微信後臺的“介面配置資訊修改”操作時,記得把業務程式碼先暫時註釋掉
相關推薦
egg + co-wechat快速搭建微信公眾號對接服務
開始寫業務$ npm i -S koa co-wechat因為co-wechat是個中介軟體,所以我們也把它放到middleware下面去,不過還需要進行一層封裝。在app目錄下新建middleware目錄,並新建wechat.js檔案。// app/middleware/wechat.js const we
koa2 + co-wechat快速搭建微信公眾號對接服務
準備工作測試公眾號,可用微信公眾平臺提供的測試號(介面測試號申請)node v7.6.0以上,koa2依賴async(koa中文官網)把測試公眾號的二維碼發給你的ta,啟動服務後開撩初始化專案並安裝依賴$ mkdir koa-wechat && cd koa-
用Java搭建微信公眾號(二)生成access_token
當自己的程式需要訪問微信的HTTP介面時,需要傳遞access_token作為校驗的引數。access_token需要通過APPID和APPSecret祕鑰來生成,有效期是7200秒,2小時。access_token最好是做成全域性變數共享,然後由一個執行緒定時去重新整理,這樣可以減少access_
django搭建微信公眾號後臺——自動回覆(7.20)
其實大部分還是依賴開發包,然後這個流程一直沒怎麼搞清楚所以略坑。 接入驗證的時候用的GET方法帶引數,接收引數然後驗證並返回echostr。 使用者向伺服器傳送訊息時,如果是明文傳送就直接request.body獲取xml包然後處理就好了,和GET的無關,如
nodejs + BAE 搭建微信公眾號開發平臺
閒來無事建立了一個微信公眾賬號,名曰“深圳生活小助手”, 關注的人不多,平時發一些深圳新聞,趣事啥的,為了豐富公眾號的內容,準備新增一些便民查詢功能,例如天氣預報、快遞查詢等等。 於是就有了本文的內容。 深圳的讀者掃描關注支援下啊。。。 閒話不多說,本文主要介紹的就
Python-快速實現微信公眾號自動回覆(聊天機器人)
原理:通過微信公眾號提供的開發者模式,利用Python搭建環境,實現自動回覆,回覆內容通過呼叫圖靈機器人的API 配置:伺服器(這裡是阿里雲主機,Ubuntu),公眾號,圖靈機器人 一,公眾平臺上進行開發配置 三種加密方式,按需選擇。第一種最簡單,最不安全(我這裡選擇的第
搭建微信公眾號測試環境
1.需要一個外網對映內網地址,我是用natapp工具,花錢買了一個月的外網固定域名 window系統直接雙擊執行natapp.exe,2.註冊微信測試號 https://mp.weixin.qq.com/debug/cgi-bin/sandboxinfo3.改變ap
樹莓派與微信公眾號對接(python)
需要 lan upd alt cnblogs col spa render 80端口 一 內網穿透,讓外網可以訪問樹莓派 二 樹莓派對接微信 需要安裝webpy和python-lxml git clonegit://github.com/webpy/webpy.git
搭建微信訂閱號後臺服務(筆記)
準備域名 微信公眾平臺需要配置伺服器地址 URL 訪問,在實驗開始之前,我們要準備域名。 域名註冊 如果您還沒有域名,可以在騰訊雲上選購,過程可以參考下面的視訊。 域名解析 域名購買完成後, 需要將域名解析到實驗雲主機上,實驗雲主機的 IP 為: <您的 CVM IP 地址&g
微信公眾號 - 網頁服務 - 分享介面
需要有一個認證的微信公眾號,訂閱號、服務號都可以,主體不能是”個人“ 需要有一個域名,域名不能含有中文,域名需要備案 目錄 一、公眾號與域名繫結 二、 IP白名單 三、準備工作 3.1 引入JS檔案 四、 後端(.net)生成需要的引數 4.1 獲取a
微信公眾號(服務號)接入開發(2)之微信授權登陸
如果使用者在微信客戶端中訪問第三方網頁,公眾號可以通過微信網頁授權機制,來獲取使用者基本資訊,進而實現業務邏輯。 1. 授權回撥域名的說明: (1)、這裡填寫的是域名(是一個字串),而不是URL,因此請勿加http://等協議頭; (2)、授權
微信公眾號對接第三方平臺開發
前言 微信公眾號對接第三方開發的前提就是授權。首先是開通開放平臺。開通時填寫資料包括公司資訊,還需要300大洋。開放平臺包括移動應用、網站應用、公眾號賬號、小程式、第三方平臺。這裡我們開通第三方平臺。 &nb
微信公眾號對接淘寶客系統,淘口令解析
現在大家做淘寶客公眾號的比較多,最近也是開發了淘寶客系統,解析淘口令也算是比較煩心的一件事了。直接上思路+程式碼,不囉嗦。 首先我們判斷,使用者傳送的訊息中是否含有https://m.tb.cn,一般淘口令複製出來都是這個連結 if( Content.indexOf("https://m
微信公眾號對接
<?php class UserAction extends Action { //獲取微信網頁授權 public function wechatLogin(){ $state=$_GET['state']; if(!isset($state) || empty($state)){ $st
微信公眾號接入服務器驗證(Go實現)
value 實現 checkout 微信公眾號 view -o ack nsh array 1 基本流程 將token、timestamp、nonce三個參數進行字典序排序 將三個參數字符串拼接成一個字符串進行sha1加密 開發者獲得加密後的字符串可與signature對
微信公眾號對接第三方平臺(全網釋出 java)
目錄 目錄 背景 第三方平臺 程式碼開發 結束語 背景 由於平臺對接的使用者不斷增加,微信會進行一個檢測。如果你對接的微信公眾平臺多次使用同一個地址進行開發者對接。那麼它會認為你這個網站存在風險-官方解釋,或者你對接微信公眾號平臺
Python快速搭建自動回覆微信公眾號
Python快速搭建自動回覆微信公眾號 在之前的一篇文章 Python利用 AIML 和 Tornado 搭建聊天機器人微信訂閱號 中用 aiml 實現了一個簡單的英文聊天機器人訂閱號。但是隻能處理英文訊息,現在用 圖靈機器人 來實現一箇中文的聊天機器人訂閱號。 這裡主要介紹如何
java實現微信公眾號房卡牛牛六人平臺開發搭建文章采集接口程序
package ecs util 系統 public address 用戶id 狀態 get 日誌實體類,用戶記錄用戶登錄登出 LogRec.javapackage q.dms.test; import java.util.Date; /** 實體類 包含用戶登錄的id,
php之微信公眾號開發三公牛牛房卡平臺搭建使用php7要註意的地方
mar shadow 公眾號開發 jpg oss 文檔 微信公眾號開發 dem proc 開啟微信公眾號開發三公牛牛房卡平臺搭建網站(h5.fanshubbs.com聯系Q1687054422),從微信開發文檔中下載demo 如下載php示例代碼 示例代碼中是使用“$GL
利用微信公眾號快速推廣APP應用
一鍵 競爭 展現 就是 公眾 不但 留住 內部 粉絲 在APP推廣工作中,新媒體起到了至關重要的作用。新媒體對於信息傳播的快速、高效、多元化,可以很好地將APP平臺的功能、服務、資訊、活動等內容傳遞給用戶群體,並且在用戶中匯聚成完整的品牌內涵。 新媒體也即用數字化