Включение покупок в кастомном пейволе на Flutter SDK

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

Этот гайд предназначен для разработчиков, которые реализуют кастомные пейволы. Если вы хотите самый простой способ подключить покупки, используйте Adapty Paywall Builder. С Paywall Builder вы создаёте пейволы в визуальном редакторе без кода, Adapty автоматически обрабатывает всю логику покупок, а тестировать разные дизайны можно без перевыпуска приложения.

Перед началом

Настройка продуктов

Чтобы подключить встроенные покупки, нужно понять три ключевых концепции:

  • Продукты — всё, что пользователи могут купить (подписки, расходуемые покупки, пожизненный доступ)
  • Пейволы — конфигурации, определяющие, какие продукты предлагать. В Adapty пейволы — единственный способ получить продукты, но такой подход позволяет менять продукты, цены и предложения без изменений в коде приложения.
  • Плейсменты — где и когда показывать пейволы в вашем приложении (например, main, onboarding, settings). Вы настраиваете пейволы для плейсментов в дашборде, а затем запрашиваете их по ID плейсмента в коде. Это упрощает проведение A/B-тестов и показ разных пейволов разным пользователям.

Разберитесь с этими концепциями, даже если работаете с кастомным пейволом. По сути, это просто способ управлять продуктами, которые вы продаёте в приложении.

Для реализации кастомного пейвола нужно создать пейвол и добавить его в плейсмент. Это позволит получать ваши продукты. Чтобы понять, что нужно сделать в дашборде, следуйте этому гайду по быстрому старту.

Управление пользователями

Вы можете работать как с бэкенд-аутентификацией, так и без неё.

Однако Adapty SDK по-разному обрабатывает анонимных и идентифицированных пользователей. Прочитайте гайд по быстрому старту с идентификацией, чтобы понять особенности и правильно работать с пользователями.

Шаг 1. Получение продуктов

Чтобы получить продукты для кастомного пейвола, нужно:

  1. Получить объект paywall, передав ID плейсмента в метод getPaywall.
  2. Получить массив продуктов для этого пейвола с помощью метода getPaywallProducts.

Future<void> loadPaywall() async {
  try {
    final paywall = await Adapty().getPaywall(placementId: 'YOUR_PLACEMENT_ID');
    final products = await Adapty().getPaywallProducts(paywall: paywall);
    
    // Use products to build your custom paywall UI
  } on AdaptyError catch (adaptyError) {
    // Handle the error
  } catch (e) {
    // Handle the error
  }
}

Шаг 2. Приём покупок

Когда пользователь нажимает на продукт в вашем кастомном пейволе, вызовите метод makePurchase с выбранным продуктом. Это запустит процесс покупки и вернёт обновлённый профиль.


Future<void> purchaseProduct(AdaptyPaywallProduct product) async {
  try {
    final purchaseResult = await Adapty().makePurchase(product: product);
    
    switch (purchaseResult) {
      case AdaptyPurchaseResultSuccess(profile: final profile):
        // Purchase successful, profile updated
        break;
      case AdaptyPurchaseResultUserCancelled():
        // User canceled the purchase
        break;
      case AdaptyPurchaseResultPending():
        // Purchase is pending (e.g., user will pay offline with cash)
        break;
    }
  } on AdaptyError catch (adaptyError) {
    // Handle the error
  } catch (e) {
    // Handle the error
  }
}

Шаг 3. Восстановление покупок

Сторы требуют, чтобы все приложения с подписками предоставляли пользователям возможность восстановить покупки.

Вызывайте метод restorePurchases, когда пользователь нажимает кнопку восстановления. Это синхронизирует историю покупок с Adapty и вернёт обновлённый профиль.


Future<void> restorePurchases() async {
  try {
    final profile = await Adapty().restorePurchases();
    // Restore successful, profile updated
  } on AdaptyError catch (adaptyError) {
    // Handle the error
  } catch (e) {
    // Handle the error
  }
}

Следующие шаги

Есть вопросы или возникли проблемы? Загляните на наш форум поддержки, где можно найти ответы на распространённые вопросы или задать свой. Наша команда и сообщество всегда готовы помочь!

Ваш пейвол готов к отображению в приложении. Протестируйте покупки в песочнице App Store или в Google Play Store, чтобы убедиться, что тестовую покупку можно совершить с пейвола. Чтобы увидеть, как это работает в готовой реализации, изучите PurchasesObserver в нашем примере приложения — там показана обработка покупок с правильной обработкой ошибок, наблюдателями UI и полноценной интеграцией SDK.

Затем проверьте, завершил ли пользователь покупку, чтобы решить, показывать ли пейвол или открыть доступ к платным функциям.