Stripe
Stripe принимает оплату прямо в приложении — картой, через Apple Pay или Google Pay.
инфо
Что нужно заранее
- Пройдено подключение Firebase.
- Включена аутентификация Firebase.
- Проект Firebase переведён на тариф Blaze — платёж обрабатывается облачной функцией.
Как подключить
Пять шагов:
- Настроить Stripe
- Настроить Apple Pay — по желанию
- Добавить действие оплаты
- Проверить на тестовых картах
- Перейти на боевые ключи
1. Настройка Stripe
Нужно взять ключи из аккаунта Stripe и добавить их во FlutterFlow.
внимание
Сначала всегда проверяйте оплату в тестовом режиме — ниже речь именно о тестовых ключах.
- Заведите аккаунт Stripe или войдите в существующий.
- В панели нажмите Developers.
- Включите Test Mode справа сверху.
- Перейдите на вкладку API keys.
- Во FlutterFlow откройте Settings and Integrations > In App Purchases & Subscriptions > Stripe и включите Enable Stripe Payments.
- Скопируйте Publishable Key и Secret Key со страницы API keys и вставьте их в соответствующие поля. Для тестового режима — в секцию Test Credentials.
- В блоке Additional Settings заполните:
- Merchant Display Name (обязательно) — имя продавца, которое увидит пользователь при оплате.
- Merchant Country Code (обязательно) — двухбуквенный код страны по ISO: US, IN, AU.
- Apple Merchant ID (по желанию) — нужен для оплаты через Apple Pay, см. следующий шаг.
- Нажмите Deploy.
Платёжный сервис Stripe развернётся как облачная функция Firebase — после этого приложение может принимать оплату.
2. Настройка Apple Pay
Три шага:
- Создать Apple Merchant ID
- Загрузить платёжный сертификат в Stripe
- Указать Apple Merchant ID во FlutterFlow
2.1. Apple Merchant ID
- В Certificates, Identifiers & Profiles откройте раздел Identifiers и выберите Merchant IDs.
- Нажмите + справа сверху.
- Введите Description и Identifier. Идентификатор обычно выглядит как
merchantплюс имя пакета приложения (его видно на странице настроек FlutterFlow): например,merchant.com.domainname.appname. - Нажмите Continue.
- Проверьте данные и нажмите Register, затем Done.
- Вернитесь в Identifiers и выберите App IDs.
- Откройте идентификатор своего приложения.
- В блоке Capabilities отметьте Apple Pay Payment Processing.
- Нажмите Configure, выберите созданный merchant-аккаунт и нажмите Continue.
- Нажмите Save, затем подтвердите.
2.2. Платёжный сертификат в Stripe
- На странице Settings панели Stripe выберите Payment methods.
- В секции Wallets разверните Apple Pay.
- Нажмите Configure — откроется страница Apple Pay settings.
- В блоке iOS certificates нажмите + Add new application.
- Скачается файл запроса на подпись сертификата (CSR); нажмите Continue.
- В аккаунте Apple выберите Merchant ID, к которому привязываете сертификат, и нажмите Create Certificate.
- Загрузите скачанный файл CSR.
- Нажмите Activate, затем Download — сертификат сохранится на компьютер.
- Вернитесь в диалог Stripe и нажмите Continue.
- Загрузите файл сертификата.
- Готовый сертификат появится в списке iOS certificates.
2.3. Apple Merchant ID во FlutterFlow
- Откройте Settings and Integrations > In App Purchases & Subscriptions > Stripe.
- В блоке Additional Settings заполните Apple Merchant ID.

3. Действие Stripe Payment
- Выберите виджет — контейнер, кнопку и так далее.
- В панели свойств справа откройте Actions и нажмите Open — откроется Action Flow Editor.
- Нажмите + Add Action.
- Справа найдите и выберите Stripe Payment (раздел Integrations).
- В Amount укажите сумму — числом или из переменной. Сумма задаётся в минимальных единицах валюты: $24.99 передаётся как 2499, а ¥1925 — просто как 1925. Дробное значение округлится автоматически. Список валют без дробной части.
- В Currency Code укажите валюту: USD, EUR, BRL. Неверный код — платёж не пройдёт.
- Заполните Customer Email (обязательно) и Customer Name (по желанию) — значением или переменной. При включённой аутентификации оба берутся из Authenticated User.
- В Description опишите покупку — это увидите и вы, и пользователь.
- Чтобы принимать Google Pay или Apple Pay, включите соответствующие тумблеры. Для Apple Pay понадобится Merchant ID.
- В Payment Sheet Theme выберите оформление: System Default, Light Theme или Dark Theme.
- Задайте Primary Button Color и Button Text Color для окна оплаты.
- В Output Variable Name укажите переменную, куда попадёт идентификатор платежа при успешной оплате.
внимание
Перед вызовом действия пользователь должен быть авторизован, иначе платёж завершится ошибкой.
4. Проверка
Оплату можно проверить на мобильном и в вебе до публикации:
- Откройте Settings and Integrations > In App Purchases & Subscriptions > Stripe.
- Убедитесь, что Is Production выключен.
- Проверьте, что в Test Credentials введены правильные Publishable Key и Secret Key.
- Выгрузите и запустите проект.
- Платите любой из тестовых карт Stripe.
5. Переход на боевые ключи
- Войдите в аккаунт Stripe и откройте Developers.
- Выключите Test Mode справа сверху.
- Откройте API keys и скопируйте Publishable Key и Secret Key.
- Во FlutterFlow вставьте их в секцию Production Credentials.
- Для Android — публикация в Google Play.
- Для iOS — публикация в App Store.
Частые вопросы
Ошибка «Unknown error occurred»
Проверьте три вещи:
- Код страны. В настройках Stripe во FlutterFlow иногда срабатывает трёхбуквенный код — «USA» вместо «US». Если ошибка не уходит, попробуйте изменить формат, удалите ранее развёрнутые функции в консоли Firebase и разверните их заново.
- Авторизация. Stripe требует авторизованного пользователя — вызывайте действие только после входа.
- Права облачных функций. У функции должна быть роль Cloud Functions Invoker для allUsers. Проверить можно в консоли Google Cloud: найдите функцию initStripePayment, откройте её и посмотрите вкладку Permissions. Обычно роль выдаётся сама, но лишний раз убедиться не помешает.
