成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

node下的微信之路-1:接口信息配置

pakolagij / 2510人閱讀

摘要:接口信息配置前言做外包遇到最多的就是基于微信的頁面。當(dāng)我們填好之后點(diǎn)擊提交的話,微信會向你的服務(wù)器發(fā)送信息,你要解析一遍之后返回正確的信息,這一步的配置才能成功。

分享給每一個(gè)想統(tǒng)治宇宙的Jser。

接口信息配置

前言:做外包遇到最多的就是基于微信的H5頁面。做這種頁面js-sdk引入是必須的。萬惡的TX把這個(gè)東西做到了綁定域名,要計(jì)算驗(yàn)證才能使用。我苦逼的小小jser又如何去慢慢一步步摸索過來的呢。聽我慢慢訴說。

首先你的申請一個(gè)測試者賬號,點(diǎn)我大跳轉(zhuǎn)門--> 傳送門

第一項(xiàng)“測試號信息”有你的app ID和appsercet。先不要管他。

第二項(xiàng)的接口配置和信息,這里填寫的URL,就是你的服務(wù)器IP:http:// +IP地址。
Token就是你和微信約定好的一個(gè)字符串,你喜歡填寫什么就填寫什么。隨意填寫的一個(gè)字符串。后面解析請求的時(shí)候用到(這一步先填寫好,不能按提交那么快)

第三項(xiàng):JS接口安全域名。這個(gè)是萬惡的根源,填上你自己的域名。最好就是根域名,這樣的話,在這個(gè)根之下的域名的頁面都能用到。

下面的幾項(xiàng)和這次的無關(guān),不說了,跳回去我們的sublime編輯代碼去。

回到我們的代碼去,服務(wù)器后臺用node+express的,首先我們要處理上面沒有確認(rèn)的一個(gè)配置信息。當(dāng)我們填好URL+Token之后點(diǎn)擊提交的話,微信會向你的服務(wù)器發(fā)送信息,你要解析一遍之后返回正確的信息,這一步的配置才能成功。
所以我們就在router里面加一個(gè)get的處理
//來自微信的信息
router.get("/",function(req,res,next){});
//不是來自微信的信息
router.get("/", function(req, res, next) {

   res.render("index", {title:"hello !"});

});

這時(shí)候get過來的信息有四個(gè):

signature: 微信加密簽名,signature結(jié)合了開發(fā)者填寫的token參數(shù)和請求中
timestamp參數(shù)、nonce參數(shù)。
timestamp:時(shí)間戳
nonce: 隨機(jī)數(shù)
echostr:隨機(jī)字符串

整個(gè)驗(yàn)證過程簡單來說就是這么一個(gè)過程:

通過檢驗(yàn)signature對請求進(jìn)行校驗(yàn): 若確認(rèn)此次GET請求來自微信服務(wù)器,請?jiān)瓨臃祷?echostr參數(shù)內(nèi)容,則接入生效,成為開發(fā)者成功, 否則接入失敗。

加密/校驗(yàn)流程如下:

1.將token(服務(wù)器內(nèi)定義)、timestamp、nonce三個(gè)參數(shù)進(jìn)行字典序排序
2.將三個(gè)參數(shù)字符串拼接成一個(gè)字符串進(jìn)行sha1加密
3.開發(fā)者獲得加密后的字符串可與signature對比,標(biāo)識該請求來源于微信

好了,前面說了那么多廢話,現(xiàn)在開始進(jìn)行代碼,show your 本事 in code
預(yù)熱工作:因?yàn)槔锩嬗胹ha1加密,使用crypto模塊是個(gè)不錯(cuò)的選擇

npm install crypto --save

來到router里面,我們引入這個(gè)模塊

var crypto = require("crypto");

然后開始處理信息了

var TOKEN = "sanyuelanv";
/*來自微信的信息*/
router.get("/",function(req,res,next){
     var query = req.query;
    /*取出四個(gè)值*/
    var signature = query.signature;
    var echostr = query.echostr;
    var timestamp = query["timestamp"];
    var nonce = query.nonce;
    /*拼成數(shù)組,字典排序,再拼接*/
    var tmpArr = [TOKEN,timestamp,nonce];
    tmpArr.sort();
    var tmpStr = tmpArr[0] + tmpArr[1] + tmpArr[2];
    /*進(jìn)行加密*/
    var shasum = crypto.createHash("sha1");
    shasum.update(tmpStr);
    var shaResult = shasum.digest("hex");
    //來自微信的請求,就返回echostr
    if (shaResult == signature){res.send(echostr);}
    else{next();}
});

