268  /  382
Справочник

Принцип печати чеков через платёжную систему

Просмотров: 18278
Дата последнего изменения: 16.06.2021
Анна Кокина
Сложность урока:
4 уровень - сложно, требуется сосредоточиться, внимание деталям и точному следованию инструкции.
1
2
3
4
5
Недоступно в лицензиях:
Старт, Стандарт

В предыдущем уроке Не подходит стандартный обработчик онлайн-кассы? Используйте API продукта и напишите свой обработчик.

Подробнее...
Вы узнали, как написать собственный обработчик онлайн-кассы. В этом уроке ознакомьтесь с алгоритмом, по которому происходит печать чеков через платёжную систему:

  1. Создание оплаты

    В процессе создания оплаты подготавливаются данные для чека. Обычно это:

    • состав корзины;
    • система налогообложения;
    • НДС;
    • тип чека.

    Эти данные отправляются вместе с запросом на создание оплаты.

    В системе на этом этапе чек не создаётся, так как покупатель ещё не выполнил оплату.

  2. Оплата

    После того, как покупатель выполнил оплату, платёжный шлюз отправляет об этом уведомление.

    При обработке уведомления меняется статус оплаты на Оплачено.

  3. Чек

    При смене статуса оплаты начинают собираться данные для чека:

    • определяется тип чека, который нужно напечатать (совпадает с типом, который был передан при создании платежа);
    • вызывается метод buildCheckQuery, который подготавливает данные по чеку;
    • выбирается подходящая касса для печати;
    • вызывается метод printImmediately. Так как данные по чеку уже есть в платёжном шлюзе, они не передаются повторно;
    • чек в статусе Печатается добавляется в систему.

  4. Статус чека

    После того, как чек добавится в систему, получить данные о статусе этого чека можно либо через агент \Bitrix\Sale\Cashbox\Manager::updateChecksStatus(), либо менеджер может вручную запросить статус из интерфейса.

    Примечание: Если первый чек был чеком "полной оплаты", на этом этапе работа с чеком завершается. Если чек был другого типа ("аванс" или "предоплата"), нужно напечатать второй закрывающий чек в момент отгрузки заказа.

  5. Печать закрывающего чека

    В момент отгрузки заказа начинают собираться данные для второго чека:

    • определяется тип чека, который нужно напечатать (в этом случае тип "полная оплата");
    • вызывается метод buildCheckQuery, который подготавливает данные по чеку;
    • выбирается подходящая касса для печати;
    • вызывается метод printImmediately, и теперь данные по чеку отправляются платежному провайдеру;
    • чек в статусе Печатается добавляется в систему.

  6. Статус закрывающего чека

    После того, как чек добавится в систему, получить данные о статусе этого чека можно либо через агент \Bitrix\Sale\Cashbox\Manager::updateChecksStatus(), либо менеджер может вручную запросить статус из интерфейса.

Список ссылок по теме:



2
Курсы разработаны в компании «1С-Битрикс»

Если вы нашли неточность в тексте, непонятное объяснение, пожалуйста, сообщите нам об этом в комментариях.
Развернуть комментарии