wxacode.getUnlimited API原页面:https://developers.weixin.qq.com/miniprogram/dev/api-backend/open-api/qr-code/wxacode.getUnlimited.html
我是非常初级,文档只有一行代码:
POST https://api.weixin.qq.com/wxa/getwxacodeunlimit?access_token=ACCESS_TOKEN
我还是不知道怎么写,比如实际代码,POST写哪里?
下面是我弄了正常的代码,大家可以参考一下,面对小白!
下面代码是一个云函数的代码,我的云函数名字叫:get_qr
//代码不能达到生产级别,里面主要能参考的是 HTTPS调用和云调用的写法.
//因为我看完文档还是一脸懵,然后在群里,以及网上折腾了一天才弄出来,所以想给跟我一样的小白一个指引,希望能帮到跟我一样小白的朋友
//我这个是在云函数里用的
// 云函数入口文件
const cloud = require('wx-server-sdk');
const axios = require('axios')
//上传云函数时在终端用命令 npm install 安装依赖,这里还涉及get_qr云函数目录下建package.json,里面的代码,文底也列出来,以防小白不会
cloud.init({
env: "替换为你的环境id"
})
// 云函数入口函数
exports.main = async (event, context) => {
try {
//方法一、云调用
// const wxacodeResult = await cloud.openapi.wxacode.getUnlimited({
// scene: event.scene,
// page: event.page,
// width: 280 //二维码的宽度,单位 px,最小 280px,最大 1280px
// })
//方法二、HTTPS调用
//1.获取token
let options = {
method: 'get',
//APPID和AppSecret分别替换为你自己的,内容不用加引号,等号右侧还不能有空格
url: 'https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=APPID&secret=AppSecret', //
body: {
},
json: true
}
let token = await axios(options)
//从返回的token中只提取access_token
let access_token = token.data.access_token
// return wxacodeResult;access_token
if (access_token.errCode != 0) {
// 生成二维码失败,返回错误信息
return access_token;
}
//2.获取小程序码
options = {
method: 'POST',
url: 'https://api.weixin.qq.com/wxa/getwxacodeunlimit?access_token=' + access_token + '',
body: {
scene: event.scene,
page: event.page,
width: 280 //二维码的宽度,单位 px,最小 280px,最大 1280px
},
responseType: 'arraybuffer'
}
let wxacodeResult = await axios(options) //获取成功
// 判断是否错误
//HTTPS调用:返回值Buffer,异常返回Object(JSON),值有errCode,errmsg,errcode的值有45009(频率受限),41030(小程序页面不存在或未发布)
if (wxacodeResult.errcode != 0) {
// 生成二维码失败,返回错误信息
console.log('wxacodeResult.errcode:',wxacodeResult.errcode)
//return wxacodeResult.errmsg;//这里的判断好像errcode在返回值时也不是文档写的0,而是undefined,所以注释了
}
//。。。。。
//代码还没完,后面就是处理返回的小程序码,比如放如云存储什么的
} catch (err) {
return err
}
}
调用端的函数,这个是写在页面下的函数
getQRCode:function(){
// 从云函数获取小程序码
wx.cloud.callFunction({
name: 'get_qr',
data: {
page: 'pages/index/index',
scene: 'a=1',
}
}).then(res => {
console.log(res.result);
if (res.result.status == 0) {
// _this.setData({
qr_url: res.result.tempFileURL,
//opener: queryPage + '&' + queryScene,
console.log(qr_url)
// })
} else {
console.log("调用失败")
}
}).catch(err => {
// handle error
console.error("错误信息:",err);
console.log("捕捉到错误,调用失败")
})
}
package.json的代码
{
"name": "get_qr",
"version": "1.0.0",
"description": "",
"main": "index.js",
"scripts": {
"test": "echo \"Error: no test specified\" && exit 1"
},
"author": "",
"license": "ISC",
"dependencies": {
"wx-server-sdk": "latest",
"axios":"latest"
}
}
不能,语言太多,而且文档已经很详细,建议把基础知识打牢固
POST https://api.weixin.qq.com/wxa/getwxacodeunlimit?access_token=ACCESS_TOKEN
的意思是需要用POST的方式去请求https://api.weixin.qq.com/wxa/getwxacodeunlimit
需要在请求时携带access_token等参数
你用什么语言就用什么语言去实现上述逻辑,这有啥看不明白
这些不是参数么?
请学会如何「提问」(👈戳我)
建议贵公司招一个专业的后端开发