前端,你能生成自定义的微信小程序二维码吗?(前端,你能生成自定义的微信小程序二维码吗)

我们经常会遇到微信小程序分享海报中带一个二维码,通过扫描或识别二维码可以直接进入对应的小程序,而且还会带一些参数,你生成过这种二维码吗?

前端和后端都可以生成二维码,由于小姐姐是做前端的,所以我们主要介绍前端是如何生成微信小程序二维码的!

一、实现原理及步骤:

1、通过小程序的 appId 和 密钥(secret) 通过请求官方提供的接口:'https://api.weixin.qq.com/cgi-bin/token,取得 access_token 。

2、准备需要传递的参数,和需要扫码进入的页面路径。

格式为:

let data = { scene: '1',要传递的参数 page: 'pages/index/index',扫码进入的小程序页面}

3、通过 access_token 获取小程序二维码,格式为二进制图片。

二、具体实现

1、获取 access_token

wx.request({ url: 'https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=?&secret=?', method: 'get', success: function (res) { console.log(res.data.access_token) }})

2、生成二维码。

let data = { scene: '1', //要传递的参数 page: 'pages/index/index', //扫码进入的小程序页面}let self = this;wx.request({ url: 'https://api.weixin.qq.com/wxa/getwxacodeunlimit?access_token=31_92uKEw2joJRdBP75gViNwBwZu-LGZ4-99EwkjpOy-iT3yW4B4Q7e_iscapbVQ3uIBoJXdo5sv0IJVyz8e6XfxAZHAbmmSFi8W1Fhu-OTSNJBQ57_h0aOlfjUIxChman-gaxZy_XOQVgdwpJ8DTRaAFAJZX', method: 'post', data:data, responseType: 'arraybuffer', //将返回数据 按文本解析修改为arraybuffer success: function (res) { self.setData({ //再arraybuffer转为base64 显示图片 url: 'data:image/png;base64,' wx.arrayBufferToBase64(res.data) }) }})

3、完整代码

Page({ /* 页面的初始数据 */ data: { url:"", token:"" }, getToken(){ let self = this; wx.request({ url: 'https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=wx77c6ac47129ed2bf&secret=e5d38623f660b4387d62bd6efcaf67e8', method: 'get', success: function (res) { self.setData({ token:res.data.access_token }) self.createQR() } }) }, createQR(){ let self = this let data = { scene: '123456', page: 'pages/index/index', } wx.request({ url: `https://api.weixin.qq.com/wxa/getwxacodeunlimit?access_token=${this.data.token}`, method: 'post', data:data, responseType: 'arraybuffer', //将返回数据 按文本解析修改为arraybuffer success: function (res) { self.setData({ //再arraybuffer转为base64 显示图片 url: 'data:image/png;base64,' wx.arrayBufferToBase64(res.data) }) } }) }, /** * 生命周期函数--监听页面加载 */ onLoad: function (options) { this.getToken() }, })

三、常见问题

3.1、生成失败

生成二维码失败,并提示:{"errcode":41030,"errmsg":"invalid page rid: 6265f9d4-2debac47-4d9bd706"}

"errcode":41030 可能的原因有:

  • page 路径不正确。
  • page 路径最前面有 "/",需要去掉 “/”
  • 微信小程序是否上线,扫码只能进入线上版本。
  • page 路径是否已经在线上实现

3.2、安全问题

  • 为了小程序安全起见,https://api.weixin.qq.com 通常不可以在前端直接请求。
  • 微信小程序直接调用 https://api.weixin.qq.com ,会出现错误,原因是 api.weixin.qq.com 不能被配置为服务器域名,所以是不能请求的。

前端可以通过云开发不依靠后台实现自定义生成小程序二维码,或者通过后台生成。

3.3、access_token

access_token 单日获取次数有限制,超过次数限制将无法获取到 access_token,使用时可以开启缓存,有效期为 2 小时。

access_token 均来自于中控服务器,不应该各自去刷新,否则容易造成冲突,导致access_token 覆盖而影响业务;

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

(0)
上一篇 2023年4月3日 上午11:37
下一篇 2023年4月3日 上午11:53

相关推荐

  • 以“党建红”引领“应急蓝”(党建引领应急工作)

    近年来,浙江松阳县应急管理局以系统构建“应急先锋”党建品牌为总抓手,以赓续红色精神为着力点,以“党建红”引领“应急蓝”,实现应急管理体系和能力现代化,为护航“二次创业”和现代化“田…

    科研百科 2023年11月11日
    172
  • 垂直科研项目成果专利

    垂直科研项目成果专利 随着科技的不断发展,垂直领域科研项目也在不断涌现。在医学领域,有一个项目成果获得了专利,这个项目是垂直领域的科研项目,它将医学和科技相结合,为人们提供更好的医…

    科研百科 2025年3月11日
    2
  • 医院项目化管理系统

    医院项目化管理系统 医院项目化管理系统是一种可以帮助医院进行项目管理的软件系统。该系统可以帮助医院提高工作效率,减少人力和时间成本,同时也可以提高医院的质量和效益。 医院项目化管理…

    科研百科 2024年12月23日
    4
  • 通过此次科研项目

    通过此次科研项目 随着科技的不断发展,我们迎来了新的科研项目。此次科研项目旨在通过研究人工智能,来探索更加深入的人工智能技术,并希望能够将这些技术应用于实际生活中,为人们带来更多的…

    科研百科 2025年2月20日
    2
  • 医院召开科研项目启动会

    医院召开科研项目启动会 近日,某医院召开科研项目启动会,旨在推动科研项目的开展,提高医院的学术水平和科研能力。 会议由医院的科研管理部门领导主持,全体科研人员参加了会议。会议议程包…

    科研百科 2025年4月3日
    4
  • 后台管理系统项目描述

    后台管理系统项目描述 随着数字化时代的到来,企业的数字化进程也在不断加速。为了更好地管理企业的业务和数据,企业需要建立一个现代化的后台管理系统。这个系统可以为企业提供高效、稳定、安…

  • 西藏自治区科研项目名单

    西藏自治区科研项目名单 西藏自治区是一个位于中国西南的自治区,拥有丰富的自然资源和独特的文化历史。近年来,为了推动西藏自治区的经济发展和文化传承,政府推出了一系列科研项目,促进了当…

    科研百科 2025年5月26日
    2
  • 东昌府区直机关工委夯实基层基础,党建工作取得明显成效(党建工作抓基础)

    记者 张丽娜 12月8日,聊城市东昌府区新闻办公室召开新闻发布会,邀请聊城嘉明经济开发区管委会主任、区直机关工委书记时宏伟,区直机关工委副书记王玉璞就东昌府区委区直机关工委工作做简…

    科研百科 2023年11月10日
    146
  • 科研保密重要性

    科研保密的重要性 科研保密是科学研究中至关重要的一环。科学研究的结果往往涉及重大的国家利益、社会价值和人类福祉,因此必须严格保护。科研保密不仅关系到科学研究的顺利进行,更关系到国家…

    科研百科 2024年10月11日
    53
  • 合同管理流程和办法

    合同管理流程和办法 随着社会主义市场经济的不断发展,合同管理已成为企业管理中不可或缺的一部分。合同管理流程和办法的制定不仅能够有效地管理合同,还可以提高企业的竞争力和信誉度。本文将…

    科研百科 2025年1月6日
    5