Платёжный шлюз с бизнес-правилами
Задача
Оплата зависела от правил, которых нет в стандартном gateway: тип клиента, сумма, способ доставки.
Роль и объём
Шлюз писал сам: валидация до редиректа, серверный callback, маппинг статусов. Бухгалтерия читает канонические статусы Woo.
Ограничения
Проверка должна жить на сервере. Секреты — не в теме и не в клиентском JS. Ложный success не должен переводить заказ в processing.
Архитектура
Checkout │ ▼ Custom gateway ├── Rule check ├── Provider API └── Status map │ ▼ Payment provider
Реализация
Шлюз Woo: валидация до редиректа, серверный callback, маппинг статусов. Ключи в константах/окружении.
Отказы и повторы
Подпись callback проверяется. Повтор webhook идемпотентен. Ложный success не переводит заказ в processing.
Результат
Оплата проходит только при выполнении правил. Бухгалтерия видит понятные статусы Woo.
Стек
PHP · WooCommerce · payments API
Похожая система?
Обсудим ограничения и контур — не сайт с нуля.