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

nodejs獲取微信小程序帶參數(shù)二維碼實(shí)現(xiàn)代碼

 更新時(shí)間:2017年04月12日 11:11:55   作者:興xing0_0  
這篇文章主要介紹了nodejs獲取微信小程序帶參數(shù)二維碼實(shí)現(xiàn)代碼的相關(guān)資料,需要的朋友可以參考下

nodejs獲取微信小程序帶參數(shù)二維碼實(shí)現(xiàn)代碼

由于項(xiàng)目需求,需要獲取小程序頁(yè)面的帶有參數(shù)的二維碼。好,那就看文檔搞吧。

之前都是寫前端,沒有寫過后臺(tái)的東西,這次難得有機(jī)會(huì)組長(zhǎng)讓我試一試試用node來寫,那就寫吧。

1、首頁(yè)獲取token,發(fā)送request請(qǐng)求,用get的方式,在url后面加上小程序的grant_type,appid,secret,就順利拿到token了,注意,這個(gè)token是有有效時(shí)間的,小程序的是7200秒,也就是2個(gè)小時(shí),每天獲取的次數(shù)有限,需要有個(gè)中控服務(wù)器定時(shí)獲取token,由于我的業(yè)務(wù)量小,就沒有對(duì)token進(jìn)行保存了,每次都是重新獲取。

2、獲取完token之后,再發(fā)送請(qǐng)求獲取二維碼,坑的是,微信沒有告訴我們獲取的是二進(jìn)制流,之前一直是寫前端的代碼,對(duì)流沒有概念,百度之,谷歌之,折騰了兩天,終于搞定。還遇到了express的坑,用原來express的代碼,死活生成不了二維碼,新建一個(gè)express再生成二維碼就沒問題,莫名其妙的坑。

上代碼:

var fs = require('fs'); 
var request = require('request'); 
var wx_conf = require('../../conf/wx_conf');//這里放了微信appid跟appSecret,文件沒有引入進(jìn)來,要用的時(shí)候,改一下吧。 
var AccessToken = { 
 grant_type: 'client_credential', 
 appid: wx_conf.appId, 
 secret: wx_conf.appSecret 
} 
var wx_gettoken_url = 'https://api.weixin.qq.com/cgi-bin/token?grant_type=' + AccessToken.grant_type + '&appid=' + AccessToken.appid + '&secret=' + AccessToken.secret; 
//請(qǐng)求二維碼的參數(shù) 
var postData = { 
 path: "pages/index/index", 
 width: 430 
} 
var createQrcode = { 
 create: function() { 
  console.log('fn:create'); 
  this.getToken(); 
 }, 
 //獲取微信的token 
 getToken: function() { 
  console.log('fn:getToken'); 
  var that = this; 
  new Promise((resolve, reject) => { 
   console.log('進(jìn)入Promise方法了'); 
   request({ 
    method: 'GET', 
    url: wx_gettoken_url 
   }, function(err, res, body) { 
    if (res) { 
     resolve({ 
      isSuccess: true, 
      data: JSON.parse(body) 
     }); 
    } else { 
     console.log (err); 
     reject({ 
      isSuccess: false, 
      data: err 
     }); 
    } 
   }) 
  }).then(proData => { 
   that.getQrcode(proData); 
  }); 
 }, 
 //生成二維碼 
 getQrcode: function(proData) { 
  console.log ('fn:getQrcode'); 
  if (proData.isSuccess) { 
   postData = JSON.stringify(postData); 
   request({ 
    method: 'POST', 
    url: 'https://api.weixin.qq.com/cgi-bin/wxaapp/createwxaqrcode?access_token=' + proData.data.access_token, 
    body: postData 
   }).pipe(fs.createWriteStream('./public/images/index.png'));//路徑自己定義吧 
  } else { 
   console.log('Promise請(qǐng)求數(shù)據(jù)出錯(cuò)'); 
  } 
 } 
} 
module.exports = createQrcode;//暴露對(duì)象,調(diào)用create方法既可以創(chuàng)建二維碼 

感謝閱讀,希望能幫助到大家,謝謝大家對(duì)本站的支持!

