国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

nodejs微信開發(fā)---接入指南

LiangJ / 2821人閱讀

摘要:內(nèi)網(wǎng)穿透由于微信開發(fā)的端口必須是最近貌似增加了,所以一個內(nèi)網(wǎng)穿透工具還是很有必要的。我個人使用的是瀏覽器微信調(diào)試工具。若確認(rèn)此次請求來自微信服務(wù)器,請原樣返回參數(shù)內(nèi)容,則接入生效,成為開發(fā)者成功,否則接入失敗。

首先github地址奉上:https://github.com/xiadd/shorthand 歡迎star?
最近又拾起了微信開發(fā),之前的公眾號是用的flask進行開發(fā)的,所以最近想要用nodejs改寫一下,這些算是記錄吧,邊寫代碼邊寫下這篇文章。
因為我對nodejs也并不是那么的熟悉,僅僅是新手的狀態(tài),如果有錯誤的地方請指出。
文章最后會放出源碼。公眾號部署在leancloud,這里也會稍微介紹一下leancloud的云引擎,方便部署。
這部分文章涉及的代碼不多,多是工具的介紹以及一個接入指南。

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

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


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

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

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

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

leancloud

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

常用命令

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

云引擎簡介

進入控制臺后如圖所示:

存儲是數(shù)據(jù)庫,各個功能如名字所說。一些暫時用不著的功能就不提了。
主要是云引擎這個選項,需要進入設(shè)置中配置好域名。

數(shù)據(jù)庫

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

公眾號的接入

我這邊使用的是公眾號測試號,因為個人申請到的訂閱號的功能嚴(yán)重缺失。
首先看微信文檔

填寫服務(wù)器配置


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

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

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


app目錄放業(yè)務(wù)邏輯代碼。
config.js存放相關(guān)配置,包括微信公眾號的appId ,Token等

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

注:這部分引自微信公眾平臺文檔
開發(fā)者提交信息后,微信服務(wù)器將發(fā)送GET請求到填寫的服務(wù)器地址URL上,GET請求攜帶參數(shù)如下表所示:


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

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

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

//進行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ù)組進行字典排序
  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進行字典排序也就是Array.sort(),然后進行字符串拼接,進行sha1加密,如果結(jié)果和signature相等則成功,(順便說一句,其實直接返回echostr也是可以成功的,不過后面的請求就不太好辦了?)。
這樣來說接入應(yīng)該就算是成功了。

文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請注明本文地址:http://m.specialneedsforspecialkids.com/yun/79856.html

相關(guān)文章

  • 微信公眾平臺開發(fā)接入指南

    摘要:在進行微信公眾平臺開發(fā)之前,需要先接入微信公眾平臺。后續(xù)我也還會更新一些關(guān)于微信公眾平臺開發(fā)的文章,歡迎關(guān)注。 在進行微信公眾平臺開發(fā)之前,需要先接入微信公眾平臺。具體的步驟在 公眾平臺開發(fā)者文檔-接入指南 已有詳細介紹,文檔中也提供了驗證服務(wù)器的 PHP 示例代碼。 本文主要提供了 Node.js 版本的驗證代碼,同時把步驟細化,讓開發(fā)者更方便地了解整個接入過程,對初學(xué)者更友好。 T...

    luodongseu 評論0 收藏0
  • nodejs微信開發(fā)---自動回復(fù)的實現(xiàn)

    摘要:上一篇接入指南這部分是實現(xiàn)簡單的自動回復(fù),當(dāng)然也是很大一部分功能的實現(xiàn)基礎(chǔ),這里使用了圖靈機器人的接口。的微信一年沒更新了如上圖,發(fā)送消息則會回復(fù)一個內(nèi)容一樣的消息,一個簡單的自動回復(fù)就實現(xiàn)了。 上一篇:接入指南這部分是實現(xiàn)簡單的自動回復(fù),當(dāng)然也是很大一部分功能的實現(xiàn)基礎(chǔ),這里使用了圖靈機器人的接口。效果圖如下: showImg(https://segmentfault.com/img...

    LeoHsiun 評論0 收藏0
  • NodeJs開發(fā)微信公眾號(一)

    摘要:古話說萬事開頭難回頭細想想還真是這樣在沒有開始做微信公眾號開發(fā)之前我以為它很復(fù)雜但是學(xué)過之后只想說原來這里是我的項目的地址下面我就把我的學(xué)習(xí)過程做一下總結(jié)希望可以幫助到有需要的人兒粗鄙之見恐有不足歡迎指教在閱讀下文之前你應(yīng)該對和框架有一定的 古話說: 萬事開頭難, 回頭細想想還真是這樣,在沒有開始做微信公眾號開發(fā)之前我以為它很復(fù)雜,但是學(xué)過之后只想說原來just so so~ 這里是我...

    tigerZH 評論0 收藏0
  • 前端資源系列(4)-前端學(xué)習(xí)資源分享&前端面試資源匯總

    摘要:特意對前端學(xué)習(xí)資源做一個匯總,方便自己學(xué)習(xí)查閱參考,和好友們共同進步。 特意對前端學(xué)習(xí)資源做一個匯總,方便自己學(xué)習(xí)查閱參考,和好友們共同進步。 本以為自己收藏的站點多,可以很快搞定,沒想到一入?yún)R總深似海。還有很多不足&遺漏的地方,歡迎補充。有錯誤的地方,還請斧正... 托管: welcome to git,歡迎交流,感謝star 有好友反應(yīng)和斧正,會及時更新,平時業(yè)務(wù)工作時也會不定期更...

    princekin 評論0 收藏0

發(fā)表評論

0條評論

最新活動
閱讀需要支付1元查看
<