АПИ для Вэб разработчиков

Наше АПИ для разработчиков облачных программ для фискализации чеков на кассовых аппаратах. Мы предлагаем единый протокол обмена с разными моделями кассовых аппаратов. 

Итак что такое АПИ и в частности АПИ от БИТ драйвер ККТ. И почему мы его решили создать.

АПИ это заимствование от английского API (Application Programming Interface). Единственно, что можно разумно сказать, что это просто - интерфейс для взаимодействия с каким либо сервисом, ресурсом, драйвером, приложением и т.д. Более тут ничего интересного нет.

Применительно к БИТ драйвер ККТ мы предлагаем сервис для фискализации чеков и  принятия оплат картами через банковский терминал. Вы скажете, что таких сервисов много и у каждого производителя кассовых аппаратов такой драйвер есть. Например Атол ДТО 10.

Но тут нюанс в том, что мы предлагаем сервис для Вэб разработчиков, то есть для фискализации чеков прямо в облаке со своих CMS, CRM и т.д., то есть со всего что живет в интернете. Самое главное, чтобы было удобно и просто настолько - насколько возможно.

Режим товароучетки

Надо сразу разделить два режима фискализации чеков. Режим товароучетки будем называть когда сам продавец принимает оплату например наличными или по банковской карте через банковский терминал.

Режим оплаты в облаке

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

Режим товарочетки

Ниже мы пока поговорим о режиме товароучетки. Но режим фискализации чеков при оплате в облаке мы тоже поддерживаем (технически), протокол один.

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

CORS

А любой браузер изолирует пользователя от взаимодействия с ресурсами компьютера, на котором он работает. Известно это как технология CORS. И это правильно, так как не получится так, что вы откроете страницу какого-то сайта "привет дорогой друг" и она отформатирует вам винчестер.

Итак мы используем свой формат json пакета для передачи содержания чека. 

Протокол передачи данных

Принцип формирования содержания чека прост (на наш взгляд): наименование реквизита чека (ключ в json об'екте) представляется строкой из двух частей разделенных символом подчеркивания ('_'). Справа от символа вы указываете значение номер тега (как в законе ФЗ54), слева вы пишете все что угодно (текстовое наиболее информативное  название на ваш взгляд).

Значением для ключа надо указать именно значение из закона ФЗ54, то есть если в законе значение из набора 0,1,2,3,4 и т.д. то именно это значение и надо указывать 

Таким образом мы вместе исключаем неоднозначную трактовку реквизитов чека и их значений, то есть все как в законе ФЗ54. Далее будет намного проще разбираться в сложных ситуациях.

Действия на стороне нашего сервера

После отправки чека на пробитие мы конвертируем общий формат в формат json конкретного производителя ккт. Вы всегда сможете посмотреть что посылается в ккт - в логах программы БИТ драйвер ккт или в личном кабинете на kkmspb.ru. Также там будет информация о результате пробития чека, например информация об ошибке (из драйвера конкретной модели ккт).

Таким образом вы на своей стороне, то есть в своей CMS/CRM, подготавливаете json пакет (общего формата) с содержанием чека, плюс добавляете несколько необходимых реквизитов к пакету. Это идентификатор вашего аккаунта на нашем сайте kkmspb.ru, токен кассового аппарата (на котором надо пробить чек) и код проверки целостности данных. Все эти данные вы просто берете из вашего личного кабинета на нашем сайте kkmspb.ru.

Страница оплаты

Далее вы этот пакет передаете на страницу оплаты http://kkmspb.ru/api/payment-dlg.php

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

На этой странице вы можете проверить все теги до пробития чека и если все нормально, нажать кнопку  ПРОБИТЬ ЧЕК. Можем вам оставить возможность редактирования каких-то тегов (например email покупателя).

Зона нашей ответственности

Надо понимать, что с момента перехода на страницу оплты на  наш сайт начинается наша ответственность и все запросы ваших клиентов про проблемам с пробитием чеков вы можете отсылать к нам в поддержку (это наша работа).

Так исторический сложилось, что мы лет 25 занимаемся ккт, и поэтому по-видимому эти трудности нас не пугают.

После нажатия кнопки оплаты происходит процесс связи с программой БИТ драйвер ККТ и через 3-7 сек приходит ответ, который автоматически редиректится на указанный вами ресурс (на страницу вашего сайта, т.е. это обратная связь для вас) и вы получает два варианта: либо чек пробит УСПЕШНО, либо ОШИБКА и само содержание  ошибки.

В общем-то и все в двух словах. 

Таким образом БИТ драйвер ККТ это сервис для облачных программ (разных CMS типа wordpress, joomla, webasyst и просто самопальным вариантам php mysql), которым надо управлять "железным"  оборудованием, подключенным к компьютеру.


На гитхабе расположен проект с демонстрацией АПИ для CMS: АПИ БИТ драйвер ККТ.

Страница для тестирования АПИ БИТ драйвер ККТ.