成人午夜视频全免费观看高清-秋霞福利视频一区二区三区-国产精品久久久久电影小说-亚洲不卡区三一区三区一区

nodejs微信開發(fā)之接入的示例分析-創(chuàng)新互聯(lián)

這篇文章主要為大家展示了“nodejs微信開發(fā)之接入的示例分析”,內(nèi)容簡而易懂,條理清晰,希望能夠幫助大家解決疑惑,下面讓小編帶領(lǐng)大家一起研究并學(xué)習(xí)一下“nodejs微信開發(fā)之接入的示例分析”這篇文章吧。

網(wǎng)站建設(shè)公司,為您提供網(wǎng)站建設(shè),網(wǎng)站制作,網(wǎng)頁設(shè)計及定制網(wǎng)站建設(shè)服務(wù),專注于成都企業(yè)網(wǎng)站建設(shè),高端網(wǎng)頁制作,對成都石涼亭等多個行業(yè)擁有豐富的網(wǎng)站建設(shè)經(jīng)驗(yàn)的網(wǎng)站建設(shè)公司。專業(yè)網(wǎng)站設(shè)計,網(wǎng)站優(yōu)化推廣哪家好,專業(yè)營銷推廣優(yōu)化,H5建站,響應(yīng)式網(wǎng)站。

內(nèi)網(wǎng)穿透

由于微信開發(fā)的端口必須是80(最近貌似增加了443),所以一個內(nèi)網(wǎng)穿透工具還是很有必要的。我個人使用的是qq瀏覽器微信調(diào)試工具。

nodejs微信開發(fā)之接入的示例分析
我也推薦這個,畢竟一家的。
但是也有其他的選擇:

花生殼
這個速度還可以,但是只有window客戶端的,貌似還可以折騰路由器那邊的東西,我也沒深入折騰。

nat123
與花生殼類似,但是速度著實(shí)不太給力。經(jīng)常配置錯誤。說是免費(fèi)但是需要預(yù)充幾塊錢進(jìn)去,不是很推薦。

ngrok
一個開源軟件,可以自己在服務(wù)器上部署也可以使用現(xiàn)成的,其實(shí)qq瀏覽器的微信調(diào)試就是基于這個搭建的。算是比較好用的。

leancloud

為什么使用leancloud,其實(shí)是我沒太接觸其他的云服務(wù),也無從比較,另外一個就是heroku,但是國內(nèi)的訪問速度感人。
leancloud應(yīng)該是一個類似parse(其實(shí)parse我也不是很了解hhhh)的服務(wù),但還提供了托管web的云引擎。包括python和nodejs兩種,這里介紹nodejs的引擎。云引擎入門的話請看leancloud云引擎入門,畢竟比我講的強(qiáng)多了。
對于個人開發(fā)者,leancloud算是免費(fèi)的,限制不是很大,但是貌似最近出了個實(shí)名認(rèn)證,但是沒認(rèn)證好像也沒啥問題。但是對于面試用戶,如果應(yīng)用沒有請求,就是睡眠,所以如果應(yīng)用打不開多試兩次就行了,極有可能是睡眠了。

常用命令

lean new新建項(xiàng)目
lean app add [appname] [appid] 關(guān)聯(lián)項(xiàng)目到leancloud 云引擎
lean up 啟動服務(wù)
lean deploy部署應(yīng)用(貌似收費(fèi)用戶是部署到測試環(huán)境)
lean publish部署到開發(fā)環(huán)境(免費(fèi)用戶用不著)

云引擎簡介

進(jìn)入控制臺后如圖所示:

nodejs微信開發(fā)之接入的示例分析

存儲是數(shù)據(jù)庫,各個功能如名字所說。一些暫時用不著的功能就不提了。

主要是云引擎這個選項(xiàng),需要進(jìn)入設(shè)置中配置好域名。

nodejs微信開發(fā)之接入的示例分析

數(shù)據(jù)庫

leancloud的數(shù)據(jù)庫是一個半殘的mongo,基本是夠用的。文檔在這js數(shù)據(jù)開發(fā)

公眾號的接入

我這邊使用的是公眾號測試號,因?yàn)閭€人申請到的訂閱號的功能嚴(yán)重缺失。

首先看微信文檔

nodejs微信開發(fā)之接入的示例分析

填寫服務(wù)器配置

nodejs微信開發(fā)之接入的示例分析

也就上圖的接口配置信息,url是你服務(wù)部署的地方,圖中的url是微信調(diào)試工具生成的,所以有些亂,token是隨意填寫的,注意下面還是要用到的,注意保存好。

