Подтвердить что ты не робот

StoreKit на iOS - подписка на автообновление - как узнать, является ли это бесплатной пробной версией или нет?

В iTunes Connect можно предоставить бесплатный пробный период для автообновимых подписки.

App > Manage In App Purchases > Subscription Basic > 1 Month >  Offer a free trial?

Как я могу получить эту информацию на клиенте? SKProduct не имеет никакой информации об этом, как я вижу. Поскольку у нас есть маркетинговая кампания, для конечного пользователя очень сложно понять, что информация о продукте не имеет пробного периода.

Конечно, можно получить такую ​​информацию с сервера, который я поддерживаю, но тогда у нас будут накладные расходы с обновлением нашего сервера и iTunes Connect. Поэтому я не принимаю такой ответ, если он не подключен к поиску информации о пробном периоде из сервисов Apple.

Screenshot from iTunes Connect

4b9b3361

Ответ 1

TL;DR; Это невозможно. Вам нужно управлять этой информацией самостоятельно.


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

Кроме того, квитанция предоставляет вам всю необходимую информацию: для определенного продукта вы знаете, какой пробный период вы предоставляете. Поэтому при совершении покупки вы можете сохранить дату покупки, указанную в квитанции о покупке, в объекте модели или в NSUserDefaults или в цепочке ключей вместе с данными покупки. На этом этапе вы знаете, когда срок действия пробной версии истек, и убедитесь, что подписка по-прежнему действительна. Если вы не можете отключить доступ к контенту, пока не сможете это сделать.

Для получения дополнительной информации о покупках и подписках посетите Apple Руководство по покупке приложений.

Ответ 2

На стороне клиента вы обычно идентифицируете разные продукты и характеристики по их идентификатору продукта, так как App Store не предоставляет определенную информацию, такую ​​как период подписки и бесплатный пробный период.

Итак, если ваш идентификатор продукта, например: com.domain.app.product_paid1month_free7days вы разделяете идентификатор на стороне клиента и знаете, что продолжительность платной подписки 1 month, и у продукта есть бесплатный пробный период 7 days.

Конечно, одним из способов было бы передать идентификатор продукта на ваш собственный сервер, чтобы получить его характеристики в качестве ответа. Таким образом, вы можете постоянно поддерживать список продуктов без обновления бинарных и разных версий.