微信小程序云开发生成带参小程序码流程

  

本文实例为大家分享了小程序生成带参小程序码的具体步骤,供大家参考,具体内容如下

  

<强>生成带参小程序码流程

  

1,小程序端上传生成二维码所需的参数到云函数
  2,云函数使用<强> 强和请求
  3、云函数使用+小程序端上传的参数生成二维码
  4、云函数将生成的二维码返回到小程序端(或者存到数据库返回文件标识,小程序端用文件标识进行获取,后续生成先在数据库查找,数据库没有再执行生成操作,防止重复生成小程序码文件)

  

小程序端上传小程序码所需的参数

        wx.cloud.callFunction ({   名称:' getImage ',//云函数名称   数据:{//小程序码所需的参数   页面:“页面/xxxx/xxxx”,   id: id、   },   完成:res=比;{   控制台。日志(callFunction测试结果:,res)   这一点。setData({//获取返回的小程序码   xcxCodeImageData: res.result,   })   }   })      

云函数用和请求

  

创建云函数,并在对应云函数目录中导入框架(用于数据请求),

        npm安装——保存请求//请求框架   npm安装,节省request-promise//请求框架承诺风格   npm安装,节省axios//数据请求框架,可将返回的数据类型设置为流“流”   #备注:安装可以简写为我;保存作用是将这个库添加到package.json里面      

云函数文件中导入框架

        const云=要求(“wx-server-sdk”)   const axios=要求(“axios”)   var rp=要求(“request-promise”);   const fs=要求(fs);   var=需要流(流);   #不需要全部导入,根据实际下面实际使用情况酌情导入   之前      

请求获取access_token

     //请求框架承诺风格   rp (' https://api.weixin.qq.com/cgi-bin/token& # 63; grant_type=client_credential& appid==appSecret秘密'   不要犹豫(函数(resultValue) {   控制台。日志(“请求成功:”)   console.log (JSON.parse (resultValue))   })   .catch(函数(err) {});   });//Nodejs原生写法   const http=要求(“https”)   const url=" https://api.weixin.qq.com/cgi-bin/token& # 63; grant_type=client_credential& appid==appSecret秘密”   http.get (url (res)=祝辞{   var resultValuehttps://www.yisu.com/zixun/=薄?   res.on(“数据”,(数据)=祝辞{   resultValue +=数据   })   res.on(“结束”,()=祝辞{   console.log (resultValue)   })   })。(“错误”,(e)=祝辞{   控制台。日志(“获取数据失败:$ {e.message} ')   })      

获取小程序码

     ={var选项   方法:“文章”,   url: https://api.weixin.qq.com/wxa/getwxacodeunlimit& # 63; access_token=' + access_token ',   身体:{   页面:“页面/xxx/xxx   场景:“xxx id=?   },   json:真   };   rp(选项)   不要犹豫(函数(parsedBody) {   console.log (parsedBody)//小程序码图片数据   })   .catch(函数(err) {});      

服务端完整代码一

        var rp=要求(“request-promise”);   const fs=要求(fs);   var=需要流(流);//请求微信access_token   rp (' https://api.weixin.qq.com/cgi-bin/token& # 63; grant_type=client_credential& appid=appid&秘密=秘密')   不要犹豫(函数(resultValue) {   控制台。日志(“请求成功:“+ resultValue)   console.log (JSON.parse (resultValue) .access_token)//请求小程序码   var http=要求(“http”),   data=https://www.yisu.com/zixun/{//小程序码参数“页面”:“页面/CardDetail/CardDetail”,   “宽度”:300年,   “现场”:“id=W6MIjlJhFW5Pec-Y”,   };   data=https://www.yisu.com/zixun/JSON.stringify(数据);={var选项   方法:“文章”,   主持人:“api.weixin.qq.com”,   路径:“wxa/getwxacodeunlimit& # 63; access_token=" + JSON.parse .access_token (resultValue),   标题:{   “内容类型”:“application/json”,   “内容长度”:data.length   }   };   var点播=http。请求(选项,函数(res) {   res.setEncoding(“二进制”);   var imgDatahttps://www.yisu.com/zixun/=?   res.on(“数据”,函数(块){   imgData +=块;   });   res.on(“结束”,函数(){//将返回的图片数据转化成还是方法fileContent参数所需的文件流形式,且本地输出数据正常,可以试着用此方法执行还是进行获取小程序码,作者采用了方法二   var bufferStream=new stream.PassThrough ();   bufferStream。结束(新缓冲区(imgData));   console.log('还是方法fileContent参数所需的文件流- - - - -”)   console.log (bufferStream)//崇高文本可以运行输出到本地,且可以打开二维码//本地存放路径   var路径='公共/+ Date.now () + . png”;   fs。writeFile(路径、imgData“二进制”功能(err) {   如果(err) {   控制台。日志(“失败”);   }   控制台。日志(“成功”);   });   });   });   req.write(数据);   req.end ();   })   .catch(函数(err) {});

微信小程序云开发生成带参小程序码流程