Le contenu de cet article concerne la mise en œuvre du code des points d'enfouissement des données de numérisation de code QR. Il a une certaine valeur de référence. Les amis dans le besoin peuvent s'y référer.
Problèmes rencontrés dans le projet : 1. La réception enterre les données du code de numérisation du produit (le lien dans le code QR est un lien externe, pas son propre backend si c'est le cas). publié directement vers le monde extérieur. Pour les liens, les données ne peuvent pas être comptées, vous devez donc d'abord demander à votre propre backend, puis rediriger les liens externes. 2. Si le lien dans le code QR est trop long, il y aura de nombreux points dans le code QR et le temps de numérisation et de reconnaissance du téléphone mobile sera allongé. Il est nécessaire de concevoir une stratégie de remplacement de lien court
.
1. Vue front-end
Citationqrcode-lite
Le package génère un code QR
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. Arrière-plan Laravel
L'arrière-plan implémente principalement 3 fonctions, générer des liens courts, mettre en cache et récupérer des liens longs, et rediriger
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); }
Articles connexes recommandés :
Code QR pour générer des images en ligne Code source PHP
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!