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

node.js微信小程序配置消息推送的實現(xiàn)

 更新時間:2019年02月13日 09:08:51   作者:一步一步向上爬  
這篇文章主要介紹了node.js微信小程序配置消息推送的實現(xiàn),小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧

在開發(fā)微信小程序時,有一個消息推送,它的解釋是這樣的。

消息推送具體的內(nèi)容是下面的這個網(wǎng)址   https://developers.weixin.qq.com/miniprogram/dev/framework/server-ability/message-push.html,他介紹的也還可以,就是我這里換成了node代碼。

消息推送

啟用并設置消息推送配置后,用戶發(fā)給小程序的消息以及開發(fā)者需要的事件推送,都將被微信轉發(fā)至該服務器地址中。

在微信小程序的首頁開發(fā)里面,開發(fā)設置中,微信的官網(wǎng)中,介紹的也還可以,php代碼寫的差不多也能了解什么意思,但是其中沒有告訴我們要把echostr這個參數(shù)在接口中返回出來,所以導致我測試了半天都是那個Token驗證失敗。

寫一下學習記錄吧,方便后來的人遇到同樣的問題,也方便自己以后查閱。

這個里面的url服務器地址就是自己的地址(上面那個是我隨便寫的),后面接上自己的接口,比如我的就是 /token,當你點擊提交的時候,會發(fā)現(xiàn)在服務器中會有如下的get請求

避免有些人看不清楚上面的我在這里再用代碼重新寫一下上面的東西。

GET /checkPushMsg?signature=db6e0c25b7743d8dd7ebfda1db6c742a762a2f37&echostr=1712804002525306855&timestamp=1549949926&nonce=982754662 200 1.321 ms - 46

其中的各個參數(shù)微信官網(wǎng)中介紹的也非常的詳細。

開發(fā)者通過檢驗 signature 對請求進行校驗(下面有校驗方式)。若確認此次 GET 請求來自微信服務器,請原樣返回 echostr 參數(shù)內(nèi)容,則接入生效,成為開發(fā)者成功,否則接入失敗。加密/校驗流程如下:

  • 將token、timestamp、nonce三個參數(shù)進行字典序排序
  • 將三個參數(shù)字符串拼接成一個字符串進行sha1加密
  • 開發(fā)者獲得加密后的字符串可與signature對比,標識該請求來源于微信

驗證URL有效性成功后即接入生效,成為開發(fā)者。

檢驗signature的node.js示例代碼:

/*
 驗證服務器推送url地址
 開發(fā)者提交信息后,微信服務器將發(fā)送GET請求到填寫的服務器URL上,GET請求攜帶參數(shù)如下
   @params signature 微信加密簽名,signature結合了開發(fā)者填寫的token參數(shù)和請求中的timestamp參數(shù),nonce參數(shù)
   @params timestamp  時間戳
   @params nonce  隨機數(shù)
   @params echostr  隨機字符串
*/
exports.check_push = (req, res) => {
 console.log(req.query);
 let signature = req.query.signature,
   timestamp = req.query.timestamp,
   nonce = req.query.nonce,
   echostr = req.query.echostr;
 let a = crypto.createHash('sha1').update([pushToken, timestamp, nonce].sort().join('')).digest('hex'); // 這里的pushToken就是在上面的那里配置的Token

 if(a == signature){
  // 如果驗證成功則原封不動的返回
  res.send(echostr);
 }else{
  res.send({
   status: 400,
   data: "check msg error"
  })
 }
};

其中遇到的兩個問題,上面已經(jīng)說了,這里再說一下這兩個問題。

其中一個是把 token、timestamp、nonce三個參數(shù)進行字典序排序,當時想自己寫一個方法,寫了好久發(fā)現(xiàn)有點難受,所以在網(wǎng)上找了一些東西,發(fā)現(xiàn)那個 數(shù)組的sort方法不傳遞參數(shù)就是那個 默認字符編碼排序,所以就非常簡單了,加密直接用到crypto模塊

