Pull to refresh
0
Apphud
Сервис для работы с подписками в iOS-приложениях

Как добавить поддержку льготного периода (Billing Grace Period) в iOS приложении?

Reading time 3 min
Views 3.7K

image


В сентябре Apple добавили поддержку льготных периодов (или grace-периодов) для возобновляемых подписок. Она позволяет пользователям, оформившим подписку, сохранить доступ к платному сервису, даже если ее не удалось продлить вовремя из-за проблем с оплатой. Подписка возобновится, когда пользователь обновит способ оплаты.


Длительность льготного периода зависит от длительности подписки. Для недельной подписки он равен 6 дням, для всех остальных – 16 дням.


Grace можно активировать в App Store Connect там, где настраиваются встроенные покупки. Но поддержку льготного периода в самом приложении реализовать тоже придется.


Как узнать, что пользователь находится в льготном периоде?


Для этого потребуется валидация чека App Store, чтобы получить JSON данные. Конечно, лучше использовать свой сервер для валидации чеков во избежание man-in-the-middle атак, как рекомендует Apple.


Валидации App Store чеков мы посвятили отдельную статью.

Если произойдет проблема с оплатой при включенном grace-периоде, в JSON в pending_renewal_info появится новое поле: grace_period_expires_date. Эта дата получается путем добавления 6 или 16 дней к дате истечения последней транзакции.


Если текущая дата находится между датой истечения последней транзакции и датой истечения грейс периода, то пользователь находится в grace-периоде. Значение expiration_intent также должно быть равно 2.


Если пользователь обновит платежные данные, то появится новая транзакция в массиве latest_receipt_info и поле grace_period_expires_date исчезнет из pending_renewal_info.


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


Разница между грейс периодом и is_in_billing_retry_period


Кроме поля grace-периода, остался и is_in_billing_retry_period в pending_renewal_info. Если значение равно 1, то у пользователя возникла проблема с оплатой, и он не находится в льготном периоде. Отличите в том, что тут вы сами решаете, давать платный функционал или нет. Получается, что каждый разработчик до этого времени сам выбирал как поступать.


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


Уведомляйте пользователя о проблемах с оплатой в приложении


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


Вы можете отобразить пользователю баннер или полноразмерный экран с просьбой обновить платежную информацию и кнопку перехода:


// example of navigating user to account billing
func handleOpenBilling(){
    let urlString = "https://apps.apple.com/account/billing"
    if let url = URL(string: urlString), UIApplication.shared.canOpenURL(url){                      UIApplication.shared.open(url)
}

В Apphud это уже сделано за вас


Если возникнет проблема с оплатой, пользователь получит пуш-уведомление с просьбой обновить платежную информацию. А если уведомления были отключены, то экран появится при следующем запуске приложения.


image
Экран обновления платежной информации


А еще Apphud учитывает льготный период и возвращает статус подписки, как активный. Если у вас нет времени реализовать эту фичу самостоятельно, попробуйте наш сервис по ссылке.


Удерживать пользователей важно как никогда


Уменьшать количество отписок и удерживать пользователей стало важно как никогда. С выходом iOS 13 Apple упростила механизм отписки: предложение отменить подписку показывается при удалении приложения, а экран с настройками стал еще доступнее:


image
Настройки подписок в iOS 13


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


Правила в Apphud


Механика решения проблем с оплатой у нас называется "Правилом". Мы рассмотрели лишь одно из правил. У нас есть и другие правила, которые помогут вам увеличить прибыль и удержать пользователей. Подробнее – в нашем блоге.

Only registered users can participate in poll. Log in, please.
Вы уже добавили поддержку grace-периодов в вашем приложении?
18.18% Да 2
36.36% Нет 4
45.45% Впервые слышу о них 5
11 users voted. 7 users abstained.
Tags:
Hubs:
+8
Comments 0
Comments Leave a comment

Articles

Information

Website
apphud.com
Registered
Founded
Employees
2–10 employees
Location
Россия
Representative
Денис Миннетдинов