正文
以下步骤中的后端代码是基于Node.js进行编写,并使用了Koa 2框架。代码仅供参考。
步骤1:获取重要参数access_token
调用获取小程序二维码的REST API需要一个很重要的参数:
access_token
,这是用于获取微信公众平台API访问权限的重要参数,做过微信公众号HTML5开发的朋友对其肯定非常熟悉。没接触过的话,可以看一下
微信公众平台的文档
。
调用微信公众平台的API,已经有很多成熟的开源SDK可以使用,从Github上可以搜到很多不同语言实现的SDK。由于我用的是Node.js开发,所以使用了
co-wechat-api
。
以下是使用
co-wechat-api
来获取
access_token
的基本用法:
const WechatAPI = require('co-wechat-api')
const wxAppAPI = new WechatAPI('小程序的app id', '小程序的app secret')
const token = await wxAppAPI.ensureAccessToken()
console.log(token.accessToken)
步骤2:拼接url,发送请求获取二维码图片
const fs = require('fs')
const axios = require('axios')
// 拼接url
const url = `https://api.weixin.qq.com/wxa/getwxacodeunlimit?access_token=${token.accessToken}`
// 发送POST请求
const response = await axios.post(url, {
page: '小程序中Page的路径',
scene: '自定义参数,格式你自己决定'
}, { responseType: 'stream' })
// 将请求结果中的二进制流写入到本地文件qrcode.png
response.data.pipe(fs.createWriteStream('qrcode.png'))
在上面的代码中,我们将
access_token
作为query string参数拼接到url上,然后向这个url发送
POST
请求,传递的参数主要是
page
和
scene
,其中
page
参数是扫码后进入的小程序页面路径(比如pages/index/index,并且不能携带参数),而
scene
则传入的是我们的自定义参数。