当前位置: 首页 > 后端技术 > Node.js

使用Leancloud开发小程序——生成小程序二维码

时间:2023-04-03 21:13:50 Node.js

什么是LeancloudLeancloud是国内知名的BaaS提供商,什么是BaaS提供商?通俗地说,就是为你提供增删改查等后台服务的API。通过这些API,您可以将数据存储在云数据库中,而无需关心服务器环境和内部的处理逻辑。它提供的SDK有js、java、object-c、python等。类似的BaaS提供者还有谷歌的firebase(www.firebase.com),但是因为墙不推荐。因此,我们无需自己搭建后台环境就可以实现小程序的后端需求,可以大大提高开发效率,缩短开发周期。如何使用Leancloud进行小程序开发关于增删改查Leancloud提供了完整的增删改查API,只要按照文档调用即可,这里就不详细介绍了,请见谅参见文档:https://leancloud.cn/docs/lea...关于小程序授权登录下面地址详细介绍如何实现授权登录:https://leancloud.cn/docs/wea...用户系统需要小程序调用后端API。这里所说的后台API调用的需求是指类似的:微信支付、二维码生成、微信提现、微信发红包、发送模板信息等,要实现这些功能,必须使用Leancloud的云引擎中的云函数.什么是云函数就是我们可以简单的写一个可执行的节点函数部署到leancloud云引擎,直接使用leancloudAPI直接执行你写的函数,写后端的时候不需要关心后端服务器如前所述,环境如此复杂,只需要执行一条命令,即可将云函数部署到云端执行。详情请看:https://leancloud.cn/docs/lea...云函数的写法https://leancloud.cn/docs/lea...这里有详细说明,就不说了进入细节。如何部署云函数这里介绍如何使用github部署:注册并创建leancloud应用:不用多说,网址:https://leancloud.cn设置云引擎进入第一步创建应用-云引擎-settings,设置里面填git地址,这个代码库可以fork我的代码仓库(https://github.com/jasondu/le...),然后复制DeployKey,然后到【github上的Deploykeys】你的fork的设置页面]选项,添加一个DeployKeys,写任何你想要的Title,Key只是被复制,然后点击Save。部署云引擎回到CloudEngine-Deployment,填写“分支或版本号”master,点击deploy部署云引擎。下面我们就以《生成小程序二维码》来讲解如何使用云函数开发小程序,后台生成小程序二维码普通二维码能否生成无限类:无限类和有限类?这些类别分别对应以下三个接口:小程序二维码,有限制https://api.weixin.qq.com/wxa/getwxacode?access_token=ACCESS_TOKEN小程序二维码,无限制https://api.weixin.qq.com/wxa/getwxacodeunlimit?access_token=ACCESS_TOKEN普通二维码,限定https://api.weixin.qq.com/cgi-bin/wxaapp/createwxaqrcode?access_token=ACCESS_TOKEN云函数规划入参校验获取accessToken调用二维码生成获取二维码二进制流的接口将二维码保存到leancloud代码中(params.type){case1:url='https://api.weixin.qq.com/wxa/getwxacode';requireParams.push('path');break;case2:url='https://api.weixin.qq.com/wxa/getwxacodeunlimit';requireParams.push('page');requireParams.push('scene');break;case3:url='https://api.weixin.qq.com/cgi-bin/wxaapp/createwxaqrcode';requireParams.push('路径');休息;}//1.验证入参requireValidate(params,requireParams).then(params=>{//2.获取accessTokenwxapi.getLatestToken((err,accessToken)=>{//3.调用二维码生成接口获取二维码二进制流axios.post(url,params,{params:{access_token:accessToken.accessToken,dataType:'JSON',},responseType:'arraybuffer'}).then((res)=>{//4.保存二维码到leancloudif(typeofres.data==='undefined'){returnresponse.error('生成二维码失败');}else{constimageFile=newAV.File('file-qrcode.png',res.data);imageFile.save().then((res)=>{returnresponse.success(res);},(error)=>{returnresponse.错误(错误);});}});});}).catch(err=>{returnresponse.error(err);});})requireValidate:验证输入参数的方法注意:这里获取二维码必须以axios的形式请求,否则返回的图片信息将无法保存。调用云函数(小程序代码)constAV=require('../libs/leancloud/av-weapp-min.js');constparamsJson={type:1,path:'/pages/index/index'};AV.Cloud.run('getwxacode',paramsJson).then(function(data){//调用成功,生成二维码链接console.log(data.url);},function(err){//处理调用失败console.log(err);});代码地址https://github.com/jasondu/le...