Heim > Artikel > Web-Frontend > Code-Implementierung von QR-Code-Scan-Datenvergrabungspunkten
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
1. Vue-Frontend
Zitatqrcode-lite
Paket 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:
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!