Разработка алгоритма генерации QR-кода для онлайн платежей

Автор: Карев Валерий Александрович, Кравец Алла Григорьевна

Журнал: Сетевое научное издание «Системный анализ в науке и образовании» @journal-sanse

Статья в выпуске: 1, 2019 года.

Бесплатный доступ

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

Платеж, qr-код, каркас/шаблон (фреймворк), веб-приложение

Короткий адрес: https://sciup.org/14122682

IDR: 14122682

Текст научной статьи Разработка алгоритма генерации QR-кода для онлайн платежей

На сегодняшний день использование технологии QR -кода имеют большую актуальность [1]. Так же текущая популярность смартфонов стимулирует развитие цифровых и мобильных платежей. Разрабатываемые платежные системы повсеместно используют технологию сканирования QR -кода.

Ни для кого не секрет, что большая часть покупок совершается в интернет-магазинах. Зачастую, при оформлении заказа, пользователю необходимо пройти несколько этапов, чтобы совершить покупку. Инициация оплаты осуществляется пользователем, который на начальном этапе должен вы- брать платежную систему. Де-факто, большая часть интернет-магазинов предлагают оплату с помощью электронного кошелька (QIWI Wallet, Yandex деньги и т.д.), банковского перевода или оплаты наличными [2]. При оформлении заказа, с помощью электронного кошелька или банковской карты пользователь обязан вводить необходимые поля для осуществления оплаты: номер карты, код карты, имя карты пользователя, дата валидности карты. После ввода необходимых данных пользователю необходимо подтвердить транзакцию, зачастую это реализуется с помощью SMS-подтверждения [3].

Использование оплаты мобильными платежными системами с помощью технологии QR -кода позволит сократить время при оформлении заказа, так как любой пользователь смартфона может осуществить покупку с наиболее предпочитаемой платежной системы [4].

1.    Анализ инструментов реализации

Для генерации платежных реквизитов в виде QR -кода необходимо подготовить строку определенного формата для дальнейшего кодирования в двумерном символе штрихового кода. Строка знаков состоит из трёх блоков [5]:

Блок служебных данных – данный блок обязателен для считывания QR -кода платежных систем.

Блок обязательных реквизитов, необходимых для проведения платежа – данный блок обязателен для осуществления перевода денежных средств.

Блок дополнительных реквизитов – данный блок необходим, если требуется какая-либо уточняющая информация.

На рис. 1 приведен пример формирования строки необходимого формата:

BLOCK A = STO0011

Хате=ООО"Трнкита"                    BLOCK A --- блок служебной информации

BLOCK В =

PersonaLAcc=40702810138250123017                            I'

BankName=OAO"6AHK" BIC=044525225|                   ____

ConespAcc=30101810400000000225           BLOCK В ---1 блок обязательных реквизитов

PayeeENN=6200098765 LastName-Иванов       BLOCK С ---1 блок дополнительных реквизитов

FirstName=HBaHMiddleName=llBaHOBH4                       1---

BLOCKC =

Purpose=OiLTaia членского взноса

РатегАбдгеаз-г.Рязаньтл.Ленина д.10 кв.15

Sum=100000 Phone=79101234567 SomeNewReq=100|

Рис. 1. Пример группировки данных по блокам

Описание всех атрибутов в блоках, приведено в ГОСТ [1].

Существует несколько популярных инструментов (табл. 1), которые позволяют сгенерировать QR -код на основе текстовой информации, среди которых:

  • -    PHP библиотека QR-code,

  • -    Service Google API,

  • -    QR Code Endroid,

  • -  Chillerlan/php-qrcode.

  • 2.    Разработка алгоритма

Таблица 1. Сравнительный анализ инструментов генерации QR-кода

Возможность   явного

указания кодировки

Корректная дешифрация QR-кода

Независимость от версий языка реализации

PHP библиотека QR-

code

-

-

-

Service Google API

+

+

+

QR Code Endroid

+

+

-

Chillerlan/php-qrcode

-

+

-

Для разработки алгоритма генерации QR -кода будет использоваться Google API , так как главным преимуществом является явное указание кодировки, так как стандарт требует четкого разбора QR -кода в строку, а при использовании разных кодировок возможны ошибки распознавания. Так же при тестировании библиотек было обнаружено, что библиотеки генерации QR -кода сильно зависит от версии языка PHP . Например, библиотека Chillerlan/php-qrcode не поддерживается на языках версии меньше 7.2, так же QR Code Endroid не гарантирует поддержки версий 5.6, 7.0 и 7.1. Реализация библиотеки PHP QR-code использует устаревшие функции, которые в последствии могут нарушить процесс генерации кода.

