Платежи
Как платежи проходят через 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.
Это одна из ключевых причин, по которым платёжный сервис существует как отдельная граница.
Возвраты и сторнирования
Возвраты не являются функцией Fooodo: в приложении меню или административной панели платёжного сервиса нет действия возврата. Возврат оформляется непосредственно в панели управления Mollie против исходного платежа, а заказ сторнируется в POS-системе как обычно. Гости не могут запросить возврат через приложение.
Коннектор R-Keeper
Живая эталонная реализация контракта POS-коннектора Fooodo — какие данные пересекают границу, расписание синхронизации, лояльное ценообразование и механизм повторных попыток при сбоях в продакшене.
Скидки, купоны и программы лояльности
Операционное руководство для операторов по привлечению гостей и увеличению среднего чека через Fooodo — скидки в определённые временные окна, купонные коды, программы лояльности на основе POS, кросс-продажи, чаевые и пожертвования.