Интеграции

Payment Orchestrator

Платёжный контур, в котором отказ одного провайдера не останавливает приём денег

Работа сдана
  • PHP · Symfony / Laravel
  • PostgreSQL
  • Redis
  • Docker / Podman
  • GitLab CI/CD

Открыть проект

Задача

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

Сравнить каналы между собой тоже не на чем: статистика остаётся в кабинетах провайдеров, каждая в своём формате.

Решение

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

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

Результат

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

← Все проекты

Похожая задача в вашем проекте

Опишите задачу. Подберём формат работы под ваш проект.

Обсудить проект