You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

基于NestJS的Web应用后端二维码扫码数据追踪难题求助

二维码扫码追踪最优方案(基于NestJS后端)

一、通用场景(活动、地点等非Wi-Fi类二维码)

采用唯一短链接+重定向方案,适配绝大多数非Wi-Fi场景的追踪需求:

  • 为每个生成的二维码分配唯一标识ID,生成指向NestJS后端/track/:qrId的URL作为二维码内容。
  • 后端/track/:qrId端点核心逻辑:
    1. 记录扫码元数据:时间戳、访问IP、设备UA、地理位置(可选,通过IP解析),存入数据库(如PostgreSQL、MongoDB)。
    2. 根据二维码预设的目标类型,重定向至对应的最终地址(活动页面、导航链接等)。
  • NestJS控制器代码示例:
    import { Controller, Get, Param, Redirect, Req } from '@nestjs/common';
    import { Request } from 'express';
    import { QrTrackingService } from './qr-tracking.service';
    
    @Controller('track')
    export class QrTrackingController {
      constructor(private readonly trackingService: QrTrackingService) {}
    
      @Get(':qrId')
      @Redirect()
      async trackScan(@Param('qrId') qrId: string, @Req() req: Request) {
        // 写入扫码记录
        await this.trackingService.createRecord({
          qrId,
          scannedAt: new Date(),
          ip: req.ip,
          userAgent: req.get('User-Agent'),
        });
        // 获取二维码预设目标地址并跳转
        const qrConfig = await this.trackingService.getQrConfig(qrId);
        return { url: qrConfig.targetUrl };
      }
    }
    

二、Wi-Fi二维码追踪方案(核心痛点解决)

Wi-Fi二维码的标准格式是WIFI:T:WPA;S:ssid;P:password;;,用户扫码后直接触发网络连接,无法通过URL重定向追踪,推荐以下两种可靠方案:

方案1:双重触发复合二维码(优先推荐)

生成包含Wi-Fi配置+隐性追踪请求的复合内容:

  • 将Wi-Fi配置字符串与一个指向NestJS后端/track-wifi/:qrId的1x1像素图片URL合并(用换行分隔,如WIFI:T:WPA;S:mywifi;P:123456;;\nhttps://your-domain/track-wifi/xxx)。
  • 用户扫码后,设备会优先解析Wi-Fi配置并连接网络,同时绝大多数扫码工具会自动加载内容中的图片链接,触发后端追踪端点。
  • 后端/track-wifi/:qrId端点逻辑:记录扫码元数据,返回空的1x1像素图片(避免干扰用户体验)。
  • 注意:确保图片URL为HTTPS,避免混合内容拦截;测试主流扫码工具(微信、系统自带扫码)的兼容性,部分工具可能需要调整内容格式优化识别率。

方案2:连接后主动上报(补充方案)

依赖用户连接Wi-Fi后的主动触发:

  • 在Wi-Fi网络中配置 captive portal(连接后弹出的认证页面),页面加载时自动向后端/track-wifi/:qrId发送追踪请求(仅适用于公共Wi-Fi场景)。
  • 或在二维码中附加提示文案(如“连接Wi-Fi后点击查看更多”),引导用户打开包含追踪逻辑的轻量页面,这种方式数据准确性依赖用户操作意愿。

三、统一数据管理

在NestJS后端封装QrTrackingService,统一处理扫码数据:

  • 提供按二维码ID、时间范围、设备类型等维度的统计接口,支持查询扫码次数、用户分布等数据。
  • 定期清理过期追踪数据,优化数据库性能。

四、优化与合规建议

  • 测试主流扫码工具的解析兼容性,针对不同工具调整二维码内容格式。
  • 明确在隐私政策中告知用户扫码行为会被记录,符合数据合规要求。
  • 为追踪端点添加缓存控制逻辑,避免重复请求被多次记录。

内容的提问来源于stack exchange,提问作者Yazan Zoghbi

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.27 22:47:38