註冊的地址在 這裏javascript
要進行微信公衆號的開發,那就須要一個本地的開發環境來進行開發。而微信測試號就正好提供了這樣的一個development環境。每一個微信號只能對應一個測試號,可是每一個測試號能夠開發多個微信公衆號項目。微信號與測試號是一一對應的關係,而測試號與開發項目是一對多的關係。進入以後會看到頁面裏面有如下幾個大塊。java
下面針對每一個點介紹一下具體是幹嗎的。git
包含了appId、appsecret。像以前說的,能夠理解爲你的帳號和密碼。每一個測試號有一個惟一的appID和appsecret。通俗一點就是說,他們對應的就是惟一的帳號和密碼,並且不能修改。github
URL:面試
URL就是你正在開發的項目的後端的服務器中微信驗證服務器資源有效性的接口。前面這句話讀起來可能有些繞口。通俗一點理解:微信要知道訪問它資源是否是這個當前測試號。同時,也讓你肯定,這個請求是來自微信。這樣一來,就能夠相互確認身份。只有確認是當前測試號發起的請求,纔會放行。那麼問題來了,如何驗證呢?這個時候Token就有用了。小程序
微信會對配置的URL(也就是你的後端服務器的鑑權接口)發起http GET請求,下面是鑑權接口的代碼,這裏用koa看成例子。順便安利一波koa中巨(自)好(己)用(寫)的中間件 koa2-response。後端
const sha1 = require('sha1');
// 驗證服務器資源
exports.verification = (ctx, next) => {
const token = '你本身的Token';
const { signature, nonce, timestamp, echostr } = ctx.query;
const str = [token, timestamp, nonce].sort().join('');
const sha = sha1(str);
if (signature === sha) {
ctx.body = String(echostr);
}
}
複製代碼
說到驗證服務器資源的時候可能有些人會有疑問。開發不是在本地開發嗎?微信的服務器怎麼可以訪問個人本地服務器呢?api
若是要在本地開發的話,就須要使用 ngrok ,這個是用來實現內網穿透的。意思就是把你的局域網服務器ip映射到公網上。讓局域網外部的服務器能夠訪問你的服務器資源。下載地址在 這裏。下載下來以後解壓,就會獲得一個名字叫ngrok的可執行文件。用命令行進入可執行的文件所在的目錄。執行如下代碼。安全
./ngrok http localhost:3000
複製代碼
3000是端口號,根據你本身的項目端口號來。就能夠看到以下返回,此時你的局域網服務器就能夠接受微信的GET請求了。一旦配置成功後,就能夠Ctrl + C殺掉這個進程了。一直開着可能會有安全隱患。bash
Token:
Token是自定義的一個字符串。能夠理解爲對稱加密中的公鑰。在服務器中的Token須要跟測試號中的配置保持一致。
關於微信JS接口安全域名,大概的意思就是你要在特定的域名下的某個路由,才能使用微信的js-sdk,使用js-sdk能夠幹嗎呢,微信的官方描述以下。
微信JS-SDK是微信公衆平臺面向網頁開發者提供的基於微信內的網頁開發工具包。
經過使用微信JS-SDK,網頁開發者可藉助微信高效地使用拍照、選圖、語音、位置等手機系統的能力,同時能夠直接使用微信分享、掃一掃等微信特有的能力,爲微信用戶提供更優質的網頁體驗。
具體的接入流程能夠參考個人另外一篇文章, 如何正確的接入微信JS-SDK。在這須要設置一個域名,以便在開發的時候來使用微信的js-sdk。固然在本地開發時,通常都用的localhost,除非你在開發時一直使用內網穿透。因此在JS接口安全域名下咱們可使用局域網的ip,前提是已經驗證了服務器資源。
這裏會有一個你的測試號碼二維碼。若是要使用的話,須要掃碼關注公衆號才能進行開發。右側則是已經關注了該測試號的用戶,最多100個。關注後,該測試號會出如今訂閱號的列表中。
什麼是模板消息?微信的官方文檔以下。
模板消息僅用於公衆號向用戶發送重要的服務通知,只能用於符合其要求的服務場景中,如信用卡刷卡通知,商品購買成功通知等。不支持廣告等營銷類消息以及其它全部可能對用戶形成騷擾的消息。
其使用規則以下:
- 全部服務號均可以在功能->添加功能插件處看到申請模板消息功能的入口,但只有認證後的服務號才能夠申請模板消息的使用權限並得到該權限;
- 須要選擇公衆帳號服務所處的2個行業,每個月可更改1次所選行業;
- 在所選擇行業的模板庫中選用已有的模板進行調用;
- 每一個帳號能夠同時使用25個模板。
- 當前每一個帳號的模板消息的日調用上限爲10萬次,單個模板沒有特殊限制。【2014年11月18日將接口調用頻率從默認的日1萬次提高爲日10萬次,可在MP登陸後的開發者中心查看】。當帳號粉絲數超過10W/100W/1000W時,模板消息的日調用上限會相應提高,以公衆號MP後臺開發者中心頁面中標明的數字爲準。
下面舉個具體的例子,來源於微信的官方文檔。咱們想要發送模板消息,就必需要在測試號中新建模板消息。點擊模板消息接口中的新增測試模板接口。點擊以後就會看到以下的Modal框。
模板標題能夠隨便取,模板內容例子以下。
{{first.DATA}}
商品名稱:{{keyword1.DATA}}
面試時間:{{keyword2.DATA}}
面試地點:{{keyword3.DATA}}
{{remark.DATA}}
複製代碼
新建成功以後,就能夠在模板消息接口的中的列表看到。而後咱們須要往下面的URL發送POST請求。URL以下。
https://api.weixin.qq.com/cgi-bin/message/template/send?access_token=ACCESS_TOKEN
複製代碼
POST的完整數據以下:
{
"touser": "OPENID",
"template_id": "ngqIpbwh8bUfcSsECmogfXcV14J0tQlEpBO27izEYtY",
"url":"http://weixin.qq.com/download",
"miniprogram": {
"appid": "xiaochengxuappid12345",
"pagepath": "index?foo=bar",
},
"data": {
"first": {
"value": "恭喜你購買成功!",
"color": "#173177",
},
"keyword1": {
"value": "巧克力",
"color": "#173177",
},
"keyword2": {
"value": "39.8元",
"color": "#173177",
},
"keyword3": {
"value": "2014年9月22日",
"color": "#173177",
},
"remark": {
"value": "歡迎再次購買!",
"color": "#173177",
}
}
}
複製代碼
向上面的URL發送POST請求,特定的用戶就會在測試號中看到以下的消息提示。特定的用戶就是touser字段中OPENID所表明的用戶。若是用戶沒有關注該測試號,則不會收到該模板消息。template_id則填寫咱們以前新建的模板消息的id便可。
在文檔中,在此處給出了以下提示。
注:url和miniprogram都是非必填字段,若都不傳則模板無跳轉;若都傳,會優先跳轉至小程序。開發者可根據實際須要選擇其中一種跳轉方式便可。當用戶的微信客戶端版本不支持跳小程序時,將會跳轉至url。
POST數據中,url和miniprogram可填不填,只是會對模板的跳轉有影響,不影響模板消息的內容發送。
在這個部分,用表格的形式,列出了咱們可以使用的接口,以及該接口的權限。例如,獲取access_token每日的調用次數,上限爲2000。該部分分爲三個大塊。
對話服務
功能服務
網頁服務
我主要解釋一下網頁服務中的網頁帳號接口。點開後,就能夠看到能夠修改一個叫受權回調域名的字段。什麼叫作受權回調。
瞭解微信鑑權的老鐵應該知道,若是想要獲取微信中的用戶的信息,必需要通過微信的OAuth2.0網頁受權,微信會鑑定是否有獲取用戶信息的權限,若是有的話,就會帶上一個免登錄code,將code拼接到咱們傳的redirect_uri後,再進行重定向。而redirect_uri必須是在這配置的域名下的頁面,不然回調不成功,也不能獲取用戶的數據。
微信的測試號接入,關鍵的步驟實際上是在第二個接口配置信息中,只要正確的驗證了服務器資源,就基本上已經成功了。
若是須要參考如何接入微信的JS-SDK, 能夠看下面這篇文章。
歡迎光臨 我的博客