Для формирования QR-кода вы можете воспользоваться API-интерфейсом.
QR-код
QR-код (англ. Quick Response — быстрый отклик) — матричный код (2D code, двумерный штрихкод). Японская компания «Denso-Wave» разработала и представила QR-code в 1994 году. В настоящее время QR-код можно встретить на очень многих предметах вокруг нас: на визитке, на банке, на упаковке, на сайте. Очень часто QR коды используются для загрузки мобильных приложений или в SMS. В Японии и Австрии QR-коды используются на кладбищах для информирования о захоронении. QR-код позволяет вместить большое количество информации в небольшом изображении. С помощью QR-кода можно закодировать до 4296 цифро-букв, включая кириллицу:
- цифры — 7089;
- цифры и буквы (включая кириллицу) — 4296;
- двоичный код — 2953 байт;
- иероглифы — 1817.
ECC – (англ. Error-Correcting Code, код коррекции ошибок) — данные, присоединяемые к изображению, позволяющие определить факт сбоя и исправить несущественную ошибку. Чем больше этот параметр, тем больше ошибок в считывании изображения допускается для корректного распознавания QR-кода.
Возможные значения ECC и количество поврежденных данных в процентах, которые могут быть скорректированы:
- Low, ~7%
- Middle, ~15%
- Quality, ~25%
- High, ~30%
Чем больше значение параметра ECC, тем больше избыточных данных будет содержаться в изображении QR-кода, и тем больше места оно будет занимать. Используйте минимальные значения ECC, если Вы размещаете QR-код на электронных носителях, которые не подвержены повреждениям, и большие значения, если Вы размещаете QR-код на листовках, плакатах, визитках, где QR code подвержен стиранию, царапинам и прочим повреждениям.
API создания QR кода / API QR code
Для поучения изображения содержащего QR-код с вашими данными, вызовите следующее api:
http://htmlweb.ru/api/service/qr/?api_key=API_KEY_из_профиля&data=ДАННЫЕ_ДЛЯ_КОДИРОВАНИЯ
Данные для получения QR-кода могут передаваться как GET, так и POST – запросом. А также комбинацией: часть GET, часть POST.
Структура API запроса для получения html кода с картинкой и описанием qr-кода:
https://htmlweb.ru/api/service/qr/?html &api_key=API_KEY_из_профиля &data=ДАННЫЕ_ДЛЯ_КОДИРОВАНИЯ [&level=('L','M','Q','H')] [&size=(1-10)] [&margin=(0-30)]
Структура API запроса для получения URL картинки с qr-кодом:
http://htmlweb.ru/api/service/qr/?format=url api_key=API_KEY_из_профиля &data=ДАННЫЕ_ДЛЯ_КОДИРОВАНИЯ [&level=('L','M','Q','H')] [&size=(1-10)] [&margin=(0-30)]
Структура API запроса для получения html кода с картинкой:
https://htmlweb.ru/api/service/qr/?format=img api_key=API_KEY_из_профиля &data=ДАННЫЕ_ДЛЯ_КОДИРОВАНИЯ [&level=('L','M','Q','H')] [&size=(1-10)] [&margin=(0-30)]
Структура API запроса для получения URL QR-кода в JSON-формате: URL или информация об ошибке в поле error:
https://htmlweb.ru/json/service/qr/?&api_key=API_KEY_из_профиля &data=ДАННЫЕ_ДЛЯ_КОДИРОВАНИЯ [&level=('L','M','Q','H')] [&size=(1-10)] [&margin=(0-30)]
Для Вашего удобства поддерживается формат JSONP. Вы можете добавить параметр &jsonp=ИМЯ_ФУНКЦИИ
Параметры level, size, margin являются необязательными, значения по умолчанию:
level=’L’
size=4 (100px x 100px при минимальном ECC)
margin=2 (2px)
Параметр limit в ответе – определяет количество оставшихся запросов до конца суток
Если Вы хотите сразу получить картинку, а не ссылку на неё, используйте параметр:
&format=png
Но будьте внимательны, т.к. в случае если у вас закончится лимит, вы получите вместо картинки ошибку. Пример:
https://htmlweb.ru/api/service/qr/?format=png&api_key=API_KEY_из_профиля&data=ДАННЫЕ_ДЛЯ_КОДИРОВАНИЯ
Вы можете получить base64 закодированную картинку для вставки картинки в код с помощью параметра &format=src
:
<img src="<?=https://htmlweb.ru/api/service/qr/?format=src&noLimit&api_key=API_KEY_из_профиля&data=ДАННЫЕ_ДЛЯ_КОДИРОВАНИЯ?>">
Как прочитать QR код
Все современные телефоны и планшеты имеют встроенную программу распознавания QR-кодов. Для этого наведите камеру телефона на QR код и вы увидите результат чтения.
Как в QR коде указать ссылку/телефон/SMS ?
Для указания в QR-коде номера телефона, на который нужно позвонить укажите перед номером префикс ‘TEL:’, например:
TEL:+71234567890
Для указания в QR-коде skype, на который можно позвонить укажите перед номером префикс ‘skype:’, например:
Skype:kkk_890
Для указания в QR-коде URL-ссылки, достаточно указать её в полном формате, например:
http://htmlweb.ru
Для указания в QR-коде подготовленной SMS для отправки, необходимо указать её в формате SMSTO:НОМЕР?body=ТЕКСТ, например:
SMSTO:+71234567890?body=Строка1.%0AСтрока2.
Альтернативный формат:
sms:НОМЕР_ТЕЛЕФОНА
Для указания в QR-коде координат:
GEO:55.751676972657464;37.62759966278077
Для указания в QR-коде ссылки на карту гугла, необходимо указать её в формате:
http://maps.google.com/maps?q=55.751676972657464%2C37.62759966278077
Для указания в QR-коде E-mail, достаточно указать адрес с префиксом ‘MAILTO:’, например:
MAILTO:kdg@aaanet.ru
Для указания в QR-коде готового E-mail письма, достаточно указать адрес с префиксом ‘MAILTO:’, например:
MAILTO:kdg@aaanet.ru?subject=Test%20Subject&body=This%20is%20a%20test
'mailto:'.$email.'?subject='.urlencode($subject).'&body='.urlencode($body)
Для указания в QR-коде VCARD-визитки, достаточно указать её в VCARD-формате, например:
BEGIN:VCARD N:Пупкин;Василий;Иванович;пр.,к.м.н. TEL;HOME:+74955551234 TEL;WORK:+74955551234 TEL;CELL:+79185551234 TEL;WORK;FAX:666 EMAIL;INTERNET;WORK:777@mail.ru ORG:Рога и Копыта TITLE:7777 URL;http://ru.wikipedia.org/ BDAY:1996-04-15 ADR;WORK:;;999;111;;;2222 END:VCARD
Для кодирования фото в VCARD используйте ссылку на внешний URL или base64 – кодирование:
BEGIN:VCARD FN:ИМЯ TEL;WORK;VOICE:+79185551234 PHOTO;VALUE=uri:http://htmlweb.ru/favicon.gif END:VCARD
BEGIN:VCARD FN:ИМЯ TEL;WORK;VOICE:+79185551234 PHOTO;JPEG;ENCODING=BASE64:'.base64_encode(file_get_contents($avatarJpegFileName))."\n"; END:VCARD
Для указания в QR-коде запланированного события календаря (VCALENDAR), достаточно указать его в VCALENDAR-формате, например:
BEGIN:VCALENDAR VERSION:2.0 BEGIN:VEVENT SUMMARY;CHARSET=utf-8:name DTSTART:20130101T100000Z DTEND:20130201T113000Z END:VEVENT END:VCALENDAR
Для указания в QR-коде данных для платежного поручения (счета на оплату, платежки) в кодировке UTF-8 необходимо указать их в следующем формате:
На строки разбил для удобства восприятия. При формированиии QR-кода счета все должно быть в одну строку, в качестве разделителей используются символы ‘|’. Описание стандарта ГОСТ Р 56042-2014. Для указания кодировки windows-1251 замените “ST00012” на “ST00011”.
ST00012| Name=ООО «Ети»| PersonalAcc=40702810938090013642| BankName=ОАО "СБЕРБАНК РОССИИ" Г. МОСКВА| BIC=044525225| CorrespAcc=30101810400000000225| Sum=1023641| Purpose=Оплата по счету №12345| PayeeINN=7727727063| KPP=772701001
ST00012| Name=АО "Компания ТрансТелеКом"| PersonalAcc=40702810838040021360| BankName=Московский банк ПАО Сбербанк, г. Москва| BIC=044525225| CorrespAcc=30101810400000000225| PayeeINN=7709219099| Sum=45000| ServiceName=9387216754| Purpose=Оплата услуг связи по л/с № 615167760| LastName=Иванов| FirstName=Иван| MiddleName=Иванович| PayerAddress=| PersAcc=615167760| BillNum=