最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

nodejs微信開(kāi)發(fā)之接入指南

 更新時(shí)間:2019年03月17日 15:33:06   作者:xiadd  
這篇文章主要介紹了nodejs微信開(kāi)發(fā)之接入指南,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧

最近又拾起了微信開(kāi)發(fā),之前的公眾號(hào)是用的flask進(jìn)行開(kāi)發(fā)的,所以最近想要用nodejs改寫一下,這些算是記錄吧,邊寫代碼邊寫下這篇文章。

因?yàn)槲覍?duì)nodejs也并不是那么的熟悉,僅僅是新手的狀態(tài),如果有錯(cuò)誤的地方請(qǐng)指出。

文章最后會(huì)放出源碼。公眾號(hào)部署在leancloud,這里也會(huì)稍微介紹一下leancloud的云引擎,方便部署。

這部分文章涉及的代碼不多,多是工具的介紹以及一個(gè)接入指南。

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

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


我也推薦這個(gè),畢竟一家的。
但是也有其他的選擇:

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

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

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

leancloud

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

常用命令

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

云引擎簡(jiǎn)介

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


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

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

數(shù)據(jù)庫(kù)

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

公眾號(hào)的接入

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

首先看微信文檔

填寫服務(wù)器配置


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

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

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

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

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

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

注:這部分引自微信公眾平臺(tái)文檔

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

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

這部分的代碼如下:

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];

 //對(duì)數(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;

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

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

首先github地址奉上:https://github.com/xiadd/shorthand

以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • node.js中的url.parse方法使用說(shuō)明

    node.js中的url.parse方法使用說(shuō)明

    這篇文章主要介紹了node.js中的url.parse方法使用說(shuō)明,本文介紹了url.parse的方法說(shuō)明、語(yǔ)法、接收參數(shù)、使用實(shí)例和實(shí)現(xiàn)源碼,需要的朋友可以參考下
    2014-12-12
  • Node.js的Express框架使用上手指南

    Node.js的Express框架使用上手指南

    這篇文章主要介紹了Node.js的Express框架使用上手指南,Express可以說(shuō)是目前Node世界中人氣最高的開(kāi)發(fā)框架,需要的朋友可以參考下
    2016-03-03
  • Express.js 全局錯(cuò)誤處理實(shí)現(xiàn)

    Express.js 全局錯(cuò)誤處理實(shí)現(xiàn)

    本文主要介紹了Express.js 全局錯(cuò)誤處理實(shí)現(xiàn),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2023-06-06
  • 總結(jié)幾道關(guān)于Node.js的面試問(wèn)題

    總結(jié)幾道關(guān)于Node.js的面試問(wèn)題

    這篇文章主要總結(jié)了幾道關(guān)于Node.js的面試問(wèn)題,通過(guò)這些問(wèn)題就來(lái)判斷一個(gè)人的Node.js水平是不太嚴(yán)謹(jǐn)?shù)?,但是它能讓你?duì)面試者在Node.js上的經(jīng)驗(yàn)如何有個(gè)大概的了解。有需要的朋友可以參考借鑒,下面來(lái)一起看看吧。
    2017-01-01
  • 使用nodejs?spider爬取圖片及數(shù)據(jù)實(shí)現(xiàn)

    使用nodejs?spider爬取圖片及數(shù)據(jù)實(shí)現(xiàn)

    這篇文章主要為大家介紹了使用nodejs?spider爬取圖片及數(shù)據(jù)實(shí)現(xiàn)詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-07-07
  • 如何使用Node寫靜態(tài)文件服務(wù)器

    如何使用Node寫靜態(tài)文件服務(wù)器

    這篇文章主要介紹了如何使用Node寫靜態(tài)文件服務(wù)器,文章圍繞主題展開(kāi)詳細(xì)的內(nèi)容介紹,具有一定的參考價(jià)值,感興趣的小伙伴可以參考一下
    2022-09-09
  • nodeJs事件循環(huán)運(yùn)行代碼解析

    nodeJs事件循環(huán)運(yùn)行代碼解析

    這篇文章主要為大家介紹了nodeJs事件循環(huán)運(yùn)行代碼解析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-04-04
  • Windows下使用Nodejs運(yùn)行js的方法

    Windows下使用Nodejs運(yùn)行js的方法

    今天小編就為大家分享一篇Windows下使用Nodejs運(yùn)行js的方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2017-09-09
  • Node.js通過(guò)身份證號(hào)驗(yàn)證年齡、出生日期與性別方法示例

    Node.js通過(guò)身份證號(hào)驗(yàn)證年齡、出生日期與性別方法示例

    最近工作中需要對(duì)身份證號(hào)的年齡、出生日期與性別進(jìn)行驗(yàn)證,所以這篇文章主要介紹了Node.js通過(guò)身份證號(hào)驗(yàn)證年齡、出生日期與性別的方法,在介紹完node.js的實(shí)現(xiàn)方法后又給大家分類的利用JS實(shí)現(xiàn)的方法,需要的朋友可以參考下。
    2017-03-03
  • Node.js使用express寫接口的具體代碼

    Node.js使用express寫接口的具體代碼

    這篇文章主要介紹了Node.js使用express寫接口,本文通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2023-03-03

最新評(píng)論

江山市| 凤山县| 承德市| 库伦旗| 隆化县| 平度市| 金平| 镇坪县| 连平县| 府谷县| 上犹县| 平武县| 泾源县| 宜兴市| 大余县| 湘乡市| 西安市| 和静县| 新和县| 贺兰县| 囊谦县| 安康市| 临夏县| 巴楚县| 城口县| 镇江市| 斗六市| 三台县| 扬州市| 永年县| 年辖:市辖区| 石城县| 民丰县| 平舆县| 灵丘县| 自治县| 鹤岗市| 永城市| 镇巴县| 长子县| 张家港市|