91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

微信程序開發系列教程(一)開發環境搭建

發布時間:2020-08-17 20:39:28 來源:ITPUB博客 閱讀:141 作者:i042416 欄目:web開發

1. 您得從微信官方平臺注冊一個微信訂閱號:

https://mp.weixin.qq.com

2. 這個教程使用nodejs開發微信訂閱號對應的消息服務器,因此需要具備基本的nodejs開發技能。

微信程序開發系列教程(一)開發環境搭建

登錄微信公眾號平臺 https://mp.weixin.qq.com , 使用菜單:Development->Basic configuration:

微信程序開發系列教程(一)開發環境搭建

最重要的是在訂閱號的控制臺里指定一個消息服務器的url。如下圖所示。這個消息服務器的url從哪里來?

微信程序開發系列教程(一)開發環境搭建

我會用nodejs開發一個服務器,部署到Salesforce的云平臺Heroku上。

微信程序開發系列教程(一)開發環境搭建

當您的微信訂閱號的粉絲通過微信App同您的訂閱號交互,比如發消息,或者使用您的微信訂閱號自定義菜單時,這些請求就會通過微信App轉發到您的nodejs消息服務器上。

但是當您配置的消息服務器要真正起作用,還得先通過一個驗證。驗證流程在微信官網上:  https://mp.weixin.qq.com/wiki?t=resource/res_main&id=mp1472017492_58YV5

微信程序開發系列教程(一)開發環境搭建

微信官網上提供的驗證流程的實現是用Python寫的,我提供了一個nodejs版本的實現。

微信程序開發系列教程(一)開發環境搭建

我們在微信訂閱號的控制臺點了Submit按鈕之后,微信框架會發送一個HTTP請求到你的微信服務器去,請求明細如下:

https://<your server url>/?signature=096abd439b41f9610aeabe2d7534084fd8dafa20&echostr=16168327802220428137&timestamp=1512810825&nonce=384289189

您的微信服務器的職責就是:按照上面流程圖定義的規范,計算根據您微信訂閱號的token(令牌),時間戳和nonce字段,計算出一個簽名值,然后同發到消息服務器的簽名值做對比。如果對比發現兩者不一致,會收到錯誤消息“Token authentication failed”。

微信程序開發系列教程(一)開發環境搭建

下面是如何用nodejs開發使得消息服務器通過驗證流程。

1. 創建一個新的nodejs工程,下列package.json文件里高亮部分是用于消息服務器通信的重要部分。

主要的邏輯位于server.js里。

微信程序開發系列教程(一)開發環境搭建

2. Server.js的主要代碼:

var express = require('express');var routesEngine = require('./index.js');var app = express();
routesEngine(app);
app.listen(process.env.PORT || 3000, function () {console.log('Listening on port, process.cwd(): ' + process.cwd() );
});
In implementation of index.js, now we need to implement verification process:var request = require('request');var jsSHA = require('jssha');module.exports = function (app) {
app.route('/').get(function(req,res){var token="jerry"; // replace it with your own tokenvar signature = req.query.signature,
timestamp = req.query.timestamp,
echostr = req.query.echostr,
nonce = req.query.nonce;
oriArray = new Array();
oriArray[0] = nonce;
oriArray[1] = timestamp;
oriArray[2] = token;
oriArray.sort();var original = oriArray.join('');var shaObj = new jsSHA("SHA-1", 'TEXT');
shaObj.update(original);var scyptoString = shaObj.getHash('HEX');console.log("calculated string: " + scyptoString);if (signature == scyptoString) {
res.send(echostr);
} else {
res.send('bad token');
}
});
};

3. 將該nodejs應用部署到Heroku平臺。具體操作參考Heroku的操作手冊。

部署成功后,到微信訂閱號操作臺點Submit按鈕提交驗證請求,然后在Heroku應用的控制臺上能觀察到我們自己的微信服務器計算出的signature和微信平臺發送的signature完全一致,認證通過。

微信程序開發系列教程(一)開發環境搭建

回到訂閱號的操作臺,發現我們的nodejs微信服務器認證成功,可以做開發了。

微信程序開發系列教程(一)開發環境搭建

后續Jerry會帶來更多微信訂閱號開發的內容。

要獲取更多Jerry的原創技術文章,請關注公眾號"汪子熙"或者掃描下面二維碼:

微信程序開發系列教程(一)開發環境搭建

微信程序開發系列教程(一)開發環境搭建

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

永新县| 红原县| 兴仁县| 平凉市| 宝兴县| 平潭县| 鄂托克前旗| 台东县| 涟源市| 观塘区| 虹口区| 宜都市| 丹棱县| 敦煌市| 稷山县| 盱眙县| 盐亭县| 碌曲县| 普洱| 长阳| 荃湾区| 隆德县| 荣昌县| 淮阳县| 繁峙县| 阿克| 金塔县| 桂东县| 绍兴县| 岢岚县| 榕江县| 宝应县| 油尖旺区| 信阳市| 富川| 泰宁县| 黄龙县| 香河县| 宜都市| 巫溪县| 巴南区|