最新文章專題視頻專題問答1問答10問答100問答1000問答2000關(guān)鍵字專題1關(guān)鍵字專題50關(guān)鍵字專題500關(guān)鍵字專題1500TAG最新視頻文章推薦1 推薦3 推薦5 推薦7 推薦9 推薦11 推薦13 推薦15 推薦17 推薦19 推薦21 推薦23 推薦25 推薦27 推薦29 推薦31 推薦33 推薦35 推薦37視頻文章20視頻文章30視頻文章40視頻文章50視頻文章60 視頻文章70視頻文章80視頻文章90視頻文章100視頻文章120視頻文章140 視頻2關(guān)鍵字專題關(guān)鍵字專題tag2tag3文章專題文章專題2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章專題3
問答文章1 問答文章501 問答文章1001 問答文章1501 問答文章2001 問答文章2501 問答文章3001 問答文章3501 問答文章4001 問答文章4501 問答文章5001 問答文章5501 問答文章6001 問答文章6501 問答文章7001 問答文章7501 問答文章8001 問答文章8501 問答文章9001 問答文章9501
當前位置: 首頁 - 科技 - 知識百科 - 正文

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

來源:懂視網(wǎng) 責編:小采 時間:2020-11-27 22:01:06
文檔

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

node.js微信小程序配置消息推送的實現(xiàn):在開發(fā)微信小程序時,有一個消息推送,它的解釋是這樣的。 消息推送具體的內(nèi)容是下面的這個網(wǎng)址 https://developers.weixin.qq.com/miniprogram/dev/framework/server-ability/message-push.html,他介紹的也還可以,就是我這里換成了nod
推薦度:
導(dǎo)讀node.js微信小程序配置消息推送的實現(xiàn):在開發(fā)微信小程序時,有一個消息推送,它的解釋是這樣的。 消息推送具體的內(nèi)容是下面的這個網(wǎng)址 https://developers.weixin.qq.com/miniprogram/dev/framework/server-ability/message-push.html,他介紹的也還可以,就是我這里換成了nod

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

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

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

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

    /*
     驗證服務(wù)器推送url地址
     開發(fā)者提交信息后,微信服務(wù)器將發(fā)送GET請求到填寫的服務(wù)器URL上,GET請求攜帶參數(shù)如下
     @params signature 微信加密簽名,signature結(jié)合了開發(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返回出去,雖然他的意思就是那個意思。 這樣就可以配置成功了。

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

    聲明:本網(wǎng)頁內(nèi)容旨在傳播知識,若有侵權(quán)等問題請及時與本網(wǎng)聯(lián)系,我們將在第一時間刪除處理。TEL:177 7030 7066 E-MAIL:11247931@qq.com

    文檔

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

    node.js微信小程序配置消息推送的實現(xiàn):在開發(fā)微信小程序時,有一個消息推送,它的解釋是這樣的。 消息推送具體的內(nèi)容是下面的這個網(wǎng)址 https://developers.weixin.qq.com/miniprogram/dev/framework/server-ability/message-push.html,他介紹的也還可以,就是我這里換成了nod
    推薦度:
    標簽: 微信 消息 小程序
    • 熱門焦點

    最新推薦

    猜你喜歡

    熱門推薦

    專題
    Top