摘要:接口信息配置前言做外包遇到最多的就是基于微信的頁面。當我們填好之后點擊提交的話,微信會向你的服務器發送信息,你要解析一遍之后返回正確的信息,這一步的配置才能成功。
接口信息配置分享給每一個想統治宇宙的Jser。
前言:做外包遇到最多的就是基于微信的H5頁面。做這種頁面js-sdk引入是必須的。萬惡的TX把這個東西做到了綁定域名,要計算驗證才能使用。我苦逼的小小jser又如何去慢慢一步步摸索過來的呢。聽我慢慢訴說。
首先你的申請一個測試者賬號,點我大跳轉門--> 傳送門
第一項“測試號信息”有你的app ID和appsercet。先不要管他。
第二項的接口配置和信息,這里填寫的URL,就是你的服務器IP:http:// +IP地址。
Token就是你和微信約定好的一個字符串,你喜歡填寫什么就填寫什么。隨意填寫的一個字符串。后面解析請求的時候用到(這一步先填寫好,不能按提交那么快)
第三項:JS接口安全域名。這個是萬惡的根源,填上你自己的域名。最好就是根域名,這樣的話,在這個根之下的域名的頁面都能用到。
下面的幾項和這次的無關,不說了,跳回去我們的sublime編輯代碼去。
回到我們的代碼去,服務器后臺用node+express的,首先我們要處理上面沒有確認的一個配置信息。當我們填好URL+Token之后點擊提交的話,微信會向你的服務器發送信息,你要解析一遍之后返回正確的信息,這一步的配置才能成功。
所以我們就在router里面加一個get的處理
//來自微信的信息
router.get("/",function(req,res,next){});
//不是來自微信的信息
router.get("/", function(req, res, next) {
res.render("index", {title:"hello !"});
});
這時候get過來的信息有四個:
signature: 微信加密簽名,signature結合了開發者填寫的token參數和請求中
timestamp參數、nonce參數。
timestamp:時間戳
nonce: 隨機數
echostr:隨機字符串
整個驗證過程簡單來說就是這么一個過程:
通過檢驗signature對請求進行校驗: 若確認此次GET請求來自微信服務器,請原樣返回>echostr參數內容,則接入生效,成為開發者成功, 否則接入失敗。
加密/校驗流程如下:
1.將token(服務器內定義)、timestamp、nonce三個參數進行字典序排序
2.將三個參數字符串拼接成一個字符串進行sha1加密
3.開發者獲得加密后的字符串可與signature對比,標識該請求來源于微信
好了,前面說了那么多廢話,現在開始進行代碼,show your 本事 in code
預熱工作:因為里面用sha1加密,使用crypto模塊是個不錯的選擇
npm install crypto --save
來到router里面,我們引入這個模塊
var crypto = require("crypto");
然后開始處理信息了
var TOKEN = "sanyuelanv"; /*來自微信的信息*/ router.get("/",function(req,res,next){ var query = req.query; /*取出四個值*/ var signature = query.signature; var echostr = query.echostr; var timestamp = query["timestamp"]; var nonce = query.nonce; /*拼成數組,字典排序,再拼接*/ var tmpArr = [TOKEN,timestamp,nonce]; tmpArr.sort(); var tmpStr = tmpArr[0] + tmpArr[1] + tmpArr[2]; /*進行加密*/ var shasum = crypto.createHash("sha1"); shasum.update(tmpStr); var shaResult = shasum.digest("hex"); //來自微信的請求,就返回echostr if (shaResult == signature){res.send(echostr);} else{next();} });
這一段代碼下來,我們提交到服務器之后,reload一下,再回到微信測試者帳號的頁面,把前面配置的確認確定就提交上去,這是就OK了!
下一篇文章再寫JSSDK驗證吧!
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/86290.html
摘要:導讀在今年騰訊云峰會上,開源技術同樣是一大亮點。此文是微票時代技術副總裁楊森淼在現場有關微票兒的實踐之路分享的實錄。 導讀 在今年騰訊云峰會上,開源技術同樣是一大亮點。作為開源技術的集成平臺,Cloud Native 專場給各家提供了針對 OpenStack 應用以及背后填坑之路作深度探討的機會。此文是微票時代技術副總裁楊森淼在現場有關《微票兒的 Cloud Native 實踐之路》分...
摘要:導讀在今年騰訊云峰會上,開源技術同樣是一大亮點。此文是微票時代技術副總裁楊森淼在現場有關微票兒的實踐之路分享的實錄。 導讀 在今年騰訊云峰會上,開源技術同樣是一大亮點。作為開源技術的集成平臺,Cloud Native 專場給各家提供了針對 OpenStack 應用以及背后填坑之路作深度探討的機會。此文是微票時代技術副總裁楊森淼在現場有關《微票兒的 Cloud Native 實踐之路》分...
摘要:業務中前后端分離下的微信授權流程記錄這個是微信授權的流程我覺得微信的文檔授權流程還算清晰易懂,可是不太清楚具體是哪部分前端做,哪部分后端做導致在業務中,折騰了不少時間,特此記錄一下業務實踐。 業務中前后端分離下的微信授權流程記錄 這個是微信授權的流程 https://mp.weixin.qq.com/wiki... https://mp.weixin.qq.com/wiki... 我覺...
摘要:將請求封裝成將請求封裝成的接口定義是但是最外層傳進來的參數是和,需要將他們封裝成,這個工作就是在中做的。其實主要任務就是將各種參數封裝成除了和本次請求相關的和,還有會話管理器,編碼解碼器配置,國際化配置還有用于擴展。本系列代碼地址:https://github.com/JoJoTec/spring-cloud-parent接下來,將進入我們升級之路的又一大模塊,即網關模塊。網關模塊我們廢棄了...
摘要:本篇主要講述,如何在微信中打開自家頁面后,彈窗請求用戶授權,以便拿到用戶的微信信息。填寫信息,綁定微信,注冊完成,登錄進去。 本篇主要講述,如何在微信中打開自家頁面后,彈窗請求用戶授權,以便拿到用戶的微信信息。 首先說一下,完成自定義分享信息的,從無到有的流程: 基礎硬件服務: 需要一個公網可以訪問的有效域名: 購買域名,并備案,我是在阿里云購買的,備案需要十幾個工作日。 購買i...
閱讀 3128·2021-09-22 15:50
閱讀 3330·2021-09-10 10:51
閱讀 3142·2019-08-29 17:10
閱讀 2918·2019-08-26 12:14
閱讀 1835·2019-08-26 12:00
閱讀 932·2019-08-26 11:44
閱讀 652·2019-08-26 11:44
閱讀 2817·2019-08-26 11:41