Ошибки Stripe при выкатке и оплате
Две группы проблем: одни мешают выкатить интеграцию, другие возникают уже при оплате.
Чек-лист выкатки
-
Подключён Firebase
Без связанного проекта Firebase платежи не заработают — см. подключение Firebase.
-
Тариф Blaze
Облачные функции доступны только на нём. О переходе с тарифа Spark — в документации Firebase.
-
Задан регион GCP
Без выбранного расположения ресурсов Google Cloud выкатка не пройдёт.

-
Права проекта Firebase
Нужны права на управление доступом и на настройку сервисов — см. инструкцию по подключению.

-
Код страны продавца
Трёхбуквенный: «GBR» для Великобритании, а не «UK». Сверяйтесь со списком кодов стран.


-
Ключи Test и Live
Оба набора должны быть заполнены — независимо от стадии разработки.

-
Совпадение регионов
Регион проекта Firebase и регион в настройках FlutterFlow должны совпадать.


Проблемы при оплате
-
Нужна авторизация
Stripe требует авторизованного пользователя. Вызывайте оплату только после входа или регистрации.
-
Разный вид окна оплаты
В вебе и на мобильных окно оплаты выглядит по-разному — так устроен сам Stripe, и во FlutterFlow это не настраивается.
-
Цена в центах
Сумма передаётся в минимальных единицах валюты — центах, а не долларах. Перевод удобно вынести в собственную функцию:
int dollarToCent(double amount) { // Переводим сумму в строку String st = amount.toString(); // Убираем точки и запятые st = st.replaceAll('.', ''); st = st.replaceAll(',', ''); // Возвращаем целое число return int.parse(st); }На входе
14.99, на выходе1499. -
Ошибка CORS
Ошибка CORS при запуске оплаты означает проблему с правами облачной функции. Проверьте, выдано ли право
allUsersдля функции Stripe в консоли Firebase.

-
Подписки на мобильных
Apple и Google не разрешают оформлять подписки Stripe внутри мобильных приложений. Для мобильных используйте RevenueCat, для веба — прямые вызовы API.