Преглед на файлове

更新二维码功能:添加在线生成和识别图片二维码功能

lzj500 преди 6 месеца
родител
ревизия
de95784dd1
променени са 2 файла, в които са добавени 23 реда и са изтрити 2 реда
  1. 21 1
      api/app/api/controller/Qrcode.php
  2. 2 1
      api/composer.json

+ 21 - 1
api/app/api/controller/Qrcode.php

@@ -7,13 +7,18 @@ namespace app\api\controller;
 use Endroid\QrCode\Builder\Builder;
 use Endroid\QrCode\ErrorCorrectionLevel\ErrorCorrectionLevelHigh;
 use Endroid\QrCode\Label\Alignment\LabelAlignmentCenter;
-use Endroid\QrCode\Label\Alignment\LabelAlignmentLeft;
 use Endroid\QrCode\Label\Font\NotoSans;
 use Endroid\QrCode\Writer\PngWriter;
 use think\facade\Log;
+use ZxingSPE\QrReader;
 
 class Qrcode extends Base
 {
+    /**
+     * 在线生成二维码
+     * 示例:https://api.ycxxkj.com/index.php/api/qrcode/online/text/WT202410012092476944/size/500/label/WT202410012092476944/lable_size/100
+     * @return \think\Response
+     */
     public function online()
     {
         $param = input("param.");
@@ -43,4 +48,19 @@ class Qrcode extends Base
         return response($result->getString(), 200)->contentType($result->getMimeType());
     }
 
+    /**
+     * 识别图片二维码
+     * @return void
+     * @throws \Exception
+     */
+    public function read()
+    {
+        $url = input("url", "");
+        if (!$url) {
+            $this->error("url为空");
+        }
+        $qrcodeReader = new QrReader($url);
+        $qrcodeText = $qrcodeReader->text();
+        $this->success(["text" => $qrcodeText]);
+    }
 }

+ 2 - 1
api/composer.json

@@ -28,7 +28,8 @@
         "hprose/hprose": "^2.0",
         "overtrue/wechat": "~5.0",
         "topthink/think-view": "^1.0",
-        "jaeger/querylist": "^4.2"
+        "jaeger/querylist": "^4.2",
+        "kharisma-wardhana/php_qr_decoder": "^1.0"
     },
     "require-dev": {
         "symfony/var-dumper": "^4.2",