一、微信调研
我的二维码、微信群二维码、公众号二维码、小程序二维码扫码结果为网页地址
付款码、收款码扫码结果为18位数字字符串
微信扫码分析:
如:https://u.wechat.com/EG237mk0s78n-fcyBtFLpqQ
用外部浏览器、易信扫码跳转到微信下载页
用微信内置浏览器跳转到空白页
用微信扫一扫可以跳转到对应原生页面
微信通过子域名来区分对应不同的扫码结果
如我的u.wechat.com、微信群c.wechat.com: 公众号、小程序:mp.wechat.qq.com
微信app扫描二维码后会调用后台接口来获取跳转相关参数
二、扫码流程梳理
1.二维码生成流程:
(1)提供一个二维码生成公共内部接口,接口协议如下
(2)根据接口请求参数查询业务地址对应关系表,查询二维码前缀域名
(3)根据接口逻辑响应二维码字符串,保存二维码生成记录表,
说明:二维码字符串生成规则为:二维码前缀域名+二维码生成记录表主键id
如:https://code.myyule.com/space/1678695714927255552
- 二维码生成记录表中保存二维码扫码所需要的必要数据
- 二维码扫码流程:
- 客户端扫码拿到二维码字符串,请求扫码公共接口
- 后台判断是否网页地址,判断网页前缀
- 如网页地址前缀为https://code.myyule.com,则查询二维码生成记录表
- 执行接口逻辑封装响应结果
说明:如二维码被第三方扫码时,网页内部调用js接口判断是否运行app中,如不是则跳转下载页
如网页需要参数加载时,网页内部调用公共扫码接口
如二维码为普通字符串,提供一个网页展现文字,网页内部调用查询接口