QR code в Laravel

Страница с примерами  http://laravel.jobtools.ru/qrcode 
Исходники:  https://bitbucket.org/gerz/laravel.jobtools.ru/src/master/ 

QR-код — это машиночитаемый код, состоящий из массива черно-белых квадратов, который обычно используется для хранения URL-адресов или любой другой информации для чтения камерой на смартфоне. В этой статье мы рассмотрим как создавать различные типы QR-кодов в Laravel.

Будем использовать отличный пакет для Laravel simple-qrcode, который является оболочкой для BaconQrCode.

Устанавливаем пакет

Загружаем simple-qrcode в свой проект Laravel с помощью composer, запустив его в каталоге вашего проекта:

composer require simplesoftwareio/simple-qrcode

Пример использования

Вы можете быстро сгенерировать QR-код, который будет содержать заданную строку, используя метод QrCode::generate("Ваша строка")

Добавьте маршрут qr-code в ваш файл маршрутов routes/web.php

Route::get('qr-code', function () {
    return QrCode::encoding('UTF-8')->size(500)->generate('Добро пожаловать на jobtools.ru');
});

Пример http://laravel.jobtools.ru/qr-code

Вы также можете использовать генерацию кодов в шаблонах Blade:

{!! QrCode::generate('http://jobtools.ru'); !!}

Изменение цвета QR-кода

Вы можете установить свой собственный цвет шаблона и фона для QR-кода используя color(red, green, blue) и backgroundColor(red, green, blue) методы. Цветовые коды RGB можно взять здесь.

ПРИМЕЧАНИЕ. Устройства для чтения QR-кодов могут испытывать трудности при чтении цветного QR-кода, поэтому лучше придерживаться неокрашенной версии, если вы хотите, чтобы ваш QR-код работал с большинством сканеров.

Вы также можете изменить поле отступа вокруг QR-кода, используя метод margin(5). Чем ниже значение, тем меньше отступ.

Вставка изображения внутрь QR-кода

Вы также можете поместить изображение в центр вашего QR-кода, используя метод merge('filename.png'), эта функция принимает только .png файлы, и вам также нужно указать формат ответа, что это image/png.

Route::get('qr-code', function () {
        $pngImage = QrCode::format('png')->merge('image.png', 0.3, true)
                        ->size(500)->errorCorrection('H')
                        ->generate('http://jobtools.ru');
 
        return response($pngImage)->header('Content-type','image/png');
});

Можно обернуть код в тег img в шаблоне Blade:

<img src="data:image/png;base64, {!! base64_encode(QrCode::format('png')->merge('image.png', 0.3, true)
                        ->size(500)->errorCorrection('H')
                        ->generate('http://jobtools.ru')) !!} ">

Кодирование различных данных в QR-коде

Для того, чтобы сканеры QR-кодов, предлагали определенные действия после прочтений вашего кода, нужно специальным образом зашить их в код.

Электронный адрес

//Задаем email, тему и тело письма
QrCode::email('admin@jobtools.ru', 'Спасибо за примеры', 'Выражаю благодарность 8)');
 
//Указываем только тему и тело письма, адрес пользователь введет самостоятельно
QrCode::email(null, 'HellO', 'Текст письма');
 
//Указываем только адрес
QrCode::email('admin@jobtools.ru');

Номер телефона

Откроется приложение для набора номера

QrCode::phoneNumber('123-345-567');

СМС

Откроется приложение для отправки СМС

//Задаем номер для отправки сообщения
QrCode::SMS('555-555-5555'); 
//Задаем номер и текст сообщения
QrCode::SMS('555-555-5555', 'Message');

Географические координаты

Откроется приложение с картой

//Первый параметр lattitude, второй longitude
QrCode::geo(13.3499, 74.798059);

One Reply to “QR code в Laravel”

Добавить комментарий для Руслан Отменить ответ

Ваш адрес email не будет опубликован. Обязательные поля помечены *