node express后台生成微信朋友圈小程序码

1. 微信开发文档生成多数量小程序码API

2. 调用生成小程序码API前,需要先获取到access_token (代码顺序不做整理,只是说明)

因为业务的需要,有时候我们生成的小程序码不止一个小程序,我们可以将多个小程序的appid及对应secret一起存放在后台某个文件中,然后根据用户接口传递当前小程序appid信息,再去获取到对应的secret

接着调用微信API获取access_token信息,引用request模块和拿到的appid以及secret数据请求接口

let request = require('request');
const opt = `https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=${app_id}&secret=${secret}`
request(opt, (error, response, body) => {
    if (!error && response.statusCode === 200) {
    }
}

3. 下一步开始获取小程序码

小程序接口地址需要注意的是,虽然为POST请求,但是access_token的信息并不放在请求body里,而是跟在地址栏的后面

小程序码接收的参数以string类型放在scene里面,这里需要注意的是 (最大32个可见字符,只支持数字,大小写英文以及部分特殊字符:!#$&'()*+,/:;=?@-._~,其它字符请自行编码为合法字符(因不支持%,中文无法使用 urlencode 处理,请使用其他编码方式))

page是小程序码识别后跳转的地址,必须是已经发布的小程序存在的页面!!!

其他的信息还是根据文档来操作即可,设置resposeType格式为arrayBuffer,返回来的图片使用 fs 模块解析

let fs = require('fs')
const url = `https://api.weixin.qq.com/wxa/getwxacodeunlimit?access_token=${access_token}`
let page = path
let scene = `id=${id}`
const option = {
   url: url,
   json: true,
   method: "POST",
   body: {
       page: page,
       scene: scene,
       is_hyaline: true
   },
   resposeType: 'arrayBuffer'
}
request(option).pipe(fs.createWriteStream(`./public/upload/${XXXX}.png`).on('finish', () => {
    return callback(`/upload/${XXXX}.png`)
}))

图片保存名字根据传参及appid等信息进行命名,然后返回图片地址

再将返回的地址及文件名存入到数据库中,将图片地址返回到用户前端。

4. 用户页面如果再次请求获取小程序码,可先到数据库中查找对应参数的小程序码是否已经生成过,生成过的直接返回图片地址,没生成过的重复以上步骤,完成收割。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值