codecamp

微信小程序API 获取小程序页面二维码

获取二维码


通过后台接口可以获取小程序任意页面的二维码,扫描该二维码可以直接进入小程序对应的页面。目前微信支持两种二维码,小程序码(左),小程序二维码(右),如下所示:

小程序二维码

可以使用开发工具 1.02.1803130 及以后版本通过二维码编译功能调试所获得的二维码

qrcodecompile

获取小程序码

我们推荐生成并使用小程序码,它具有更好的辨识度。目前有两个接口可以生成小程序码,开发者可以根据自己的需要选择合适的接口。

接口A: 适用于需要的码数量较少的业务场景

接口地址:

https://api.weixin.qq.com/wxa/getwxacode?access_token=ACCESS_TOKEN

获取 access_token 详见文档

POST 参数说明

参数类型默认值说明
pathString 不能为空,最大长度 128 字节
widthInt430二维码的宽度
auto_colorBoolfalse自动配置线条颜色,如果颜色依然是黑色,则说明不建议配置主色调
line_colorObject{"r":"0","g":"0","b":"0"}auth_color 为 false 时生效,使用 rgb 设置颜色 例如 {"r":"xxx","g":"xxx","b":"xxx"}

注意:通过该接口生成的小程序码,永久有效,数量限制见文末说明,请谨慎使用。用户扫描该码进入小程序后,将直接进入 path 对应的页面。

接口B:适用于需要的码数量极多,或仅临时使用的业务场景

接口地址:

https://api.weixin.qq.com/wxa/getwxacodeunlimit?access_token=ACCESS_TOKEN

获取 access_token 详见文档

POST 参数说明

参数类型默认值说明
sceneString 最大32个可见字符,只支持数字,大小写英文以及部分特殊字符:!#$&'()*+,/:;=?@-._~,其它字符请自行编码为合法字符(因不支持%,中文无法使用 urlencode 处理,请使用其他编码方式)
pageString 必须是已经发布的小程序页面,例如 "pages/index/index" ,如果不填写这个字段,默认跳主页面
widthInt430二维码的宽度
auto_colorBoolfalse自动配置线条颜色,如果颜色依然是黑色,则说明不建议配置主色调
line_colorObject{"r":"0","g":"0","b":"0"}auto_color 为 false 时生效,使用 rgb 设置颜色 例如 {"r":"xxx","g":"xxx","b":"xxx"}

注意:通过该接口生成的小程序码,永久有效,数量暂无限制。用户扫描该码进入小程序后,开发者需在对应页面获取的码中 scene 字段的值,再做处理逻辑。使用如下代码可以获取到二维码中的 scene 字段的值。调试阶段可以使用开发工具的条件编译自定义参数 scene=xxxx 进行模拟,开发工具模拟时的 scene 的参数值需要进行 urlencode

// 这是首页的 js
Page({
  onLoad: function(options) {
    // options 中的 scene 需要使用 decodeURIComponent 才能获取到生成二维码时传入的 scene
    var scene = decodeURIComponent(options.scene)
  }
})

获取小程序二维码

接口C:适用于需要的码数量较少的业务场景

接口地址:

https://api.weixin.qq.com/cgi-bin/wxaapp/createwxaqrcode?access_token=ACCESS_TOKEN

获取 access_token 详见文档

POST 参数说明

参数类型默认值说明
pathString 不能为空,最大长度 128 字节
widthInt430二维码的宽度

注意:通过该接口生成的小程序二维码,永久有效,数量限制见文末说明,请谨慎使用。用户扫描该码进入小程序后,将直接进入 path 对应的页面。

示例:

{"path": "pages/index?query=1", "width": 430}

注:pages/index 需要在app.json的 pages 中定义

Bug & Tip

  1. tip:通过该接口,仅能生成已发布的小程序的二维码。
  2. tip:可以在开发者工具预览时生成开发版的带参二维码。
  3. tip:接口A加上接口C,总共生成的码数量限制为100,000,请谨慎调用。
  4. tip: POST 参数需要转成 json 字符串,不支持 form 表单提交。
  5. tip: auto_color line_color 参数仅对小程序码生效。

错误码

45009:B接口调用分钟频率受限(目前5000次/分钟,会调整),如需大量小程序码,建议预生成。

45029:A接口和C接口生成码个数总和到达最大个数限制。 

41030:B接口所传page页面不存在,或者小程序没有发布,请注意B接口没有path参数,传path参数虽然可以生成小程序码,但是只能跳主页面。

微信小程序API 转发 (Page.onShareAppMessage)
微信小程序API 获取用户过去三十天微信运动步数
温馨提示
下载编程狮App,免费阅读超1000+编程语言教程
取消
确定
目录

微信小程序 指南

目录结构

开放能力

微信小程序 调试

微信小程序 实时日志

微信小程序 小程序测速

微信小程序 基础组件

微信小程序 API

媒体

界面

微信小程序API 绘图

微信小程序 服务端

接口调用凭证

统一服务消息

微信小程序 服务市场

微信小程序 生物认证

微信小程序 云开发

服务端

微信小程序云开发服务端API 数据库

SDK文档

微信小程序 扩展能力

关闭

MIP.setData({ 'pageTheme' : getCookie('pageTheme') || {'day':true, 'night':false}, 'pageFontSize' : getCookie('pageFontSize') || 20 }); MIP.watch('pageTheme', function(newValue){ setCookie('pageTheme', JSON.stringify(newValue)) }); MIP.watch('pageFontSize', function(newValue){ setCookie('pageFontSize', newValue) }); function setCookie(name, value){ var days = 1; var exp = new Date(); exp.setTime(exp.getTime() + days*24*60*60*1000); document.cookie = name + '=' + value + ';expires=' + exp.toUTCString(); } function getCookie(name){ var reg = new RegExp('(^| )' + name + '=([^;]*)(;|$)'); return document.cookie.match(reg) ? JSON.parse(document.cookie.match(reg)[2]) : null; }