另外一個就是微信都沒有告訴我們要把那個echostr返回出去,雖然他的意思就是那個意思。。 這樣就可以配置成功了。

如果你同樣遇到了這個問題,看了我的文章解決了,我會非常高興。

以上就是本文的全部內(nèi)容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。

相關文章

  • 如何在Express4.x中愉快地使用async的方法

    如何在Express4.x中愉快地使用async的方法

    這篇文章主要介紹了如何在Express4.x中愉快地使用async的方法,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2020-11-11
  • 支持cjs及esm的npm包實現(xiàn)示例詳解

    支持cjs及esm的npm包實現(xiàn)示例詳解

    這篇文章主要為大家介紹了支持cjs及esm的npm包的示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2022-08-08
  • Nodejs之TCP服務端與客戶端聊天程序詳解

    Nodejs之TCP服務端與客戶端聊天程序詳解

    這篇文章主要為大家詳細介紹了Nodejs之TCP服務端與客戶端聊天程序,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2017-07-07
  • 使用PM2實現(xiàn)高效的應用監(jiān)控與管理功能

    使用PM2實現(xiàn)高效的應用監(jiān)控與管理功能

    PM2?是一個流行的進程管理器,用于?Node.js?應用程序,它支持應用程序的負載均衡、自動重啟、日志管理、監(jiān)控以及多環(huán)境管理等功能,本文給大家介紹了如何使用PM2實現(xiàn)高效的應用監(jiān)控與管理功能,需要的朋友可以參考下
    2024-02-02
  • Node.js fs模塊原理及常見用途

    Node.js fs模塊原理及常見用途

    這篇文章主要介紹了Node.js fs模塊原理及常見用途,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
    2020-10-10
  • windows如何把已安裝的nodejs高版本降級為低版本(圖文教程)

    windows如何把已安裝的nodejs高版本降級為低版本(圖文教程)

    這篇文章主要介紹了windows如何把已安裝的nodejs高版本降級為低版本,本文分步驟通過圖文并茂的形式給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2020-12-12
  • Node.js的特點和應用場景介紹

    Node.js的特點和應用場景介紹

    這篇文章主要介紹了Node.js的特點和應用場景介紹,本文講解了Node.js的異步I/O、 事件循環(huán)與回調函數(shù)、單線程、 跨平臺等特性,然后總結了它的使用場景,需要的朋友可以參考下
    2014-11-11
  • 詳細分析Node.js 模塊系統(tǒng)

    詳細分析Node.js 模塊系統(tǒng)

    這篇文章主要介紹了Node.js 模塊系統(tǒng)的的相關資料,文中講解非常詳細,供大家參考和學習,感興趣的朋友可以了解下
    2020-06-06
  • 使用Raygun對Node.js應用進行錯誤處理的方法

    使用Raygun對Node.js應用進行錯誤處理的方法

    這篇文章主要介紹了使用Raygun對Node.js應用進行錯誤處理的方法,Node.js是一款用于服務器端的JavaScript框架,需要的朋友可以參考下
    2015-06-06
  • 利用Node.js和MySQL實現(xiàn)創(chuàng)建API服務器

    利用Node.js和MySQL實現(xiàn)創(chuàng)建API服務器

    這篇文章主要為大家詳細介紹了如何使用Node.js和MySQL創(chuàng)建API服務器的步驟,這也是從前端邁向全棧的一個開始,文中的示例代碼講解詳細,感興趣的小伙伴可以了解下
    2024-01-01

最新評論

噶尔县| 吴川市| 静宁县| 花垣县| 博爱县| 久治县| 沁阳市| 扎囊县| 阿拉善左旗| 利辛县| 甘孜县| 辽阳市| 青冈县| 永福县| 健康| 河曲县| 泗阳县| 济宁市| 广平县| 九江市| 莱西市| 古田县| 长兴县| 五华县| 开阳县| 乐昌市| 乳山市| 台州市| 宁武县| 苍溪县| 四子王旗| 定襄县| 云龙县| 惠东县| 英超| 湘乡市| 务川| 南召县| 镇巴县| 永康市| 成都市|