驗(yàn)證服務(wù)器地址的有效性

這里就是代碼部分了。先上目錄結(jié)構(gòu):

nodejs微信開發(fā)之接入的示例分析

app目錄放業(yè)務(wù)邏輯代碼。

config.js存放相關(guān)配置,包括微信公眾號的appId ,Token等

module.exports = {
 'token': 'yourtoken',//配置中的token
 'appId': 'your appid',//配置里的appid
 'appSecret': 'your appsecret'//配置中的appsecret
};

注:這部分引自微信公眾平臺文檔

開發(fā)者提交信息后,微信服務(wù)器將發(fā)送GET請求到填寫的服務(wù)器地址URL上,GET請求攜帶參數(shù)如下表所示:

nodejs微信開發(fā)之接入的示例分析

通過檢驗(yàn)signature對請求進(jìn)行校驗(yàn)(下面有校驗(yàn)方式)。若確認(rèn)此次GET請求來自微信服務(wù)器,請原樣返回echostr參數(shù)內(nèi)容,則接入生效,成為開發(fā)者成功,否則接入失敗。加密/校驗(yàn)流程如下:
1)將token、timestamp、nonce三個參數(shù)進(jìn)行字典序排序
2)將三個參數(shù)字符串拼接成一個字符串進(jìn)行sha1加密
3)開發(fā)者獲得加密后的字符串可與signature對比,標(biāo)識該請求來源于微信

這部分的代碼如下:

const crypto = require('crypto');
const path = require('path');
const url = require('url');

//import config
const config = require('../../config');

//進(jìn)行sha1加密
function sha1(str) {
 var shasum = crypto.createHash("sha1");
 shasum.update(str);
 str = shasum.digest("hex");
 return str;
}

function wechatAuth(req, res) {
 var query = url.parse(req.url, true).query;
 var signature = query.signature;
 var echostr = query.echostr;
 var timestamp = query['timestamp'];
 var nonce = query.nonce;

 var reqArray = [nonce, timestamp, config.token];

 //對數(shù)組進(jìn)行字典排序
 reqArray.sort();
 var sortStr = reqArray.join('');//連接數(shù)組
 var sha1Str = sha1(sortStr);

 if (signature === sha1Str) {
  res.end(echostr);
 } else {
  res.end("false");
  console.log("授權(quán)失敗!");
 }
}

module.exports = wechatAuth;

相信代碼說的總是比我清楚,首先獲取請求url中的四個參數(shù),對nonce,timestamp, 和token進(jìn)行字典排序也就是Array.sort(),然后進(jìn)行字符串拼接,進(jìn)行sha1加密,如果結(jié)果和signature相等則成功,(順便說一句,其實(shí)直接返回echostr也是可以成功的,不過后面的請求就不太好辦了?)。

這樣來說接入應(yīng)該就算是成功了。

以上是“nodejs微信開發(fā)之接入的示例分析”這篇文章的所有內(nèi)容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內(nèi)容對大家有所幫助,如果還想學(xué)習(xí)更多知識,歡迎關(guān)注創(chuàng)新互聯(lián)成都網(wǎng)站設(shè)計公司行業(yè)資訊頻道!

另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)scvps.cn,海內(nèi)外云服務(wù)器15元起步,三天無理由+7*72小時售后在線,公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、高防服務(wù)器、香港服務(wù)器、美國服務(wù)器、虛擬主機(jī)、免備案服務(wù)器”等云主機(jī)租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡單易用、服務(wù)可用性高、性價比高”等特點(diǎn)與優(yōu)勢,專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應(yīng)用場景需求。

本文題目:nodejs微信開發(fā)之接入的示例分析-創(chuàng)新互聯(lián)
文章鏈接:http://jinyejixie.com/article48/eiiep.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供電子商務(wù)、Google、網(wǎng)站設(shè)計公司品牌網(wǎng)站制作、ChatGPT網(wǎng)站策劃

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

營銷型網(wǎng)站建設(shè)
高唐县| 临沭县| 中卫市| 遵义县| 鄄城县| 神池县| 井陉县| 龙南县| 都昌县| 邛崃市| 柳州市| 大姚县| 巴楚县| 施秉县| 贵州省| 清丰县| 浏阳市| 唐河县| 即墨市| 唐河县| 新竹县| 米脂县| 龙游县| 彰化市| 当雄县| 无为县| 西乌珠穆沁旗| 休宁县| 清原| 上饶县| 彰武县| 岐山县| 浦东新区| 和林格尔县| 彩票| 邓州市| 拉孜县| 通化县| 北宁市| 广昌县| 平顶山市|