Платежи
Как платежи проходят через Fooodo — поддерживаемые методы и валюты, Mollie под капотом, маршрутизация чаевых и пожертвований, конечный автомат платежей и сверка вебхуков.
Fooodo выделяет обработку платежей в отдельный сервис. Клиентское приложение меню проксирует запросы к нему; платёжный сервис отвечает за интеграцию с Mollie, область действия PCI и сверку вебхуков.
Поддерживаемые методы
В настоящее время в продакшене:
- Карты (Visa, Mastercard) и прямое дебетование банковского счёта в ЕС
- Apple Pay
- Google Pay
- Trustly — прямая оплата через онлайн-банкинг, преимущественно для рынков Северной и Балтийской Европы, где аутентификация через банковское приложение является стандартным потребительским сценарием
Полный каталог методов Mollie технически доступен через ту же интеграцию; в производственный путь оформления заказа включены только перечисленные выше методы. Дополнительные методы (например, iDEAL, Bancontact) могут быть включены для конкретного развёртывания.
Наличные поддерживаются как отдельный сценарий: официант принимает наличные у столика и отмечает заказ как оплаченный непосредственно в административной панели Fooodo. Сам заказ проходит через тот же конечный автомат; пропускается только шаг создания платежа в Mollie.
Поддерживаемые валюты
Fooodo рассчитывает каждый заказ в валюте, настроенной для ресторана. Mollie поддерживает более 30 валют; практический список для рынков, которые Fooodo обслуживает сегодня:
| Регион | Валюты |
|---|---|
| Еврозона | EUR |
| Великобритания | GBP |
| Восточная Европа (не евро) | PLN (Польша), CZK (Чехия), HUF (Венгрия), RON (Румыния), BGN (Болгария) |
| Северная Европа | DKK, NOK, SEK |
| Прочие | CHF, USD |
Полный каталог Mollie (31 валюта, включая AUD, CAD, JPY, ZAR) технически доступен; не каждый метод оплаты охватывает каждую валюту. EUR и основные карточные сети (Visa, Mastercard) работают повсеместно; поддержка метода по валюте уточняется в процессе подключения для развёртываний вне еврозоны.
Для румынских развёртываний в частности RON поддерживается через карточные платежи от начала до конца; Apple Pay и Google Pay также принимают карты RON.
Жизненный цикл платежа
| Menu app | Payment service | Mollie | Guest |
|---|---|---|---|
01Create payment for order | |||
02Build payload (tips · donations) and create payment | |||
03Return checkout URL | |||
04Pass checkout URL through | |||
05Redirect guest to Mollie checkout | |||
06Complete payment | |||
07Webhook callback (payment ID only) | |||
08Fetch authoritative status | |||
09Notify status (queued, signed) | |||
10Show success / cancel page | |||
Конвейер управляется вебхуками и является идемпотентным. Mollie может повторно отправлять вебхуки при временных сбоях; повторные вызовы безопасны — сервис завершает обработку досрочно, если статус платежа не изменился с момента последнего запуска.
Состояния платежа
Платёжный сервис отслеживает собственный конечный автомат, параллельный конечному автомату заказов в приложении меню:
| Состояние | Значение |
|---|---|
Open | Создан, ожидает ответа от Mollie |
Pending | Mollie принял, ожидает действия гостя |
Authorized | Авторизован, но ещё не списан |
Paid | Списан и завершён |
Failed | Терминальный сбой |
Cancelled | Гость отменил |
Expired | Время ожидания платежа в Mollie истекло |
Cancelled и Expired являются восстанавливаемыми — гость может повторить попытку по тому же заказу, что создаёт новую попытку платежа для того же заказа.
Чаевые
Чаевые объединяются в единый платёж Mollie вместе с заказом — гости никогда не видят второй экран оформления для чаевых. После проведения платежа чаевые поступают в ваш POS как отдельная строка чаевых в заказе, чтобы отчётность и процессы распределения чаевых работали как обычно. Код дохода POS, используемый для отражения дохода от чаевых, задаётся для каждого ресторана в административной панели (R-Keeper является действующим эталонным коннектором для этого; другие коннекторы POS предоставляют ту же настройку через контракт коннектора).
Пожертвования
Пожертвования работают аналогично: единый платёж Mollie для гостя, однако часть пожертвования направляется на отдельный счёт организации внутри Mollie (Красный Крест является действующим эталонным примером). С точки зрения гостя это одна транзакция; с точки зрения оператора пожертвование не отображается в выручке ресторана и в отчётах о продажах POS — оно чисто поступает в бухгалтерию организации-партнёра.
Вебхуки
Задействованы два вебхука:
- Mollie → платёжный сервис. Публичный эндпоинт, получающий только идентификатор платежа Mollie. Затем сервис обращается к API Mollie для получения авторитетного статуса — таким образом, поддельный обратный вызов не может переместить деньги или изменить состояние заказа. (Это стандартный паттерн интеграции Mollie; их обратные вызовы намеренно минималистичны.)
- Платёжный сервис → приложение меню. Аутентификация по Bearer-токену, секрет для каждого развёртывания. Именно этот канал фактически переключает состояние заказа на стороне приложения меню.
Если вы эксплуатируете развёртывание Fooodo, секрет приложения меню предоставляется в процессе подключения. Если вы интегрируетесь с Fooodo как партнёр, вы, как правило, не будете видеть ни один из этих вебхуков.
Что видят партнёры
Партнёры-интеграторы не интегрируются с платёжным сервисом напрямую. Контракт таков:
- Вы вызываете API создания заказов приложения меню.
- Вы получаете заказ и (когда требуется оплата) URL для оформления.
- Вы не обрабатываете данные карт, не обращаетесь к Mollie, вам не нужна область действия PCI.
Это одна из ключевых причин, по которым платёжный сервис существует как отдельная граница.
Возвраты и сторнирования
Возвраты — это действие оператора; гости не могут запросить их из приложения. В зависимости от вашего развёртывания возвраты оформляются через панель управления Mollie или административную панель платёжного сервиса. На сегодняшний день клиентского сценария возврата не существует.
R-Keeper коннектор
Живая эталонная реализация контракта POS-коннектора Fooodo — какие данные пересекают границу, расписание синхронизации, лояльное ценообразование и механизм повторных попыток при сбоях в продакшене.
Скидки, купоны и программы лояльности
Руководство оператора по привлечению гостей и увеличению среднего чека через Fooodo — скидки с временным окном, купонные коды, программы лояльности на базе POS, перекрёстные продажи на кассе, чаевые и пожертвования.