微信小程序:二维码只能使用一次的业务逻辑

背景:
使用小程序的云数据库

业务逻辑:

  1. 会员生成二维码时,前端生成时间戳1,将该时间戳存储到后台数据库etsa字段
  2. 商户扫描会员二维码时,前端生成时间戳2,将该时间戳存储到后台数据库etsb字段,同时销毁etsa字段中存储的时间戳(销毁方式,例如:后台给一个随机八位数,前端不知道该随机数)
  3. 商户在和会员当前确认后,通过页面操作扣除会员积分,扣除积分时需要校验etsb字段存储的时间戳2,扣除完成后需要销毁etsb字段存储的时间戳2(销毁方式,例如:后台给一个随机八位数,前端不知道该随机数)

使用A/B时间戳的好处:

  1. 会员可以随时更新自己的时间戳1(etsa字段值)
  2. 会员二维码被扫码后,该二维码立即失效,其他人再扫描也无效,因为后台的时间戳1(etsa字段值)已经被销毁
  3. 商户扫码后生成自己的时间戳2(etsb字段值),一旦完成操作立即销毁该时间戳2,商户没有办法通过刷新页面不断重复操作,因为后台的时间戳2(etsb字段值)已经被销毁。

说明:
因为云数据库是文件型数据库,etsa,etsb,积分等属性都存储在同一条商户记录中,所以可以通过一条更新语句做到更新。

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容