首页 > 编程知识 正文

微信小程序在哪里,链接生成小程序码

时间:2023-05-03 06:01:11 阅读:156575 作者:326

一、前言因为学业和工作的事情很多,所以长期以来一直放弃耕作。 在这期间,学到了很多东西,进行了大小近10个项目。 在这个过程中,我越来越感受到了记录的重要性,所以我想在百忙之中抽出时间写博客,记录开发过程中的知识点。 古往今来,人们常说的一句话,就是让自己能回头看,希望能对有需要的人有所帮助。

二、需求分析在日常的微博项目中,我们经常需要用到宣传海报、邀请海报等功能。 例如,制作邀请朋友的海报,向用户发送朋友圈,转发朋友的邀请。 到时候,我们需要知道那些用户是你邀请的,并轻易给出报酬。 这是一般的需要。 我们该如何实现类似的需求呢?

三、对这些海报进行思路分析,其实最关键的是长按扫描码识别的附送二维码(二维码)。

通过查看微信小程序开发文档,您可以看到有两种方法来生成这个参与式二维码(小程序代码)。 海报中描绘了这个参与的二维码时,这个二维码的参数可以识别哪个用户制作的海报,将其他用户在applet上扫描代码时识别的id保存在数据库中,判断是谁邀请的人。

很久没有码字了,可能有点麻烦。

总结一下:根据二维码带的参数来判断是谁的海报,这个参数一定是能够定位出来用户的,一般来说,可以使用用户的openid来作为这个标识参数。

举个简单的例子(云开发) :

定义一个集合:user

有两个用户

U1

字段名的值的说明_id123456789只要使用由云数据库自动生成的id即可,在不自己生成_openid112233而插入数据时附带,是系统字段superiorId445566

字段名值的说明_id987654321使用在云数据库中自动生成的id即可,即使不自己生成_openidhsdxtz,在插入数据时也具有该id。 另外,在系统字段superiorId112233上位的openid字段之上的数据表中,显然U2扫描了U1的二维码(二维码)

那么,需要统计U1邀请了多少人时,可以在数据中调查多少用户的superiorId的值等于U1的openid。

四、两大实现途径如上所述,实现这一需求的途径大致有两种。 那么,我们来分析一下这两种实现方法各自的特征吧。 我们在开发中方便选择合适的方法。

方法一:小程序代码微信为动态生成小程序代码提供了三种方法。 这里只对云呼叫的方式进行说明。 传统服务器开发的东西,可以基于文档进行操作,原理差不多。

1、a界面: wxacode.createQRCode 2、c界面: wxacode.get 3、b界面: wxacode.getUnlimited分析这三个界面,了解详情

接口生成数限时生效手机参数长接口AAC接口合10W以下长期128字节接口CAC接口合10W以下长期128字节接口b不限长期32可视字符可见其实AC接口但是,参数不同。

AC接口和B接口的差异是生成的数量限制和携带参数的长度因此在选择时,需要考虑生成数和所携带的参数长度这两个条件。

track2)普通二维码在简单比较了小程序的三个接口之后,将看到这个普通二维码的特征。 如果上述三个接口不能满足业务需求,例如,如果是参数长、生成数量特别大的场景,可以尝试用这种典型的二维码方法来实现。

这个二维码与接口相比,生成的数量没有限制,参数理论可以很长(虽然没有尝试具体是多长,但是一定比128长),时效也长期有效。 像这样,直接在任何业务场景下,直接选择这种方式似乎都是正确的吗?

当然,普通二维码最少需要考虑这两个方面。

一、开放范围:企业、媒体、政府及其他组织类型小程序。换言之,它不支持个人开发者帐户的开设和使用。

二、开发起来相对来说比较复杂,需要用到服务器和域名来进行配置。会踩不少坑。

这个方法的实现有点复杂,在这里就不多吵了,但是有这方面需求的朋友可以有私信和我交流,互相学习。

最后需要注意的是,无论用什么方法实现,小程序都必须在发布后能够正常扫描和使用代码。

五.交流接口实现代码示例(云开发) b接口使用起来与交流接口差不多,可以直接在官网上看到代码示例。 应该可以绕过触类。 所以这里我只试着用AC的一个接口。 主要引出常见问题。

1、创建新的云函数后,将权限放置在config.json文件中(createQRCode示例) )。

2、index.js代码

const cloud=require (wx-server-SDK ) ) cloud.init ) env : cloud.dynamic _ current _ env,}exports.main

createQRCode({ path: event.path, width: event.width }) return result } catch (err) { return err }}

3、调用(如果不是本地调试,记得提交云函数)

if (posterType == 1) {// 配置页面路径以及参数 path = "pages/indexStudent1/indexStudent1?superiorId1=" + superiorId1 + "&superiorId2=" + superiorId2 } else if (posterType == 2) { path = "pages/teacherSubmit/teacherSubmit?superiorId=" + superiorId2 } // 调用云函数,请求生成小程序码 buffer 数据 const QRCodeObj = await wx.cloud.callFunction({ name: 'createQRCode', data: { path: path, width: 430 } }) // 需要注意的是返回来的数据是Buffer格式 // 需要转换成为base64格式(为了方便存储复用,毕竟次数有限) const base64 = "data:image/jpeg;base64," + wx.arrayBufferToBase64(QRCodeObj.result.buffer.data) // 将数据直接扔进image组件的src参数里面即可 this.setData({ imgUrl: base64 })

4、wxml

5、效果

六、说明与优化

只是截取了部分的关键代码。小程序码也做了处理。
触发函数、实现复用的代码都没有贴出来(为了安全,不方便贴出来)。

优化的话,第一个肯定就是考虑复用了,即新用户第一次调用云函数去生成,下次的话,就直接从数据库里面读出来生成。

当然前提是参数一致。

为什么要复用呢,主要是因为即使是同一个二维码,参数什么都一致,你调用了十次函数生成,也算是十个码,不是一个码。所以在数量有限的情况下,尽可能考虑复用。

如果这篇文章帮到了你,点个赞吧。

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。