搞定签到码,一切皆可码!!!微信小程序篇

此篇是摸鱼的时候写的(活gan完了),嘘嘘嘘....

很多人买了我的课堂签到,基于此,我打算写一写里面最有趣的签到码功能到底是如何实现的。

来个图,先理解一下业务逻辑

简单理解,生成二维码的过程就是把有用的信息藏在二维码,扫码就是取出有用的信息。

理解这个后,生成签到码其实就是把签到ID藏在二维码,扫码就是取出签到码ID。

为什么藏的是签到ID,而不是签到名称等等其他信息呢?这是个好问题。

举个例子:

存在数据库里的一条签到记录里大概如下:

{

      qiandao_id:xxxxxxxx,

      qiandao_name:第一节课签到

      ......

}

藏在二维码的信息一般是唯一性的信息,也就是不会重复的信息。例如签到ID。而签到名称可能会重复,所以不适合藏在二维码里。

那为什么藏的信息要唯一呢?这又是个好问题。

因为我们需要根据扫码取出来的信息去进行查询或更改数据库信息。例如我们扫签到码根据取出来的签到ID去查询获取该签到记录的签到名称等等其他信息进行展示。假设藏的是签到名称,数据库可能存了2条以上同名的签到记录。那程序就不知道该显示哪个签到名称等等信息了。

有了前面概念的基础,我们开始实操代码。

1、使用云函数生成签到码,并且把二维码存储到数据库。

生成签到码的云函数如下:

// 云函数入口文件const cloud = require('wx-server-sdk');cloud.init({   env:'你的云环境ID',});// 云函数入口函数exports.main = async (event, context) => {   const result = await cloud.openapi.wxacode.getUnlimited({    // 调用生成小程序码的接口,携带一些参数,例如:scene    page:event.page,  //扫码后进入的页面    scene: event.qiandao_id,  //把签到ID藏在二维码里  });    const upload = await cloud.uploadFile({    // 生成的小程序码上传到云存储中    cloudPath: 'qrcode/' + Date.now() + '-' + Math.random() + '.png', // 生成的小程序码存储到云存储当中去的路径    fileContent: result.buffer,  });  return upload.fileID; // 返回文件的fileID,也就是该图片的网址。};

前端调用云函数:

 //调用云函数 chang_code(){    let that = this;    wx.showLoading({      title: '正在生成',    })    //调用云函数获取云函数生成的小程序码    wx.cloud.callFunction({      name:'get_code',      data:{         qiandao_id:that.data.qiandao_id,         page:'pages/code_qiandao/code_qiandao',      },      success:function(res){           //res.result就是云函数生成返回的签到码           //此处可以写存储签到码到数据库的代码      },      fail(er){        console.log(er)        wx.hideLoading()        wx.showToast({          title: '生成失败,请重试',          icon: 'none',          duration: 2000        })      }    })  },

2、扫码获取签到ID,并且处理业务逻辑。

 //扫码进来,这个函数就会自动执行,获取到签到ID  onLoad: function (options) {    this.setData({       qiandao_id:options.scene, // options.scene就是藏在二维码的签到ID    })    //示例:此函数去查询获取该签到的基本信息并展示(想怎么操作就怎么操作)    this.get_xinxi(options.scene)  },

微信小程序的二维码都是如此而来,代码实现不同而已。例如核酸码、绿码、取餐码.....

甚至你也可以弄个简历码、表白码

由此可见,一切皆可码!!!

打工只是生存的手段,生活才是目的。

(下班做饭,生活的气息)

下期再会~

  • 11
    点赞
  • 19
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
微信小程序签到demo是一种通过微信小程序扫描二维进行签到的功能示例。 在实现微信小程序签到demo的过程中,需要通过微信小程序的开发工具进行开发。首先,我们需要设计一个扫页面,页面上显示一个扫描二维的按钮。 当用户点击扫描按钮时,小程序会调用微信的扫功能,打开相机进行扫描。用户将手机对准二维,系统会自动识别二维内容,并将内容返回给小程序小程序接收到二维内容后,可以进行相应的处理。例如,可以通过二维内容进行身份验证,确认用户身份是否合法。如果验证通过,可以将用户的签到信息存储到服务器或本地数据库中,以便记录用户的签到记录。同时,也可以展示一些签到成功的提示信息,让用户知道签到成功。 在签到过程中,还可以加入一些额外的功能。例如,可以通过小程序调用手机的定位功能,获取用户的当前位置信息,将签到地点与用户的位置进行对比,确保用户在签到地点进行签到。同时,也可以设置签到时间限制,仅允许在一定时间范围内进行签到。 通过微信小程序的扫签到demo,可以方便快捷地进行签到操作,提高签到效率,减少人工操作。并且,该功能可以灵活扩展,可以根据不同的需求,添加一些个性化的功能,满足特定场景下的签到要求。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值