247просмотров
51.9%от подписчиков
12 марта 2026 г.
stats📷 ФотоScore: 272
Как пройти в метро за 1 рубль Приложил карту к турникету – списался 1₽. Через минуту пришло второе уведомление – 83₽. С самокатом похожая история: при привязке карты списался 1₽, а после поездки – 189₽ за 20 минут. Снаружи выглядит одинаково. Два списания, задержка между ними. Если вы хоть раз видели в выписке транзакцию на 1₽ и не понимали откуда она – сейчас разберёмся. Внутри – два совершенно разных паттерна. Самокат: авторизация + списание Когда вы сканируете QR на самокате, приложение не знает, сколько вы накатаете. 5 минут? Час? Итоговая сумма неизвестна. Поэтому: 🔸 Шаг 1 – авторизация. Приложение просит банк проверить карту и заморозить 1₽. Банк отвечает: «Карта живая, деньги есть». Самокат разблокирован. 🔸 Шаг 2 – списание. Поездка окончена. Сервис посчитал сумму – 189₽ за 20 минут. Отправляет в банк: «Списывай». Холд снимается, реальная сумма уходит со счёта. Между этими фазами – время. Потому что бизнес-логика требует подождать: сумма определится только когда вы закончите поездку. Тот же паттерн в каршеринге, такси, аренде – везде, где итоговая сумма неизвестна на старте. Причина двух фаз – бизнесовая. Мы не можем списать сразу, потому что не знаем сколько. Ладно, с самокатом разобрались. А теперь – метро. И тут всё наоборот. Метро: отложенная авторизация В метро всё иначе. Сумма известна заранее – 83₽ по банковской карте. Казалось бы, списывай сразу. Но нет. Через турникеты загруженной станции в час пик проходят тысячи людей в минуту. Турникет должен открыться за доли секунды. А полный цикл банковской транзакции – это цепочка: терминал → банк-эквайер → платёжная система → банк-эмитент → ответ обратно. Это секунды. В час пик такая задержка приведет к очереди до входа в вестибюль. Поэтому турникет делает минимум: проверил карту, если не в стоп-листе – открылся. А полная транзакция уходит в фоновую очередь и обрабатывается позже. Сначала пропусти, потом разберись. Это отложенная авторизация – система не ждёт подтверждения, а обрабатывает транзакцию в фоне. Данные «догонят» реальность чуть позже. Зато пропускная способность – тысячи человек в минуту. Причина двух фаз – техническая. Мы знаем сколько, но не можем себе позволить ждать. Почему аналитику важно это различать? Потому что решения – разные. Если причина бизнесовая (сумма неизвестна) – закладывайте два шага: заморозить и списать. Предусматривайте таймаут на холд (до 30 дней, потом деньги размораживаются) и сценарий отката. Нарисовали одно действие «оплатить» – потеряли половину логики. Видел кейс: аналитик описал оплату подписки одним действием «списать». Без авторизации, без проверки карты. В прод ушло как есть. Первый баг прилетел, когда у пользователя сменилась карта – система молча списала сумму с несуществующего счёта и неделю показывала «подписка активна». Если причина техническая (нагрузка) – закладывайте фоновую обработку: очередь, отложенное списание, повторные попытки при сбоях. Заложили синхронный ответ на каждый запрос – система ляжет под нагрузкой. Когда видите задержку между операциями, первый вопрос: это бизнес не знает итоговое значение, или система не тянет синхронно? Ответ на этот вопрос определяет архитектуру. Теперь вы знаете, откуда берётся этот загадочный рубль в выписке. Перешлите тому, кто каждый раз дёргается, когда видит списание на 1₽. А в следующем посте – разберём сам турникет. Одна железка, три способа оплаты: Тройка, банковская карта, Face Pay. Три совершенно разных архитектуры внутри одного устройства. p.s. покатался на метро называется... @analyst_exe