Внешние сервисы
Интеграции с внешними сервисами доставки, платежей и SMS изолируются в проектном модуле с жестким ограничением сетевых таймаутов HttpClient и кешированием расчетов. Обработка входящих вебхуков строится на принципах идемпотентности и проверке цифровой подписи, а тяжелые и негарантированные вызовы делегируются в асинхронные очереди сообщений.
Прогресс хранится в этом браузере. Войдите, чтобы сохранить его в аккаунте.
Что нужно понимать
-
1
Платёжные системы
-
2
Службы доставки
-
3
CRM-системы
-
4
Email-сервисы
Материалы
Официальная документация
-
Работа с почтой Новая дока
Проверь себя
Служба доставки недоступна двадцать минут, и оформление заказа не открывается. Где ошибка в архитектуре?
Расчёт в calculateConcrete() ходит наружу на хите с таймаутами HttpClient по умолчанию. Нужны таймауты в несколько секунд, кеш ответа по параметрам отгрузки и запасной вариант — фиксированная цена или «рассчитает менеджер».
Платёжная система прислала уведомление об оплате дважды, и обработчик второй раз упал с ошибкой. Что не так?
Обработка результата не идемпотентна. Повторные уведомления — норма для платёжек: обработчик сначала проверяет, не оплачена ли уже оплата, и только потом меняет её состояние.
Зачем логировать каждый URL внешнего обращения, а не только ошибки?
Когда партнёр говорит «мы ничего не получали», лог с URL и страницей — единственное доказательство. Логгер main.HttpClient с форматтером на URL в секции loggers стоит дёшево.
Чем регистрация своей службы доставки отличается от платёжной системы?
Доставка — класс от Delivery Services Base, зарегистрированный событием onSaleDeliveryHandlersClassNamesBuildList и добавленный через Manager::add(). Платёжка — папка в /local/php_interface/include/sale_payment/ с handler.php и .description.php, которую ядро находит по пути.
Не сходится?
Спросите ассистента BXMax: он знает документацию и материалы сайта по этой теме.
Знаете материал лучше?
Предложите ссылку: после проверки она появится в этом разделе.
Войти, чтобы предложить