专栏首页知晓程序开发 | 小程序如何生成带参数二维码?

开发 | 小程序如何生成带参数二维码?

许多小程序开发者,都需要获取进入小程序不同页面的二维码:包括常见的四方形「QR 码」和新推出的「小程序码」。

这时候,我们直接在小程序后台中获取到的二维码,就远远无法满足我们以上需求了。贴心的是,微信提供了「获取小程序二维码」的接口

通过这个接口,商家和开发者能够制作进入不同页面的小程序二维码,而不会限定扫码进入小程序主页

下面,知晓程序(微信号 zxcx0101)就以「虚荣数据库」小程序的某个英雄详情页为例,展示这个接口的使用方法。

准备工作

首先,我们需要确保在小程序的 app.json 代码中,已经注册了相应的页面

在本例的设定中,我们就需要在 pages 里,将 pages/detail/hero/hero 这个页面注册进去。

当然,相应目录下也需要有相应的页面文件,且你的小程序已经有已发布的线上版本。否则,用户扫码后,微信会提示出错。

接下来,我们需要到微信小程序后台,获取小程序的 AppSecret(如果已经获取,这一步可以跳过)。

进入小程序后台,点击左侧「设置」,找到「开发设置」,我们就能找到 AppSecret 一项。点击「获取」或「重置」,扫码之后,网页就会显示新的 AppSecret。

需要注意的是,如果你之前生成过新的 AppSecret,那么旧的 AppSecret 会随这个操作而失效。

开发者也需要记得妥善保管 AppSecret,尽可能保证 AppSecret 不会丢失、泄漏。

获取二维码

有了小程序的 AppID 和 AppSecret,我们就能利用服务器,获取小程序的二维码了。

在本例,我们通过模拟请求的方式,让大家了解这个接口的使用方法和原理。

首先,我们要利用 AppID 和 AppSecret,获取 Access Token

这一步,我们请求的地址是 https://api.weixin.qq.com/cgi-bin/token,你需要使用 GET 方法,传递你的 AppID 和 AppSecret。

从结果中,我们可以得知:执行这个操作后,微信会给你返回一个 JSON 数据包。解析这个数据包,我们就可以获得 Access Token。

有了 Access Token,我们就可以获取不同的小程序二维码了。

微信提供了两个 POST 获取小程序二维码的接口。你可以根据你的业务需求,自由选择任一接口,获取相应的小程序二维码(GET 参数中的 ACCESS_TOKEN 部分填入上一步我们获取到的 Access Token)。

  • 获取最新的「菊花式」小程序码,可以使用这个接口:https://api.weixin.qq.com/wxa/getwxacode?access_token=ACCESS_TOKEN
  • 想要经典的「狗皮膏药式」QR 码,可以使用这个接口:https://api.weixin.qq.com/cgi-bin/wxaapp/createwxaqrcode?access_token=ACCESS_TOKEN

POST 请求体中,需要包含小程序的页面地址,以及传入小程序的参数。记住,这个页面必须要在小程序里的 app.json 进行注册。

本例中,JSON 请求体如下:

发送请求后,微信会直接返回一张制作好的「小程序码」。

现在,长按上图扫一扫,看看是不是到了指定页面了?

注意事项

除了我们文中举例的接口,微信还开放了另一个与二维码相关的接口,就是「扫普通二维码进入小程序」

通过这个接口,开发者自己就可以按照一定规律,自行批量生成 QR 码。但它需要开发者有已经备案的域名,且个人主体小程序无法使用这个接口。

微信将通过「获取小程序二维码」接口获取的二维码的数量限定在十万个,并且似乎并没有「注销以前生成的二维码」的功能和机制。

所以,如果你有非常大量的小程序二维码生成需求,建议使用普通链接二维码的方式生成 QR 码。如果需要使用微信提供的二维码生成接口,也要注意不要超过限额。

本文分享自微信公众号 - 知晓程序(zxcx0101),作者:让你更知小程序的

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2017-04-22

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 不负春光!用这 6 款小程序,出去踏青出去浪

    知晓君
  • 本周最好的 100 个小程序,都在这里了 | 知晓程序周榜

    知晓君
  • 遇到小程序的难题?我们帮你解答 | 小程序问答 #2

    知晓君
  • 【JAVA零基础入门系列】Day14 Java对象的克隆

      今天要介绍一个概念,对象的克隆。本篇有一定难度,请先做好心理准备。看不懂的话可以多看两遍,还是不懂的话,可以在下方留言,我会看情况进行修改和补充。   克隆...

    弗兰克的猫
  • MPSO?粗略解读小程序的关键字搜索

    本文未经允许,可随意转载^_^! 早在小程序发布前,也就是2016年11月份左右,我们当时就猜想小程序有搜索的入口。然后老大就跟我说:这里有一坑,我说什么坑,他...

    花叔
  • 接口对前后端和测试的意义

    接口测试主要用于外部系统与系统之间以及内部各个子系统之间的交互点,定义特定的交互点,然后通过这些交互点来,通过一些特殊的规则也就是协议,来进行数据之间的交互。

    用户7880705
  • 在Android中使用Anntation来代替ENUM的方法

    本文介绍了在Android中使用Anntation来代替ENUM的方法,分享给大家,具体如下:

    砸漏
  • Wijmo 更优美的jQuery UI部件集:复合图表(CompositeChart)

    Wijmo的CompositeChart控件允许您使用一个Chart来分析和展现复杂的数据。相同的数据可以使用不同的可视化效果,不同的图表类型展现在一个图表内,...

    葡萄城控件
  • 使用Retrofit打印请求日志,过滤改变服务器返回结果,直接获取String字符串直接获取字符串手动解析查看Retrofit请求网络日志自定义Interceptor实现过滤改变请求返回的数据(可使用

    Xiaolei123
  • Spring Security详解 顶

    2020-01-05 01:57:16.482 INFO 3932 --- [ main] .s.s.UserDetailsService...

    算法之名

扫码关注云+社区

领取腾讯云代金券