二维码短连接生成思路

一、前言

有时需要用户扫描一个二维码,然后跳转到自己服务器的前端页面(当然跳转到后端url也行)。

二维码本质就是一个url,手机扫码后、就去访问这个url。

但是,如果url过长(地址过于复杂、参数过多),生成的二维码就会很密,手机扫码后解析和跳转花费的时间也会很长,用户体验就会很差。

此时,就需要想办法用一个短连接来代替长连接,生成的二维码密度也会小些,手机扫码后就能快速跳转。

二、思路

1.本人的系统中,有一个数据库表short_url,里面主要有4列:

id
hash_code #存储长连接md5加密后得到的串
true_url #存储长连接
create_time

其中,true_url存储原本要跳转的长连接;
hash_url存储对应的短连接,是使用DigestUtils.md5Hex(true_url)这个方法,把长连接进行md5加密、得到的串存入hash_code里。

2.生成二维码时,找一个后台接口,然后传一个参数hash_code,然后就用这个地址生成二维码。(这个地址很短,可以算短链接)
例如:

http://localhost:8080/hash?code=qlwekjradioufqwe

这个url就是短连接二维码地址。

3.扫描这个短链接二维码时,就先跳转到/hash后台接口,后台接口获取到code=qlwekjradioufqwe,然后查询数据库表short_url:

id    hash_code           true_url
1     qlwekjradioufqwe    http://localhost:8080/a/b/c/d/e/f?a=1&b=2&c=3

根据hash_code查询到true_url,然后重定向到这个长连接即可http://localhost:8080/a/b/c/d/e/f?a=1&b=2&c=3(当然实际的长连接可能会非常长)

4.查询数据库的操作,可以用redis当中间件,减小数据库压力。

三、总结

目前是因为手机扫描比较复杂的二维码(长连接)解析较慢、用户体验差,所以才用短链接二维码来实现,二维码简单些手机扫码解析会快很多。

后续后台系统从短连接重定向到长连接会很快,比直接扫长连接二维码会快很多。

因此才用短连接二维码代替长连接二维码,优化用户体验。

### 如何在Scratch中实现二维码生成功能 对于希望在Scratch项目中集二维码生成功能的需求而言,直接利用Scratch本身内置的功能可能无法满足这一特定需求,因为Scratch主要面向教育目的设计,其核心功能并不涵盖高级的数据编码技术如二维码生成。不过,可以通过几种间接的方法来达目标。 #### 方法一:借助外部服务API与自定义积木 一种可行的方式是通过网络请求调用在线的二维码生成API,在Scratch中有能力发送HTTP GET/POST请求并处理返回的结果。这通常涉及到创建一个自定义积木用于封装API交互逻辑[^2]。具体来说: 1. 寻找提供RESTful API接口的免费二维码服务平台; 2. 利用`http request`扩展或者自制广播机制向该平台发起查询请求; 3. 将获取到的图片链接下载保存至本地变量或直接显示于舞台之上; 这种方法的优点在于灵活性高、易于更新维护,缺点则是依赖第三方服务器稳定性以及可能存在隐私安全顾虑。 #### 方法二:转换思路—从Python到Scratch 考虑到有现的Python库可以非常简便地完二维码制作工作,如果能够接受一定程度上的变通,则不妨考虑先用Python编写一段小程序专门负责生产所需的QR Code图像文件,再将其作为素材导入Scratch工程内使用。这种方式不仅绕过了原生环境局限性,还促进了跨学科知识的学习应用。 ```python import pyqrcode url = "https://example.com" code = pyqrcode.create(url) code.png('my_code.png', scale=8) ``` 上述脚本展示了怎样仅需几行简洁明了的语句就能快速产出高质量的PNG格式二维码图案,并指定适当的比例因子以适应不同的展示场景需求。 #### 方法三:探索社区资源 鉴于Scratch拥有庞大的用户群体和支持体系,或许已经有人分享过类似的解决方案。访问官方论坛或是GitHub仓库搜索关键词“Scratch QR code generator”,也许能找到满意的品插件或者是详细的教程指南帮助解决问题[^1]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

追逐梦想永不停

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值