第五期:如何通过知晓云生成带参数二维码 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
Sign Up Now
For Existing Member  Sign In
如果想在 V2EX 获得更好的推广效果,欢迎了解 PRO 会员机制:
pro/about
ifanr2016

第五期:如何通过知晓云生成带参数二维码

  •  
  •   ifanr2016 Apr 15, 2020 1477 views
    This topic created in 2202 days ago, the information mentioned may be changed or developed.

    作者:知晓云 - 小程序开发快人一步 来源:知晓课堂

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

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

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

    下面,我们就以某游戏资料库小程序的英雄详情页为例,展示这个接口的使用方法。

    准备工作

    首先,我们需要确保在小程序的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 )。

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

    本例中,JSON 请求体如下:

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

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

    注意事项

    除了我们文中举例的接口,微信还开放了另一个与二维码相关的接口,即wxacodeunlimit来获取小程序码。(数量不限;但无法携带参数)

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

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

    更便捷的方式

    知晓云 JS SDK 将上面的实现过程进行了封装,一个接口就可以实现上文提到的三种获取方式(知晓云还会帮你存储管理 Access Token )。该接口为:

    wx.BaaS.getWXACode(type, params)

    接口中type的三种类型

    • wxacode:获取小程序码,适用于需要的码数量较少的场景,生成的码永久有效,数量有限

    • wxacodeunlimit:获取小程序码,适用于需要的码数量极多的业务场景,生成的码永久有效,数量暂无限制

    • xaqrcode:获取小程序二维码,该接口生成的码永久有效,数量有限
      params 对应了微信获取二维码的参数,详情请查阅知晓云 SDK 文档

    注意,该接口不需要再传入 Access Token,但在调用前需要提前确保:

    • 在知晓云「设置」->SDK 页面中开启了 SDK 生成小程序码的权限

    • 知晓云「设置」->小程序页面中已经配置好了 AppID 和 AppSecret

    PS:知晓云后台自带二维码生成功能,无需开发也能快速获取进入小程序不同页面的二维码。

    相关阅读

    第一期:快速实现图片爬虫

    第二期:快速生成分享海报

    第三期:处理微信卡券消息

    第四期:自动回复客服消息

    关注「知晓云」公众号,点击菜单栏「知晓云」-「知晓课堂」,获取更多开发教程。

    No Comments Yet
    About     Help     Advertise     Blog     API     FAQ     Solana     5607 Online   Highest 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 42ms UTC 08:33 PVG 16:33 LAX 01:33 JFK 04:33
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86