|
|
@@ -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;
|
|
|
}
|