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

首頁 > 開發 > JS > 正文

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

2024-05-06 16:36:30
字體:
來源:轉載
供稿:網友

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方法既可以創建二維碼 

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


注:相關教程知識閱讀請移步到JavaScript/Ajax教程頻道。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 南澳县| 建湖县| 平顺县| 芜湖县| 徐闻县| 竹山县| 伊川县| 鲁甸县| 黎川县| 荥阳市| 浑源县| 九江市| 胶州市| 湖南省| 乐都县| 红桥区| 海南省| 宜宾县| 阿合奇县| 翁牛特旗| 克什克腾旗| 巴彦淖尔市| 滨海县| 双柏县| 应城市| 平度市| 平昌县| 枣阳市| 囊谦县| 电白县| 九龙城区| 上蔡县| 湘乡市| 堆龙德庆县| 米泉市| 同江市| 肇州县| 安阳县| 苏尼特左旗| 黑龙江省| 甘孜|