小程序 生成二维码

由后端去请求,然后返回图片Buffer

接口调用凭证ACCESS_TOKEN通过如下接口获取
	GET https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=APPID&secret=APPSECRET

1、接口A:适用于需要的码数量较少的业务场景。通过该接口生成的小程序码,永久有效,有数量限制
	POST https://api.weixin.qq.com/wxa/getwxacode?access_token=ACCESS_TOKEN
	请求参数
		access_token|cloudbase_access_token			接口调用凭证
		path			扫码进入的小程序页面路径,最大长度128字节,不能为空;
		width			二维码的宽度,单位px。最小280px,最大1280px
		auto_color		自动配置线条颜色,如果颜色依然是黑色,则说明不建议配置主色调
		line_color		auto_color为false时生效,使用rgb设置颜色例如{"r":"xxx","g":"xxx","b":"xxx"}十进制表示
		is_hyaline		是否需要透明底色,为true时,生成透明底色的小程序码
	
	POST参数需要转成JSON字符串,不支持form表单提交
	
	云函数方式
		const cloud = require('wx-server-sdk')
		cloud.init({
		  env: cloud.DYNAMIC_CURRENT_ENV,
		})
		exports.main = async (event, context) => {
		  try {
		    const result = await cloud.openapi.wxacode.get({
				path			扫码进入的小程序页面路径,最大长度128字节,不能为空;
				width			二维码的宽度,单位px。最小280px,最大1280px
				auto_color		自动配置线条颜色,如果颜色依然是黑色,则说明不建议配置主色调
				line_color		auto_color为false时生效,使用rgb设置颜色例如{"r":"xxx","g":"xxx","b":"xxx"}十进制表示
				is_hyaline		是否需要透明底色,为true时,生成透明底色的小程序码
		      })
		    return result
		  } catch (err) {
		    return err
		  }
		}

2、接口B:适用于需要的码数量极多的业务场景。通过该接口生成的小程序码,永久有效,数量暂无限制
	POST https://api.weixin.qq.com/wxa/getwxacodeunlimit?access_token=ACCESS_TOKEN
	请求参数
		access_token|cloudbase_access_token		接口调用凭证
		scene			最大32个可见字符,只支持数字,大小写英文以及部分特殊字符:!#$&'()*+,/:;=?@-._~,其它字符请自行编码为合法字符(因不支持%,中文无法使用urlencode处理,请使用其他编码方式)
			Page({
			  onLoad (query) {
			    scene需要使用decodeURIComponent才能获取到生成二维码时传入的 scene
			    const scene = decodeURIComponent(query.scene)
			  }
			})
		page			页面page,例如pages/index/index,根路径前不要填加/,不能携带参数(参数请放在scene字段里),如果不填写这个字段,默认跳主页面
		check_path		检查page是否存在,为true时page必须是已经发布的小程序存在的页面(否则报错);为false时允许小程序未发布或者page不存在,但page有数量上限(60000个)请勿滥用
		env_version		要打开的小程序版本。正式版为"release",体验版为"trial",开发版为"develop"
		width			二维码的宽度,单位px,最小280px,最大1280px
		auto_color		自动配置线条颜色,如果颜色依然是黑色,则说明不建议配置主色调,默认false
		line_color		auto_color为false时生效,使用rgb设置颜色例如{"r":"xxx","g":"xxx","b":"xxx"}十进制表示
		is_hyaline 		是否需要透明底色,为true时,生成透明底色的小程序
	
	POST参数需要转成JSON字符串,不支持form表单提交
	
	云函数方式:
		const cloud = require('wx-server-sdk')
		cloud.init({
		  env: cloud.DYNAMIC_CURRENT_ENV,
		})
		exports.main = async (event, context) => {
		  try {
		    const result = await cloud.openapi.wxacode.getUnlimited({
		        "page": 'pages/index/index',
		        "scene": 'a=1',
		        "checkPath": true,
		        "envVersion": 'release',
		        ...
		      })
		    return result
		  } catch (err) {
		    return err
		  }
		}

3、接口C:适用于需要的码数量较少的业务场景。通过该接口生成的小程序码,永久有效,有数量限制
	POST https://api.weixin.qq.com/cgi-bin/wxaapp/createwxaqrcode?access_token=ACCESS_TOKEN
	请求参数:
		access_token|cloudbase_access_token		接口调用凭证
		path	扫码进入的小程序页面路径,最大长度128字节,不能为空
		width	二维码的宽度,单位px。最小280px,最大1280px
	
	POST参数需要转成JSON字符串,不支持form表单提交
	
	云函数方式:
		const cloud = require('wx-server-sdk')
		cloud.init({
		  env: cloud.DYNAMIC_CURRENT_ENV,
		})
		exports.main = async (event, context) => {
		  try {
		    const result = await cloud.openapi.wxacode.createQRCode({
		        "path": 'page/index/index',
		        "width": 430
		      })
		    return result
		  } catch (err) {
		    return err
		  }
		}

4、接口D:一物一码,微信通过“一物一码”接口发放的二维码相比较普通链接二维码更安全、支持更小的印刷面积,支持跳转到指定小程序页面,且无数量限制
	详见:https://developers.weixin.qq.com/doc/offiaccount/Unique_Item_Code/Unique_Item_Code_Op_Guide.html

おすすめ

転載: blog.csdn.net/weixin_43294560/article/details/121262795