由於測試賬號權限下的JS-SDK功能基本全部測試完成,其他開發步驟與普通移動端開發過程一樣,因此微信網頁開發告一段落~
進入正題:
現在貌似大夥們把微信網頁開發 與 公衆號服務開發都歸於 微信公衆號(一類) 開發,我個人暫且分爲兩類。現在開始 公衆號服務開發。
個人定義:在通過用戶向 訂閱號(個人號) 發送的文本內容,來判斷用戶想要的功能點,稱公衆號服務開發。【這個純屬瞎扯,無需在意】
開始開發:
1、登錄’微信公衆平臺‘——’基本配置‘——點擊 啓用 服務器配置【需要的參數如下】
2、填寫號上面的參數後,再寫一個服務端的接口就OK了(目的:驗證開發者服務器)。
接入說明文檔在這裏:用力點我,沒幾行描述,看一遍就懂。
這裏用Node.js實現,實現過程簡單易懂,比微信網頁開發坑少了很多,幾乎沒坑:
Nginx反向代理到本地的設置:
注意: 此次開發同微信網頁開發已穿透到本地。詳見我的另一篇文章:https://www.jianshu.com/p/4c9f295fb84c
location /wx/ {
proxy_pass http://127.0.0.1:9080/; # 暫是代理到9080穿透本地,原爲9001
}
service.js入口文件代碼,沒幾行。。。
const express = require('express')
const app = express()
const wxgongzh = require('./routers/wxgongzh')
// 微信公衆號服務
app.use('/wxgongzh', wxgongzh)
app.listen(9080, () => {
console.log('服務啓動成功:http://localhost:9080')
})
主要實現微信驗證開者服務器的代碼:
const router = require('express').Router()
const sha1 = require('sha1')
const wxConfig = require('../config/wxConfig')
router.get('/', (req, res) => {
console.log(req.query)
let { signature, echostr, timestamp, nonce } = req.query
let { token } = wxConfig
// 做字典序排序(將token、timestamp、nonce三個參數進行字典序排序)
let tempArr = [token, timestamp, nonce]
tempArr.sort() // sort排序會直接改變原數組,至此字典序排序完成
// 進行sha1加密
let selfSignature = sha1(tempArr.join(''))
console.log(signature)
console.log(selfSignature)
// 如果自己進行加密後的signature與微信請求過來的signature相同,則把 ‘echostr’ 字段返回回去即可驗證成功
if(selfSignature === signature) res.send(echostr)
if(selfSignature !== signature) res.send('失敗')
})
module.exports = router
建立驗證完成了,可以開心的進行功能上的開發了,biubiubiu~~~
用於驗證的代碼編寫完成後,再回到微信公衆平臺——填寫服務器配置,點擊 “提交”,提示如下即可: