Совершение покупок в мобильном приложении в Android SDK

Отображение пейволов в вашем мобильном приложении — это ключевой шаг для предоставления пользователям доступа к премиум-контенту или сервисам. Однако показ пейвола самостоятельно обрабатывает покупки только тогда, когда Adapty рендерит экран — то есть когда используется флоу или пейвол из старого Paywall Builder.

Если вы рендерите экран в собственном коде, для совершения покупки и открытия нужного контента необходимо использовать отдельный метод .makePurchase(). Этот метод служит точкой входа, через которую пользователи взаимодействуют с пейволами и завершают нужные транзакции.

Если пейвол содержит активный promotional offer для продукта, который пользователь пытается купить, Adapty автоматически применит его в момент покупки.

Warning

Имейте в виду, что introductory offer будет применён автоматически только в том случае, если Adapty отображает экран.

В остальных случаях вам нужно проверить право пользователя на introductory offer на iOS. Пропуск этого шага может привести к отклонению приложения при релизе. Кроме того, пользователям, имеющим право на introductory offer, может быть выставлена полная цена.

Убедитесь, что вы выполнили начальную настройку, не пропустив ни одного шага. Без неё мы не сможем валидировать покупки.

Совершение покупки

Note

Adapty отображает ваш экран? Для пейвола на основе флоу или Paywall Builder покупки обрабатываются автоматически — этот шаг можно пропустить.

Ищете пошаговую инструкцию? Ознакомьтесь с гайдом по быстрому старту — там есть полное руководство по реализации с контекстом.

Параметры запроса:

ПараметрНаличиеОписание
ProductобязательныйОбъект AdaptyPaywallProduct, полученный из пейвола.

Параметры ответа:

ПараметрОписание
Profile

В случае успешного запроса ответ содержит этот объект. Объект AdaptyProfile предоставляет исчерпывающую информацию об уровнях доступа, подписках и разовых покупках пользователя в приложении.

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

Warning

Примечание: если вы используете Apple StoreKit версии ниже 2.0 и Adapty SDK версии ниже 2.9.0, вам необходимо указать общий секрет Apple App Store вместо этого. Данный метод в настоящее время устарел и не рекомендуется Apple.

Смена подписки при покупке

Когда пользователь выбирает новую подписку вместо продления текущей, поведение зависит от стора. В Google Play подписка не обновляется автоматически — вам нужно обработать переключение в коде мобильного приложения, как описано ниже.

Чтобы заменить подписку другой на Android, вызовите метод .makePurchase() с дополнительным параметром:

Warning

Передавайте subscriptionUpdateParams только при переключении пользователя с активной подписки, купленной на том же аккаунте Google. Для новой покупки вызывайте makePurchase без этого параметра — его передача приведёт к ошибке CURRENT_SUBSCRIPTION_TO_UPDATE_NOT_FOUND_IN_HISTORY, сообщение которой ошибочно указывает на неактивную подписку или другой аккаунт Google.

Подробнее о подписках и режимах замены можно прочитать в документации для разработчиков Google:

Управление предоплаченными планами

Если пользователи вашего приложения могут приобретать предоплаченные планы (например, купить невозобновляемую подписку на несколько месяцев), вы можете включить отложенные транзакции для предоплаченных планов.