AnthonyAxenov
9bd99c81a9
* валидация в setCashier() только если передан не-null * valid_strlen() * Constraints::MAX_LENGTH_CASHIER_NAME * phpdoc |
||
---|---|---|
.github | ||
docs | ||
src | ||
tests | ||
.gitignore | ||
composer.json | ||
composer.lock | ||
LICENSE | ||
phpunit.xml | ||
README.md | ||
ROADMAP.md |
АТОЛ Онлайн
Библиотека для фискализации чеков по 54-ФЗ через облачную ККТ АТОЛ.
Текущая поддерживаемая версия API: 5.1
Системные требования
- PHP 7.2+
- composer
- php-json
Начало работы
Подключение библиотеки
- Подключить пакет к вашему проекту:
composer require axenov/atol-online
- В нужном месте проекта объявить параметры, используя константы, и подключить composer, если это не сделано ранее:
гдеrequire($project_root.'/vendor/autoload.php');
$project_root
— абсолютный путь к корневой директории вашего проекта.
Тестирование кода библиотеки
Файлы тестов находятся в директории /tests
корня репозитория.
Для запуска тестов необходимо перейти в корень вашего проекта и выполнить команду:
./vendor/bin/phpunit
Настройка ККТ
Для работы с облачной ККТ необходимы следующие параметры:
- логин;
- пароль;
- код группы.
Чтоб получить их, нужно:
- авторизоваться на online.atol.ru;
- на странице Мои компании нажать кнопку Настройки интегратора.
Скачается XML-файл с нужными настройками.
Также для работы потребуются:
- ИНН продавца;
- URL места расчёта (ссылка на ваш интернет-сервис).
Использование библиотеки
Доступные методы и классы
Весь исходный код находится в директории /src
.
Комментарии phpDoc есть буквально к каждому классу, методу или полю. Прокомментировано вообще всё.
- Обращайтесь к документации.
- Обращайтесь к исходному коду.
- Обращайтесь к тестам.
- Используйте подсказки вашей IDE.
Тогда у вас не возникнет затруднений.
Для тех, кто решил подробно разобраться в работе библиотеки, отдельно отмечу нюансы, которые могут ускользнуть от внимания:
- Класс
AtolOnline\Api\Kkt
унаследован отGuzzleHttp\Client
со всеми вытекающими; - Все классы, унаследованные от
AtolOnline\Entities\AtolEntity
приводятся к JSON-строке.
Общий алгоритм
- Задать настройки ККТ
- Собрать данные о покупателе
- Собрать данные о продавце
- Собрать данные о предметах расчёта (товары, услуги и пр.)
- Создать документ, добавив в него покупателя, продавца и предметы расчёта
- Отправить документ на регистрацию:
6.1. Необязательно: задатьcallback_url
, на который АТОЛ отправит HTTP POST о состоянии документа. - Запомнить
uuid
из пришедшего ответа, поскольку он пригодится для последующей проверки статуса фискализации.Если с документом был передан
callback_url
, то ответ придёт на этот самый URL.
Если с документом НЕ был переданcallback_url
либо callback от АТОЛа не пришёл в течение 300 секунд (5 минут), нужно запрашивать вручную поuuid
, пришедшему от АТОЛа в ответ на регистрацию документа. - Проверить состояние документа (нет необходимости, если передавался
callback_url
):
8.1. взятьuuid
ответа, полученного на запрос фискализации;
8.2. отправить его в запросе состояния документа.Данные о документе можно получить только в течение 32 суток после успешной фискализации.
Об отправке электронного чека покупателю
После успешной фискализации документа покупатель автоматически получит уведомление от ОФД, который используется в связке с вашей ККТ:
- по email, если в документе указан email клиента;
- по смс:
- если в документе указан номер телефона клиента;
- если на стороне ОФД необходима и подключена услуга СМС-информирования (уточняйте подробности о своего ОФД).
Если заданы email и телефон, то отдаётся приоритет email.
Дополнительные ресурсы
Discord-сервер для обсуждения этой библиотеки: discord.gg/mFYTQmp
Функционал, находящийся в разработке: ROADMAP.md
Официальные ресурсы АТОЛ Онлайн:
- Вся документация
- Telegram-канал: @atolonline
Лицензия
Вы имеете право использовать код из этого репозитория только на условиях лицензии MIT.