beeralex / beeralex.marking
My marking module
Installs: 0
Dependents: 0
Suggesters: 0
Security: 0
Stars: 0
Watchers: 0
Forks: 1
Open Issues: 0
Type:bitrix-module
pkg:composer/beeralex/beeralex.marking
Requires
- beeralex/beeralex.core: ~1.0
This package is auto-updated.
Last update: 2025-10-08 09:26:18 UTC
README
Интеграция с api честный знак
модуль для bitrix
Минимальная версия php 8.1
Установка
добавьте в composer.json экстра опцию, чтобы композер поставил пакет в local/modules
"extra": { "installer-paths": { "local/modules/{$name}/": ["type:bitrix-module"] } }
composer require beeralex/beeralex.marking
- Установить модуль beeralex.core
- Установить этот модуль
- Получить документ подписанный УКЭП
- Заполнить настройки модуля в админке, oauthKey - любой документ подписанный с помощью УКЭП в base64
Для использования разных токенов наследуйте обработчики касс и используйте трейт - Beeralex\Marking\CashboxSettingsTrait
, который добавит настройки oauth ключа, токена и Fiscal Drive Number в настройки обработчика кассы.
Использование
Валидация кодов:
try { /** @var \Beeralex\Marking\Entity\Codes\CodesCheckResult $checkResult */ $codes = ["mark_code1", "mark_code2"]; $checkResult = (new \Beeralex\Marking\Services\CodesCheck())->check($codes); // или Itb\Marking\CodesCheckFactory::getByOrder($order)|getByCashbox($cashbox)|getDefault() } catch (\Exception $e) { // Вероятнее всего ошибка в запросе - коды не проверены. }
Itb\Marking\CodesCheckFactory::getByOrder принимает объект заказа, на основе отгрузки находится подходящая касса применяя исключения из админки и вызывается getByCashbox Itb\Marking\CodesCheckFactory::getByCashbox принимает объект обработчика кассы, и находит заполненные настройки в кассе (TOKEN, FISCAL_DRIVE_NUMBER, OAUTH_KEY), эти значения используются вместо дефолтных из настроек модуля
При ошибках логирование идет в {dir_module}/logs/
при включенном логировании в Beeralex\Marking\Options::$logsEnable
Объект результата проверки \Beeralex\Marking\Entity\Codes\CodesCheckResult
:
- public readonly string $code - Результат обработки операции
- public readonly string $description - Текстовое описание результата выполнения метода
- public readonly \Beeralex\Marking\Entity\Codes\Code[] $codes - Список КМ
- public readonly string $reqId - Уникальный идентификатор запроса
- public readonly int $reqTimestamp - Дата и время формирования запроса
- public readonly bool $transborderServiceUnavailable - доступность сервиса трансграничной проверки кодов
Объект \Beeralex\Marking\Entity\Codes\Code
:
- public readonly bool $verified - Результат проверки валидности структуры КМ
- И другие поля - подробнее в самом классе
Получение результата проверки из БД:
$codes = ["mark_code1", "mark_code2"]; /** @var null|CodesCheckResult[] сгруппированы по id запросов для каждого кода*/ $checkResult = (new \Beeralex\Marking\CodeCheckRepository)->findByCisList($codes); $isValid = $checkResult?->get("mark_code1")?->verified
Или через метод findByCis
/** @var null|\Beeralex\Marking\Entity\Codes\CodesCheckResult */ $checkResult = (new \Beeralex\Marking\CodeCheckRepository)->findByCis("mark_code1"); $isValid = $checkResult?->get("mark_code1")?->verified
Далее при печате чека, на примере атол, добавить результат проверки в запрос. Создаете свой обработчик кассы и используйте trait Beeralex\Marking\Traits\MarkingCashboxTrait