Два направления, один журнал
Провайдеры вызывают Tranzify, когда платёж меняется; Tranzify вызывает мерчанта. Оба направления идут через один сервис: подписи проверяются, статусы сопоставляются, тела сохраняются, повторы планируются, а каждое событие привязано к ссылке платежа, поэтому бэк-офис показывает всю цепочку в одной трассировке. Сервис работает отдельно от платёжного потока, так что медленная точка приёма мерчанта никогда не замедляет платёж, а всплеск колбэков провайдера не теряет ни одного.
Что получают мерчанты
- Подписанные вебхуки с секретом мерчанта; каждое событие несёт собственный идентификатор и ссылку платежа.
- Повторы по расписанию, история попыток с ответами точки приёма и кнопка повторной отправки в кабинете мерчанта и в бэк-офисе.
- События платежей, возвратов, выплат и чарджбэков в одном формате для всех методов, со ссылкой платежа, идентификатором заказа мерчанта и суммами.
- Домен вебхуков на сеть, чтобы бренды не смешивались; адрес отправителя и секрет подписи принадлежат сети мерчанта.
Что получают операторы
Принятые колбэки с сырыми телами, исход каждого (применён, проигнорирован, конфликт), ручная переобработка, когда данные провайдера приходят с опозданием, и правила, которые держат финальный статус финальным. Колбэк, который перевёл бы успешный платёж обратно в ожидание, записывается как конфликт и показывается для разбора, а не применяется; оператор, меняющий статус вручную, пишет причину, которая остаётся в журнале.
Правила цепочки
| Ситуация | Что делает платформа |
|---|---|
| Подпись провайдера не проходит проверку | Колбэк сохраняется, помечается отклонённым и вызывает оповещение; платёж не меняется |
| Колбэк повторяет уже применённый | Игнорируется с записью о том, что пришёл |
| Колбэк противоречит финальному статусу | Записывается как конфликт для оператора; статус остаётся |
| Колбэк пришёл поздно, после истечения платежа | Переобрабатывается по команде оператора с суммой и временем получения |
| Точка приёма мерчанта отвечает 5xx или не отвечает | Повтор по нарастающему расписанию; каждая попытка и ответ сохраняются |
Разработчику мерчанта
Вебхук — это HTTPS-запрос к точке приёма мерчанта с телом в JSON и заголовком подписи. Тело несёт имя и идентификатор события, ссылку платежа или выплаты, собственный идентификатор заказа мерчанта, статус, суммы и валюту, метод и время; подпись считается по телу секретом мерчанта. Точка приёма отвечает 2xx, когда сохранила событие, а свою обработку делает после, чтобы медленная база никогда не заставляла платформу повторять отправку. Документация даёт алгоритм, примеры и список событий; песочница позволяет проверить обработчик до первого настоящего платежа.
Почему это отдельный продукт
Колбэки — то место, где ломаются платёжные платформы: статус, применённый дважды, запоздалый колбэк, заново открывший закрытый платёж, вебхук, потерянный потому, что сервер мерчанта перезапускался в неудачную секунду. Если относиться к ним как к сервису со своим журналом, повторами и экранами, поддержка сможет ответить на вопрос «что случилось с этим платежом» с полной цепочкой перед глазами, а финансы — доверять тому, что леджер увидел каждое событие один раз. Каждая запись хранится пять лет и ищется по ссылке платежа, мерчанту и провайдеру.