国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > JavaScript > 正文

nodejs獲取微信小程序帶參數二維碼實現代碼

2019-11-19 16:50:57
字體:
來源:轉載
供稿:網友

nodejs獲取微信小程序帶參數二維碼實現代碼

由于項目需求,需要獲取小程序頁面的帶有參數的二維碼。好,那就看文檔搞吧。

之前都是寫前端,沒有寫過后臺的東西,這次難得有機會組長讓我試一試試用node來寫,那就寫吧。

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

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

上代碼:

var fs = require('fs'); var request = require('request'); var wx_conf = require('../../conf/wx_conf');//這里放了微信appid跟appSecret,文件沒有引入進來,要用的時候,改一下吧。 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; //請求二維碼的參數 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('進入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請求數據出錯');   }  } } module.exports = createQrcode;//暴露對象,調用create方法既可以創建二維碼 

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

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 怀宁县| 呼和浩特市| 昌黎县| 阜宁县| 上蔡县| 五河县| 吉林市| 西乌珠穆沁旗| 伊川县| 阿荣旗| 剑阁县| 乐昌市| 邢台县| 荆州市| 长寿区| 鹿邑县| 台江县| 黄浦区| 子长县| 拉孜县| 美姑县| 永川市| 年辖:市辖区| 离岛区| 观塘区| 罗江县| 云和县| 南华县| 嘉定区| 宁远县| 凉山| 合肥市| 安龙县| 河北省| 竹山县| 信丰县| 北安市| 奎屯市| 武邑县| 宜州市| 宣城市|