相關(guān)文章

  • Node.js數(shù)據(jù)流Stream之Duplex流和Transform流用法

    Node.js數(shù)據(jù)流Stream之Duplex流和Transform流用法

    這篇文章介紹了Node.js數(shù)據(jù)流Stream之Duplex流和Transform流的用法,文中通過示例代碼介紹的非常詳細(xì)。對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2022-07-07
  • express中間件加載機(jī)制示例詳解

    express中間件加載機(jī)制示例詳解

    中間件是一種方法,可以接收客戶端發(fā)來的請(qǐng)求,可以對(duì)請(qǐng)求做出響應(yīng),也可以將請(qǐng)求繼續(xù)交給下一個(gè)中間件繼續(xù)處理,下面這篇文章主要給大家介紹了關(guān)于express中間件加載機(jī)制的相關(guān)資料,需要的朋友可以參考下
    2022-08-08
  • node.js的http.createServer過程深入解析

    node.js的http.createServer過程深入解析

    這篇文章主要給大家介紹了關(guān)于node.js的http.createServer過程的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家學(xué)習(xí)或者使用node.js具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-06-06
  • node學(xué)習(xí)記錄之搭建web服務(wù)器教程

    node學(xué)習(xí)記錄之搭建web服務(wù)器教程

    本篇文章主要介紹了詳解node學(xué)習(xí)記錄——搭建web服務(wù)器,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2017-02-02
  • Node.js之構(gòu)建WebSocket服務(wù)全過程

    Node.js之構(gòu)建WebSocket服務(wù)全過程

    這篇文章主要介紹了Node.js之構(gòu)建WebSocket服務(wù)全過程,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2024-09-09
  • node.js結(jié)合webSocket實(shí)現(xiàn)聊天室

    node.js結(jié)合webSocket實(shí)現(xiàn)聊天室

    于Node.js和WebSocket的聊天室,主要包括前端頁(yè)面,主要是用戶操作的頁(yè)面,還包括后臺(tái)數(shù)據(jù)通信以及邏輯處理,具有一定的參考價(jià)值,感興趣的可以了解一下
    2023-08-08
  • vscode 調(diào)試 node.js的方法步驟

    vscode 調(diào)試 node.js的方法步驟

    這篇文章主要介紹了vscode 調(diào)試 node.js的方法步驟,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-09-09
  • 詳解如何使用nvm管理Node.js多版本

    詳解如何使用nvm管理Node.js多版本

    這篇文章主要介紹了詳解如何使用nvm管理Node.js多版本,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2019-05-05
  • 使用nvm安裝node的詳細(xì)圖文教程

    使用nvm安裝node的詳細(xì)圖文教程

    nvm是nodejs的版本管理工具,可以在一個(gè)環(huán)境中同時(shí)安裝多個(gè)nodejs 版本(和配套的 npm 版本),并隨時(shí)切換,下面這篇文章主要給大家介紹了關(guān)于使用nvm安裝node的詳細(xì)圖文教程,需要的朋友可以參考下
    2023-02-02
  • nodejs獲取微信小程序帶參數(shù)二維碼實(shí)現(xiàn)代碼

    nodejs獲取微信小程序帶參數(shù)二維碼實(shí)現(xiàn)代碼

    這篇文章主要介紹了nodejs獲取微信小程序帶參數(shù)二維碼實(shí)現(xiàn)代碼的相關(guān)資料,需要的朋友可以參考下
    2017-04-04

最新評(píng)論

丽水市| 游戏| 马边| 满城县| 浙江省| 佛教| 南充市| 洛宁县| 运城市| 泌阳县| 溧阳市| 凤山县| 阿拉善右旗| 平潭县| 辰溪县| 叶城县| 东乡县| 蒲城县| SHOW| 辉南县| 阳谷县| 灵山县| 信宜市| 油尖旺区| 比如县| 饶河县| 宜春市| 黄浦区| 娄烦县| 延庆县| 寻甸| 海南省| 永春县| 门头沟区| 文山县| 寿光市| 万载县| 都兰县| 大悟县| 陇南市| 合山市|