app_code->getUnlimited($scene, [ // 'page' => $page, // 'width' => 280, // 'auto_color' => false, // 'line_color' => ['r' => 0, 'g' => 0, 'b' => 0], // ]); // 如果上面的方法不工作,尝试以下替代方案: // 方案1:使用get方法 // $response = $app->app_code->get($page . '?' . $scene, [ // 'width' => 280, // ]); outFileLog('1','giftCard','test'); // 方案2:使用getQrCode方法 $response = $app->app_code->getQrCode($page . '?' . $scene, 280 ); if (!($response instanceof \EasyWeChat\Kernel\Http\StreamResponse)) { Log::error('生成小程序码失败', ['response' => $response]); return false; } // 保存到本地临时目录 $saveDir = 'resource/image/gift_card/qr_code/'; if (!file_exists($saveDir)) { mkdir($saveDir, 0777, true); } $fileName = 'gift_card_' . $cardNo . '_' . time() . '.png'; $localPath = $saveDir . $fileName; // 保存小程序码到本地 $response->saveAs($saveDir, $fileName); // 上传到七牛云 $uploadPath = self::uploadToQiniu($localPath, 'gift_card/qr_code/' . $fileName); if ($uploadPath) { // 删除本地临时文件 if (file_exists($localPath)) { unlink($localPath); } return 'gift_card/qr_code/' . $fileName; } return false; } catch (\Exception $e) { Log::error('生成礼品卡二维码失败', ['error' => $e->getMessage()]); return false; } } /** * @notes 上传文件到七牛云 * @param string $localPath 本地文件路径 * @param string $remotePath 远程文件路径 * @return bool */ private static function uploadToQiniu($localPath, $remotePath) { try { $config = [ 'default' => ConfigService::get('storage', 'default', 'local'), 'engine' => ConfigService::get('storage_engine') ]; if ($config['default'] === 'qiniu') { $storageDriver = new Driver($config); return $storageDriver->fetch($localPath, $remotePath); } // 如果不是七牛云存储,返回本地路径 return true; } catch (\Exception $e) { Log::error('上传到七牛云失败', ['error' => $e->getMessage()]); return false; } } /** * @notes 批量生成二维码 * @param array $giftCards 礼品卡数组 * @return array */ public static function batchGenerateQrCode($giftCards) { $result = [ 'success' => 0, 'failed' => 0, 'total' => count($giftCards) ]; foreach ($giftCards as $card) { $qrCodePath = self::generateAndUploadQrCode($card['card_no'], $card['card_pass']); if ($qrCodePath) { // 更新数据库中的二维码路径 \app\common\model\GiftCardInfo::where('id', $card['id']) ->update(['qr_code_path' => $qrCodePath]); $result['success']++; } else { $result['failed']++; } } return $result; } }