這一段代碼下來,我們提交到服務(wù)器之后,reload一下,再回到微信測試者帳號的頁面,把前面配置的確認(rèn)確定就提交上去,這是就OK了!
下一篇文章再寫JSSDK驗(yàn)證吧!

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

轉(zhuǎn)載請注明本文地址:http://systransis.cn/yun/86290.html

相關(guān)文章

  • 【騰訊云峰會 Cloud Native 專場】微票兒的 Cloud Native 實(shí)踐之路

    摘要:導(dǎo)讀在今年騰訊云峰會上,開源技術(shù)同樣是一大亮點(diǎn)。此文是微票時(shí)代技術(shù)副總裁楊森淼在現(xiàn)場有關(guān)微票兒的實(shí)踐之路分享的實(shí)錄。 導(dǎo)讀 在今年騰訊云峰會上,開源技術(shù)同樣是一大亮點(diǎn)。作為開源技術(shù)的集成平臺,Cloud Native 專場給各家提供了針對 OpenStack 應(yīng)用以及背后填坑之路作深度探討的機(jī)會。此文是微票時(shí)代技術(shù)副總裁楊森淼在現(xiàn)場有關(guān)《微票兒的 Cloud Native 實(shí)踐之路》分...

    mo0n1andin 評論0 收藏0
  • 【騰訊云峰會 Cloud Native 專場】微票兒的 Cloud Native 實(shí)踐之路

    摘要:導(dǎo)讀在今年騰訊云峰會上,開源技術(shù)同樣是一大亮點(diǎn)。此文是微票時(shí)代技術(shù)副總裁楊森淼在現(xiàn)場有關(guān)微票兒的實(shí)踐之路分享的實(shí)錄。 導(dǎo)讀 在今年騰訊云峰會上,開源技術(shù)同樣是一大亮點(diǎn)。作為開源技術(shù)的集成平臺,Cloud Native 專場給各家提供了針對 OpenStack 應(yīng)用以及背后填坑之路作深度探討的機(jī)會。此文是微票時(shí)代技術(shù)副總裁楊森淼在現(xiàn)場有關(guān)《微票兒的 Cloud Native 實(shí)踐之路》分...

    paulli3 評論0 收藏0
  • 業(yè)務(wù)中前后端分離下的微信授權(quán)流程記錄

    摘要:業(yè)務(wù)中前后端分離下的微信授權(quán)流程記錄這個(gè)是微信授權(quán)的流程我覺得微信的文檔授權(quán)流程還算清晰易懂,可是不太清楚具體是哪部分前端做,哪部分后端做導(dǎo)致在業(yè)務(wù)中,折騰了不少時(shí)間,特此記錄一下業(yè)務(wù)實(shí)踐。 業(yè)務(wù)中前后端分離下的微信授權(quán)流程記錄 這個(gè)是微信授權(quán)的流程 https://mp.weixin.qq.com/wiki... https://mp.weixin.qq.com/wiki... 我覺...

    GitChat 評論0 收藏0
  • SpringCloud升級之路2020.0.x版-41. SpringCloudGateway 基本

    摘要:將請求封裝成將請求封裝成的接口定義是但是最外層傳進(jìn)來的參數(shù)是和,需要將他們封裝成,這個(gè)工作就是在中做的。其實(shí)主要任務(wù)就是將各種參數(shù)封裝成除了和本次請求相關(guān)的和,還有會話管理器,編碼解碼器配置,國際化配置還有用于擴(kuò)展。本系列代碼地址:https://github.com/JoJoTec/spring-cloud-parent接下來,將進(jìn)入我們升級之路的又一大模塊,即網(wǎng)關(guān)模塊。網(wǎng)關(guān)模塊我們廢棄了...

    不知名網(wǎng)友 評論0 收藏0
  • 微信開發(fā)-獲取用戶授權(quán)-node.js實(shí)現(xiàn)

    摘要:本篇主要講述,如何在微信中打開自家頁面后,彈窗請求用戶授權(quán),以便拿到用戶的微信信息。填寫信息,綁定微信,注冊完成,登錄進(jìn)去。 本篇主要講述,如何在微信中打開自家頁面后,彈窗請求用戶授權(quán),以便拿到用戶的微信信息。 首先說一下,完成自定義分享信息的,從無到有的流程: 基礎(chǔ)硬件服務(wù): 需要一個(gè)公網(wǎng)可以訪問的有效域名: 購買域名,并備案,我是在阿里云購買的,備案需要十幾個(gè)工作日。 購買i...

    littleGrow 評論0 收藏0

發(fā)表評論

0條評論

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