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.

Это одна из ключевых причин, по которым платёжный сервис существует как отдельная граница.

Возвраты и сторнирования

Возвраты не являются функцией Fooodo: в приложении меню или административной панели платёжного сервиса нет действия возврата. Возврат оформляется непосредственно в панели управления Mollie против исходного платежа, а заказ сторнируется в POS-системе как обычно. Гости не могут запросить возврат через приложение.

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