moonsflyer 4 ヶ月 前
コミット
38c44233ab
1 ファイル変更13 行追加59 行削除
  1. 13 59
      app/common/service/GiftCardQrCodeService.php

+ 13 - 59
app/common/service/GiftCardQrCodeService.php

@@ -4,17 +4,11 @@ namespace app\common\service;
 
 use app\common\service\storage\Driver;
 use app\common\service\ConfigService;
-// 使用BaconQrCode替代SimpleSoftwareIO
-use BaconQrCode\Renderer\ImageRenderer;
-use BaconQrCode\Renderer\Image\ImagickImageBackEnd;
-use BaconQrCode\Renderer\RendererStyle\RendererStyle;
-use BaconQrCode\Writer;
+// 正确导入SimpleSoftwareIO QrCode
+use SimpleSoftwareIO\QrCode\Generator;
 use think\facade\Log;
 use app\common\service\WeChatConfigService;
 use EasyWeChat\Factory;
-use BaconQrCode\Renderer\Image\SvgImageBackEnd;
-use BaconQrCode\Renderer\Image\EpsImageBackEnd;
-
 
 /**
  * 礼品卡二维码生成服务
@@ -42,18 +36,16 @@ class GiftCardQrCodeService
             $tempFileName = 'qrcode_' . $cardNo . '_' . time() . '.png';
             $tempFilePath = $tempDir . $tempFileName;
 
-
-            // 在生成部分
-            $renderer = new ImageRenderer(
-                new RendererStyle(430, 2),
-                new ImagickImageBackEnd() // 如果没有Imagick,尝试其他BackEnd
-            );
-            $writer = new Writer($renderer);
-            $qrCodeData = $writer->writeString($qrContent);
+            // 使用SimpleSoftwareIO QrCode生成二维码 - 正确的调用方式
+            $qrCodeGenerator = new Generator();
+            $qrCode = $qrCodeGenerator->format('png')
+                ->size(430)
+                ->margin(2)
+                ->generate($qrContent);
             
             // 保存到文件
-            file_put_contents($tempFilePath, $qrCodeData);
-            outFileLog($qrCodeData, 'qr_code', '$qrCodeData');
+            file_put_contents($tempFilePath, $qrCode);
+            
             Log::info('Regular QR code generated successfully', [
                 'cardNo' => $cardNo,
                 'scene' => $cardPass,
@@ -63,17 +55,17 @@ class GiftCardQrCodeService
 
             // Generate Qiniu cloud storage path
             $remotePath = 'gift_card_qrcode/' . date('Ymd') . '/' . $tempFileName;
-            outFileLog($remotePath, 'qr_code', '$remotePath');
+            
             // Upload to Qiniu cloud
             if (self::uploadToQiniu($tempFilePath, $remotePath)) {
                 // Delete temp file
-//                unlink($tempFilePath);
+                // unlink($tempFilePath);
 
                 // Return Qiniu cloud file path
                 $config = ConfigService::get('storage', 'qiniu', []);
                 $domain = rtrim($config['domain'] ?? '', '/');
                 $fullUrl = $domain . '/' . $remotePath;
-                outFileLog($fullUrl, 'qr_code', '$fullUrl');
+                
                 Log::info('Regular QR code generated and uploaded successfully', [
                     'cardNo' => $cardNo,
                     'remotePath' => $remotePath,
@@ -240,42 +232,4 @@ class GiftCardQrCodeService
 
         return $result;
     }
-}
-
-// 生成SVG格式然后转换为PNG
-$renderer = new ImageRenderer(
-    new RendererStyle(430, 2),
-    new SvgImageBackEnd()
-);
-$writer = new Writer($renderer);
-$svgString = $writer->writeString($qrContent);
-
-// 如果需要PNG格式,可以使用其他方法转换
-// 或者直接保存SVG格式
-file_put_contents($tempFilePath, $svgString);
-
-// 清理文件末尾的重复代码(删除第235-256行)
-
-// 在生成部分添加扩展检查
-try {
-    // 检查Imagick扩展
-    if (!extension_loaded('imagick')) {
-        throw new \Exception('Imagick扩展未安装,无法生成二维码');
-    }
-    
-    $renderer = new ImageRenderer(
-        new RendererStyle(430, 2),
-        new ImagickImageBackEnd()
-    );
-    $writer = new Writer($renderer);
-    $qrCodeData = $writer->writeString($qrContent);
-    
-    file_put_contents($tempFilePath, $qrCodeData);
-    
-    // 移除调试代码
-    // outFileLog($qrCodeData, 'qr_code', '$qrCodeData');
-    
-} catch (\Exception $e) {
-    Log::error('二维码生成失败', ['error' => $e->getMessage()]);
-    return false;
 }