Совершение покупок в мобильном приложении в Android SDK
Отображение пейволов в вашем мобильном приложении — это ключевой шаг для предоставления пользователям доступа к премиум-контенту или сервисам. Однако показ пейвола самостоятельно обрабатывает покупки только тогда, когда Adapty рендерит экран — то есть когда используется флоу или пейвол из старого Paywall Builder.
Если вы рендерите экран в собственном коде, для совершения покупки и открытия нужного контента необходимо использовать отдельный метод .makePurchase(). Этот метод служит точкой входа, через которую пользователи взаимодействуют с пейволами и завершают нужные транзакции.
Если пейвол содержит активный promotional offer для продукта, который пользователь пытается купить, Adapty автоматически применит его в момент покупки.
Имейте в виду, что introductory offer будет применён автоматически только в том случае, если Adapty отображает экран.
В остальных случаях вам нужно проверить право пользователя на introductory offer на iOS. Пропуск этого шага может привести к отклонению приложения при релизе. Кроме того, пользователям, имеющим право на introductory offer, может быть выставлена полная цена.
Убедитесь, что вы выполнили начальную настройку, не пропустив ни одного шага. Без неё мы не сможем валидировать покупки.
Совершение покупки
Adapty отображает ваш экран? Для пейвола на основе флоу или Paywall Builder покупки обрабатываются автоматически — этот шаг можно пропустить.
Ищете пошаговую инструкцию? Ознакомьтесь с гайдом по быстрому старту — там есть полное руководство по реализации с контекстом.
Параметры запроса:
| Параметр | Наличие | Описание |
|---|---|---|
| Product | обязательный | Объект AdaptyPaywallProduct, полученный из пейвола. |
Параметры ответа:
| Параметр | Описание |
|---|---|
| Profile | В случае успешного запроса ответ содержит этот объект. Объект AdaptyProfile предоставляет исчерпывающую информацию об уровнях доступа, подписках и разовых покупках пользователя в приложении. Проверьте статус уровня доступа, чтобы определить, есть ли у пользователя необходимый доступ к приложению. |
Примечание: если вы используете Apple StoreKit версии ниже 2.0 и Adapty SDK версии ниже 2.9.0, вам необходимо указать общий секрет Apple App Store вместо этого. Данный метод в настоящее время устарел и не рекомендуется Apple.
Смена подписки при покупке
Когда пользователь выбирает новую подписку вместо продления текущей, поведение зависит от стора. В Google Play подписка не обновляется автоматически — вам нужно обработать переключение в коде мобильного приложения, как описано ниже.
Чтобы заменить подписку другой на Android, вызовите метод .makePurchase() с дополнительным параметром:
Передавайте subscriptionUpdateParams только при переключении пользователя с активной подписки, купленной на том же аккаунте Google. Для новой покупки вызывайте makePurchase без этого параметра — его передача приведёт к ошибке CURRENT_SUBSCRIPTION_TO_UPDATE_NOT_FOUND_IN_HISTORY, сообщение которой ошибочно указывает на неактивную подписку или другой аккаунт Google.
Подробнее о подписках и режимах замены можно прочитать в документации для разработчиков Google:
- О режимах замены
- Рекомендации Google по режимам замены
- Режим замены
CHARGE_PRORATED_PRICE. Примечание: этот метод доступен только для повышения уровня подписки. Понижение уровня не поддерживается. - Режим замены
DEFERRED. Примечание: реальное изменение подписки произойдёт только по окончании текущего расчётного периода.
Управление предоплаченными планами
Если пользователи вашего приложения могут приобретать предоплаченные планы (например, купить невозобновляемую подписку на несколько месяцев), вы можете включить отложенные транзакции для предоплаченных планов.