Включение покупок с помощью пейволов в Capacitor SDK
Чтобы включить встроенные покупки, нужно разобраться с тремя ключевыми понятиями:
- Продукты — всё, что пользователи могут купить (подписки, расходуемые покупки, пожизненный доступ).
- Пейволы — конфигурации, определяющие, какие продукты предлагать. В Adapty пейволы — единственный способ получить продукты, и такой подход позволяет менять предложения, цены и наборы продуктов без изменения кода приложения.
- Плейсменты — места и моменты, где пейволы показываются в приложении (например,
main,onboarding,settings). Вы привязываете пейволы к плейсментам в дашборде, а затем запрашиваете их по ID плейсмента в коде. Это упрощает запуск A/B-тестов и показ разных пейволов разным пользователям.
Adapty предлагает три способа включить покупки в приложении. Выберите подходящий в зависимости от требований вашего приложения:
| Реализация | Сложность | Когда использовать |
|---|---|---|
| Adapty Paywall Builder | ✅ Легко | Вы создаёте полноценный пейвол в no-code конструкторе. Adapty автоматически отрисовывает его и берёт на себя весь процесс покупки, валидацию чеков и управление подписками. |
makePurchase | 🟡 Средне | Вы реализуете UI пейвола в коде приложения, но получаете объект пейвола из Adapty, сохраняя гибкость в управлении предложениями. См. гайд. |
| Observer mode | 🔴 Сложно | Вы полностью реализуете процесс покупки самостоятельно. См. гайд. |
Шаги ниже показывают, как реализовать пейвол, созданный в Adapty Paywall Builder.
Если вы не хотите использовать Paywall Builder, ознакомьтесь с гайдом по обработке покупок в пейволах, созданных вручную.
Чтобы отобразить пейвол, созданный в Adapty Paywall Builder, в коде приложения нужно:
- Получить пейвол: запросить пейвол из Adapty.
- Отобразить пейвол — Adapty возьмёт покупки на себя: показать контейнер пейвола в приложении.
- Обработать действия кнопок: связать действия пользователей в пейволе с реакцией приложения. Например, открывать ссылки или закрывать пейвол при нажатии кнопок.
Перед началом
Перед началом выполните следующие шаги:
- Подключите приложение к App Store и/или Google Play в дашборде Adapty.
- Создайте продукты в Adapty.
- Создайте пейвол и добавьте в него продукты.
- Создайте плейсмент и добавьте в него пейвол.
- Установите и активируйте Adapty SDK в коде приложения.
Быстрее всего выполнить эти шаги поможет quickstart-гайд или создание пейволов и плейсментов с помощью Developer CLI.
1. Получите пейвол
Ваши пейволы привязаны к плейсментам, настроенным в дашборде. Плейсменты позволяют показывать разные пейволы разным аудиториям или запускать A/B-тесты.
Чтобы получить пейвол, созданный в Adapty Paywall Builder, нужно:
-
Получить объект
paywallпо ID плейсмента с помощью методаgetPaywallи проверить, является ли он пейволом из конструктора, используя свойствоhasViewConfiguration. -
Создать представление пейвола с помощью метода
createPaywallView. Представление содержит элементы UI и стили, необходимые для отображения пейвола.
Чтобы получить конфигурацию представления, необходимо включить переключатель Show on device в Paywall Builder. В противном случае вы получите пустую конфигурацию представления, и пейвол не отобразится.
try {
const paywall = await adapty.getPaywall({
placementId: 'YOUR_PLACEMENT_ID',
});
// the requested paywall
} catch (error) {
// handle the error
}
if (paywall.hasViewConfiguration) {
try {
const view = await createPaywallView(paywall);
} catch (error) {
// handle the error
}
} else {
// use your custom logic
}
2. Отобразите пейвол
Теперь, когда у вас есть конфигурация пейвола, достаточно добавить несколько строк кода, чтобы отобразить его.
Для отображения пейвола вызовите метод view.present() на объекте view, созданном методом createPaywallView. Каждый view можно использовать только один раз. Если нужно показать пейвол снова, вызовите createPaywallView ещё раз, чтобы создать новый экземпляр view.
try {
await view.present();
} catch (error) {
// handle the error
}
Подробнее об отображении пейвола читайте в нашем гайде.
3. Обработайте действия кнопок
Когда пользователи нажимают кнопки в пейволе, Capacitor SDK автоматически обрабатывает покупки, восстановление и закрытие пейвола.
Однако другие кнопки имеют пользовательские или предустановленные ID и требуют обработки действий в вашем коде. Или вы можете захотеть переопределить их поведение по умолчанию.
Например, вы можете захотеть оставить пейвол открытым, когда пользователь переходит по веб-ссылке. Посмотрим, как это можно реализовать.
const unsubscribe = view.setEventHandlers({
onUrlPress(url) {
window.open(url, '_blank');
return false;
},
});
Следующие шаги
Есть вопросы или возникли проблемы? Загляните на наш форум поддержки, где можно найти ответы на распространённые вопросы или задать свой. Наша команда и сообщество всегда готовы помочь!
Ваш пейвол готов к отображению в приложении. Протестируйте покупки в песочнице App Store или в Google Play Store, чтобы убедиться, что тестовая покупка из пейвола проходит успешно.
Теперь нужно проверить уровень доступа пользователей, чтобы показывать пейвол или предоставлять доступ к платным функциям нужным пользователям.
Полный пример
Вот как все эти шаги можно объединить в приложении.
export default function PaywallScreen() {
const showPaywall = async () => {
try {
const paywall = await adapty.getPaywall({
placementId: 'YOUR_PLACEMENT_ID',
});
if (!paywall.hasViewConfiguration) {
// use your custom logic
return;
}
const view = await createPaywallView(paywall);
view.setEventHandlers({
onUrlPress(url) {
window.open(url, '_blank');
return false;
},
});
await view.present();
} catch (error) {
// handle any error that may occur during the process
console.warn('Error showing paywall:', error);
}
};
return (
<div style={{ display: 'flex', justifyContent: 'center', alignItems: 'center', height: '100vh' }}>
<button onClick={showPaywall}>Show Paywall</button>
</div>
);
}