Heim  >  Artikel  >  Web-Frontend  >  Code-Implementierung von QR-Code-Scan-Datenvergrabungspunkten

Code-Implementierung von QR-Code-Scan-Datenvergrabungspunkten

不言
不言Original
2018-08-14 17:26:532711Durchsuche

Der Inhalt dieses Artikels befasst sich mit der Code-Implementierung von QR-Code-Scan-Daten. Er hat einen gewissen Referenzwert. Ich hoffe, dass er für Sie hilfreich ist.

Im Projekt aufgetretene Probleme: 1. Die Rezeption vergräbt die Produkt-Scan-Code-Daten (der Link im QR-Code ist ein externer Link, nicht sein eigenes Backend). Direkt an die Außenwelt weitergegeben. Für Links können die Daten nicht gezählt werden. Daher müssen Sie zuerst eine Anfrage an Ihr eigenes Backend stellen und dann die externen Links umleiten. 2. Wenn der Link im QR-Code zu lang ist, gibt es viele Punkte im QR-Code und die Scan- und Erkennungszeit des Mobiltelefons verlängert sich. Es ist notwendig, eine kurze Strategie zum Ersetzen von Links zu entwerfen

Code-Implementierung von QR-Code-Scan-Datenvergrabungspunkten

1. Vue-Frontend

Zitatqrcode-litePaket generiert QR-Code

import { toDataURL } from 'qrcode-lite'
...
const longUrl = 'http://h5.m.taobao.com/app/smg/index.html?a=1&b=2&c=3...'
this.shortUrl = this.getShortUrl(longUrl)  // 由长链接获取短链接
const qrOption = {
    width: 200,
    margin: 1,
    quality: 0.3
}
this.getQrcodeImgURL(this.shortUrl, qrOption).then(url => {
    this.qrcodeImg = url
}).catch((err) => {
    console.log(`Create qrcode img failed, ${err}`)
})

2. Laravel-Backend

Der Hintergrund implementiert hauptsächlich drei Funktionen: das Generieren kurzer Links, das Zwischenspeichern und Abrufen langer Links und das Umleiten

public function shortUrl(Request $request)
    {
        $url = $request->input('long_url');
        if (!$url) {
            return response()->json([
                'code' => '-1',
                'message' => 'The long_url is required!'
            ]);
        }

        $key =  Carbon::now()->timestamp; // 以当前时间戳作为缓存的key
      
        $expiresAt = Carbon::now()->addDays(10); // 短链接的有效时间为10天
        Cache::put($key, $url, $expiresAt);

        return response()->json([
            'code' => '0',
            'message' => 'Success short the url',
            'data' => $key
        ]);
    }
    
 public function redirect($shortCode)
    {
        $key = $shortCode;
        if (!$key) {
            return view("common.error", [
                "errorTitle" => "扫码错误",
                "errorMessage" => "二维码错误,请跟管理员确认!"]);
        }

        $redirectUrl = Cache::get($key, 'expiration');
        if ($redirectUrl == 'expiration') {
            return view("common.error", [
                "errorTitle" => "扫码错误",
                "errorMessage" => "二维码过期,请重新生成二维码后再扫码!"]);
        }

        // 记录埋点数据
        ...
        
        return redirect()->away($redirectUrl);
    }

Empfohlene verwandte Artikel:

Zweidimensional Wie verwende ich die Code-Anmeldung? Fassen Sie die Verwendung von QR-Code-Anmeldebeispielen zusammen

QR-Code zum Generieren von Bildern online PHP-Quellcode

Das obige ist der detaillierte Inhalt vonCode-Implementierung von QR-Code-Scan-Datenvergrabungspunkten. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn