亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 開發 > JS > 正文

使用express獲取微信小程序二維碼小記

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

前言

遇到了一個需求,想要掃碼后,進入微信小程序的某一個頁面,這就要求二維碼攜帶參數。

微信小程序開發文檔很簡單,但不太具體。

經百度和折騰,在express中成功獲得了帶參數的二維碼。

總結以下幾步,供參考。

1.express項目中引入http請求工具

為什么要在服務端引入這個工具?因為還需要用這個工具去找微信服務端拿access_token接口憑證,來保證安全。

筆者用的是axios。cmd進入根目錄,npm安裝。

# npm i axios --save

肯定需要寫一個獲得二維碼的接口。在寫這個接口的文件中引入axios即可,接口路由的寫法不具體展開介紹。

import express from 'express';import axios from 'axios'; //引入axios庫let qrcode= express.Router();qrcode.post('/getQrode',async (req,res)=>{  try {    ...    //待寫接口內容區域  } catch (error) {    throw error;  }})export default qrcode;

引入了庫,定義了路由,也定義了一個post接口。第一步準備完畢。

2.獲取access_token

找微信服務端拿access_token,需要用上剛剛引入的axios工具了。

通過官方文檔介紹,獲取access_token需要三個參數,一個常量grant_type,兩個變量分別是appid和secret(注冊小程序的時候就會獲得)

修改接口即可獲得access_token

