Skip to content

Latest commit

 

History

History

umka_php

Folders and files

NameName
Last commit message
Last commit date

parent directory

..
 
 
 
 
 
 
 
 
 
 

Этот пример создан как небольшой личный кабинет по управлению кассой и документами. Ничто не мешает в параллель напрямую обращаться к коду для создания фискального документа (например по факту получения вашей системой информации о поступлении платежа) .

В данном примере предусмотрено сохранение и актуализации в БД MySQL информации о созданных документах.

Для начала работы открываем onlinekassa.php (перед этим не забудьте настроить БД и подключение к ней или отключить в коде все функции, обращающиеся к БД).

Этот код писался под конкретную ситуацию электронных платежей без непосредственного контакта с клиентом, требующей отправки клиенту электронной формы кассового чека и НЕ требующей печати чека в ККТ. Для каждого конкретного случая необходимо проверить требования по набору и содержанию необходимых реквизитов фискального документа.

Мы не анализировали требования по составу и требуемым значениям реквизитов для кассовых чеков с типами «Расход», «Возврат расхода».

В связи с требованиями по непревышению смены 24 часов в данном примере выполнена следующая реализация: 1. в настройках боевой кассы выставили автоматическое закрытие смены длительностью более 24 часов; 2. Перед отправкой команды на формирование чека запрашивается статус кассы и если ['cashboxStatus']['fsStatus']['cycleIsOpen'] != 1 - значит смена закрыта и отдается команда на открытие смены и только потом команда на формирование чека. Возможно, правильнее через cron настроить автоматическое открытие смены каждый раз после ее закрытия.

Касса отправляет чеки в ОФД в очередности их поступления (FIFO). Иными словами при запросе статуса кассы смотрим поле ['cashboxStatus']['fsStatus']['transport']['state'] - если там 0, значит все чеки отправлены, если >0 значит столько чеков пока в ОФД не отправлены считая от последнего. В данном примере статус отправки чека в ОФД меняется с «wait» на «ок» только по факту получения указанного поля со значением 0.

Обратите внимание, что Умка для кассира принимает только цифровые пароли до 8 символов. В целях безопасности настоятельно рекомендуется: зарегистрировать кассу на umka365.org и в настройках роутера сменить порт в разделе Переадресация портов (только для внешних запросов, внутренний порт оставляем 8088)

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

Операция по отправке запроса на ККТ для формирования кассового чека считается выполненной успешно, если в ответе от кассы придет поле ['document']['result’] со значением 0.

Запрос на статус кассы (case "check_status»:) и, следовательно, получение информации об отправке данных в ОФД следует выполнять регулярно при наличии документов с неподтвержденным статусом отправки ОФД (т.е. Имеет смысл настроить cron для оного).

Для отправки команд на боевую кассу, необходимо чтобы последняя имела статичный ip адрес (плюс настройка переадресации портов на роутере).