Fooodo / Документация

Платежи

Как платежи проходят через Fooodo — поддерживаемые методы и валюты, Mollie под капотом, маршрутизация чаевых и пожертвований, конечный автомат платежей и сверка вебхуков.

Auto-translated · pending native review. The English version is canonical.

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 appPayment serviceMollieGuest
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
Payment lifecycle · sequence

Конвейер управляется вебхуками и является идемпотентным. Mollie может повторно отправлять вебхуки при временных сбоях; повторные вызовы безопасны — сервис завершает обработку досрочно, если статус платежа не изменился с момента последнего запуска.

Состояния платежа

Платёжный сервис отслеживает собственный конечный автомат, параллельный конечному автомату заказов в приложении меню:

СостояниеЗначение
OpenСоздан, ожидает ответа от Mollie
PendingMollie принял, ожидает действия гостя
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 или административную панель платёжного сервиса. На сегодняшний день клиентского сценария возврата не существует.

На этой странице