import express from 'express';import axios from 'axios';let qrcode= express.Router();qrcode.post('/share',async (req,res)=>{  try {    let appid = 'wxc********b7a';    let secret = '2bfa**************e8682';    let url = `https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=${appid}&secret=${secret}`    axios.get(url).then(res2=>{      //access_token就在res2中      let access_token = res2.data.access_token;      //待繼續補充區域    });  } catch (error) {    console.log(error)  }})export default qrcode;

拿到了access_token接口憑證了,繼續下一步。

3.獲取二維碼的二進制數據

閱讀文檔,得知需要進一步傳參,請求微信服務端獲取二維碼的buffer數據。

需要攜帶的參數可以寫在scene中。其他參數文檔中介紹的已經很具體。

然而,這里有兩個坑要注意!

第一個坑:access_token參數要寫在url中,不然請求后會報未傳access_token的錯。

第二個坑:要設置響應格式,否則請求回來的buffer數據總是被編譯成String字符串,造成文件損壞,就無法轉化為正常圖片(這個折磨了我好久)

import express from 'express';import axios from 'axios';let qrcode = express.Router();qrcode.post('/share',async (req,res)=>{  try {    let appid = 'wxc********b7a';    let secret = '2bfa**************e8682';    let url = `https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=${appid}&secret=${secret}`    axios.get(url).then(res2=>{      let scene = req.body._id;//開發者自己自定義的參數      axios(        {          headers:{"Content-type":"application/json"},          method: 'post',          responseType: 'arraybuffer',          url: 'https://api.weixin.qq.com/wxa/getwxacodeunlimit?access_token='+access_token+'',          data:{            scene:scene,            page:'pages/infor/main',            width: 280          }        }      ).then(res3=>{        //請求到的二維碼buffer就在res3中        //待完善區域      })    });  } catch (error) {    console.log(error)  }})export default qrcode;

第二次axios請求,用option配置的方式,設置了responseType,避開了第二個坑。二維碼的buffer數據就在res3中。

4.用buffer生成圖片

只要buffer數據是完整的,就能正確生成二維碼。

因為需要生成圖片,所以需要引用fs模塊和path模塊。

import express from 'express';import axios from 'axios';import path from 'path';import fs from 'fs';let qrcode= express.Router();qrcode.post('/share',async (req,res)=>{  try {    let appid = 'wxc********b7a';    let secret = '2bfa**************e8682';    let url = `https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=${appid}&secret=${secret}`;    axios.get(url).then(res2=>{      let access_token = res2.data.access_token;      let scene = req.body._id;      axios(        {          headers:{"Content-type":"application/json"},          method: 'post',          responseType: 'arraybuffer',          url: 'https://api.weixin.qq.com/wxa/getwxacodeunlimit?access_token='+access_token+'',          data:{            scene:scene,            page:'pages/infor/main',            width: 280          }        }      ).then(res3=>{        let src = path.dirname(__dirname).replace(////g,'/')+`/public/photo/${req.body._id}.png`;        fs.writeFile(src, res3.data, function(err) {          if(err) {console.log(err);}          res.json({msg:ok});        });      })    });  } catch (error) {    console.log(error);    res.json({error})  }})export default qrcode;

就會在根目錄下的public/photo文件夾中生成制定名稱的二維碼圖片。供小程序訪問調用。

后記

獲取二維碼后,可以在前端利用canvas進行圖片繪制,也可以在后端生成圖片。可根據業務需求自行選擇。

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持VeVb武林網。


注:相關教程知識閱讀請移步到JavaScript/Ajax教程頻道。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
日韩中文字幕免费| 97精品视频在线观看| 亚洲淫片在线视频| 国产成人精品综合| 红桃视频成人在线观看| 久久久国产成人精品| 久久99久久99精品中文字幕| 亚洲精品国产福利| 亚洲欧美日韩在线高清直播| 日韩av电影国产| 国产精品综合久久久| 色久欧美在线视频观看| 日韩电影网在线| 国产精品高潮呻吟视频| 91国在线精品国内播放| 亚洲va男人天堂| 国产精品成人aaaaa网站| 国产精品久久久久91| 日韩欧中文字幕| 国产一区二区动漫| 97在线免费观看视频| 日韩欧美成人免费视频| 日韩av中文字幕在线播放| 国产99视频在线观看| 国产精品第一第二| 亚洲偷熟乱区亚洲香蕉av| 国产亚洲精品久久久优势| 欧美乱大交做爰xxxⅹ性3| 欧美日韩国产精品一区二区三区四区| 最近2019中文字幕在线高清| 日韩精品久久久久| 伊人久久精品视频| 成人午夜高潮视频| 国产一区二区成人| 成人国产精品av| 国产精品视频区1| 久久精品国产亚洲7777| 国产精品一区二区三区毛片淫片| 国产精品电影在线观看| 日韩国产中文字幕| 日本韩国欧美精品大片卡二| 亚洲国产精品999| 亚洲精品v天堂中文字幕| 97在线观看免费高清| 国产精品久久久久77777| 欧美寡妇偷汉性猛交| 国产精欧美一区二区三区| 欧美成人激情视频免费观看| 国产成人精品久久二区二区| 91亚洲国产成人精品性色| 91在线网站视频| 91夜夜未满十八勿入爽爽影院| 午夜精品久久久久久久99黑人| 欧美日韩国产激情| 国产成人精品网站| 亚洲成人精品久久| 国产精品一区二区3区| 91视频免费在线| 亚洲国模精品一区| 国内精品在线一区| 国产精品丝袜久久久久久不卡| 欧美精品在线视频观看| 久久久国产视频91| 欧美日韩免费网站| 青青久久av北条麻妃黑人| 国产精品老牛影院在线观看| 色香阁99久久精品久久久| 最新国产精品亚洲| 国产精品欧美激情在线播放| 亚洲网在线观看| 在线一区二区日韩| 日韩国产在线播放| 成人国产精品色哟哟| 欧美影院久久久| 亚洲丝袜av一区| 日韩精品视频免费专区在线播放| 日韩视频在线免费| 日韩在线www| 久久精品国产电影| 久久久亚洲精选| 日韩国产激情在线| 久久亚洲欧美日韩精品专区| 国产极品jizzhd欧美| 亚洲国产精品999| 久久久久久九九九| 日韩精品在线观看一区| 日韩在线中文视频| 欧美激情亚洲精品| 国产精品精品久久久久久| 色久欧美在线视频观看| 国模吧一区二区三区| 日韩大胆人体377p| 91精品国产自产在线老师啪| 亚洲福利在线看| 91亚洲精品久久久| 伊人男人综合视频网| 成人在线免费观看视视频| 国产免费一区二区三区在线能观看| 亚洲va久久久噜噜噜久久天堂| 国产精品激情av在线播放| 亚洲第一视频在线观看| 精品国内自产拍在线观看| 久久夜色撩人精品| 国产精品色视频| 欧美精品成人91久久久久久久| 国产美女被下药99| 国产在线拍偷自揄拍精品| 91社区国产高清| 日韩电影大片中文字幕| 国产成人91久久精品| 4444欧美成人kkkk| 国产精品手机播放| 97在线观看视频国产| 国产精品免费小视频| 日韩在线视频观看| 啪一啪鲁一鲁2019在线视频| 久久精品亚洲国产| 国产视频精品一区二区三区| 国产精品专区第二| 九九九热精品免费视频观看网站| 亚洲国产免费av| 国产精品久久久久久av福利软件| 国产成人精品免费久久久久| 日韩大陆欧美高清视频区| 亚洲第一区第一页| 日韩欧美国产网站| 亚洲精品99久久久久| 国产精品久久久久久亚洲影视| 国产精品视频永久免费播放| 欧美日韩亚洲视频一区| 国产精品成人一区二区| 亚洲激情视频网站| 国产精品91久久久久久| 欧美极品美女视频网站在线观看免费| 亚洲第一av在线| 成人a级免费视频| 国产视频精品一区二区三区| 亚洲已满18点击进入在线看片| 性亚洲最疯狂xxxx高清| 亚洲第一免费网站| 一区二区日韩精品| 国产香蕉一区二区三区在线视频| 久久精品国产成人| 亚洲天堂男人的天堂| **欧美日韩vr在线| 久久人人爽人人| 国产一区二区久久精品| 91久久在线观看| 中文字幕日韩高清| 国产美女主播一区| 国产精品久久久亚洲| 国产日韩精品一区二区| 日韩专区中文字幕| 亚洲欧美另类自拍| 欧美尤物巨大精品爽| 欧美激情国产高清| 亚洲人成电影在线播放| 亚洲电影在线观看| 欧美精品videosex性欧美| 精品国产欧美一区二区三区成人| 国产精品一区二区久久久久| 欧美日本黄视频| 国产精品久久77777| 在线精品国产欧美|