В качестве шаблона/каркаса ( framework ) для программной реализации будет использоваться Bitrix Framework .

На рис. 2 приведен алгоритм генерации QR -кода на основе ГОСТ [5] и выбранного инструмента генерации изображения:

Получение значения подключенного модуля

Рис. 2. Алгоритм генерации QR-кода

3.    Результат реализации алгоритма

Описание методов класса QRPayment.

private function getModuleProperty() – метод получение свойств модуля.

public function setData($data) – метод сформированных данных для запроса.

private function arCodeToStringCode($arInfo, $glue) – метод конвертации массива в строку.

Параметры:

$arInfo – массив данных.

$glue – строка по которой будет происходить объединение.

private function prepareQrInfo() – метод подготовки данных к генерации.

public function getData() – получение подготовленных данных.

public function generateQrCode($url, $data) – метод генерации изображения.

Параметры:

$url – адрес запроса.

$data – строка параметров запроса.

При добавлении в корзину товар необходимо перейти к его оформлению и выбрать необходимую платежную систему (см. рис. 3).

Рис. 3. Список платежных систем

После выбора платежной системы будет сгенерировано изображение, которое необходимо для осуществления оплаты.

Главная страница Мои кабинет Меи заказы

Мои заказы

посмотреть историю заказов

Заказы в статусе «Принят, ожидается оплата»

Заказ Ntl6 от 13.08.2018.1 товар на сумму 1 690 руб.

Для оплаты по штрих-коду отсканируйте картинку через мобильное приложения банка ил* платежной системы и заполните недостающие поля для оплаты:

Для Сбербанка обязательно заполнить адрес доставки и назначение платежа

  • •    Для доставки самовывозом укажите адрес магазина

  • •    Для доставки курьером укажите адрес доставки

— назад

Рис. 4. Результат генерации изображения

Настройка модуля осуществляется в административной панели модуля. На рисунке 8 изображены доступные параметры для редактирования.

| Оплата по Qr-коду

Реквизиты

Параметры реквизитов

Системные настройки

Включить модуль: 0

Служебные параметры

Выберите кодировку: | UTF-8

Обязательные параметры

Поля назначения платежа

ЯР ORDER# - ИД заказа SNUMBER ORDER# - Заказ № УРАТЕ ORDER# - Дата заказа

По умолчанк

Рис. 5. Административная панель программного модуля

Заключение

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

Результат реализации был протестирован (тестирование проводилось на небольших суммах) на следующий мобильных приложениях: ( Yandex деньги, Сбербанк Онлайн, Тинькофф).

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

Список литературы Разработка алгоритма генерации QR-кода для онлайн платежей

  • Иващенко В.В. Методы кодирования и декодирования с использованием QR-кодов / В.В. Иващенко, М.А. Ганжур. - Пермь: Издательство ИП Сигитов Т.М. - C. 32-34.
  • Щербаков, М.В. A Method and IR4I Index Indicating the Readiness of Business Processes for Data Science Solutions / М.В. Щербаков, P.P. Groumpos, А.Г. Кравец // Creativity in Intelligent Technologies and Data Science. Second Conference, CIT&DS 2017 (Volgograd, Russia, September 12-14, 2017): Proceedings / ed. by A. Kravets, M. Shcherbakov, M. Kultsova, Peter Groumpos; Volgograd State Technical University [et al.]. - [Germany]: Springer International Publishing AG, 2017. - P. 21-34. - (Ser. Communications in Computer and Information Science; Vol. 754).
  • EDN: XNMLEF
  • Нгуен, Ле Тхань Тунг Анализ средств и моделей взаимодействия между компонентами в системе управления корпоративной мобильностью / Ле Тхань Тунг Нгуен, А.Г. Кравец, Нгок Зыонг Буй // Информационные технологии. - 2018. - Т. 24. - № 1. - C. 64-72.
  • EDN: YLJPBH
  • Белов, А.Г. Структурно-функциональная модель автоматизированной системы управления эффективностью предприятия / А.Г. Белов, А.Г. Кравец // Известия ВолгГТУ. Сер. Актуальные проблемы управления, вычислительной техники и информатики в технических системах. - Волгоград, 2017. - № 14 (209). - C. 47-53.
  • EDN: YLEUUH
  • ГОСТ Р 56042-2014 Стандарты финансовых операций. Двумерные символы штрихового кода для осуществления платежей физических лиц 2014-09-01. - C. 20.
Еще
Статья научная