Подписки и отчеты в Xamarin.iOS

Сведения о подписках без продления

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

Основные различия между необновляющимися подписками и другими типами продуктов:

  • Определение продукта в iTunes Подключение не включает термин. Код приложения должен иметь возможность определить срок действия из идентификатора продукта.
  • Их можно приобрести несколько раз (например, потребляемый продукт). Приложения необходимы для управления сроком действия подписки и продлением и запретить пользователю покупать перекрывающиеся подписки.
  • Покупки не поддерживаются функцией Restore StoreKit. Если подписка должна быть доступна на всех устройствах пользователя, приложение должно разработать и реализовать эту функцию в сочетании с удаленным сервером. Приложения также отвечают за резервное копирование состояния подписки в случаях, когда устройство выполняет резервное копирование, а затем восстанавливается из резервного копирования.
  • Обзор реализации
  • Подписки, не обновляемые, обычно должны быть реализованы с помощью рабочего процесса, доставленного сервером, и управления такими как потребляемые продукты.

Сведения о бесплатных подписках

Бесплатные подписки позволяют разработчикам помещать бесплатное содержимое в приложения Newsstand (они не могут использоваться в приложениях, отличных от Newsstand). После запуска бесплатной подписки она будет доступна на всех устройствах пользователя. Срок действия бесплатных подписок никогда не истекает; они заканчиваются только после удаления приложения.

Обзор реализации

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

О автоматически возобновляемых подписках

В приложениях Newsstand используются в основном подписки auto-Renewable. Они представляют продукт, предоставляющий пользователю доступ к динамическому содержимому в течение заданного периода времени, который настраивается в iTunes Подключение (период от 7 дней до 1 года). Подписки обновляются автоматически, заряжая идентификатор Apple ID в конце каждого периода подписки, если пользователь не откажется. Этот тип продукта хорошо подходит для подписок журналов или новостей, где пользователь получает доступ к каждой проблеме, опубликованной в то время как подписка действительна.

Обзор реализации

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

Общий секрет

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

На домашней странице iTunes Подключение выберите Мои приложения:

Select My Apps

Выберите приложение и перейдите на вкладку "Покупки в приложении":

Click on the In-App Purchases tab

В нижней части страницы выберите "Вид" или создайте общий секрет:

Select View or generate a shared secret

Generate a shared secret

Чтобы использовать общий секрет, включите его в полезные данные JSON, отправляемые на серверы Apple при проверке квитанции покупки в приложении для автоматической возобновляемых подписок, как показано ниже.

{
   "receipt-data" : "(receipt bytes here)",
   "password"     : "(shared secret bytes here)"
}

Поле состояния ответа будет равно нулю, если покупка действительна, как и в других типах продуктов.

Скачивание элементов после начального срока подписки

В рамках доставки продуктов подписки код должен часто проверять последнюю известную квитанцию на серверах Apple. Если подписка автоматически продлена с момента последней проверки, ответ JSON будет содержать дополнительные поля, которые уведомляют приложение транзакции, которая должна продлить срок действия подписок. Ответ JSON будет содержать:

{
   "status" : 0,
   "receipt" : { (receipt here) },
   "latest_receipt" : "(base-64 encoded receipt here)",
   "latest_receipt_info" : { (latest receipt info here) }
}

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

Восстановление автоматически возобновляемых подписок

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

Объект SKPaymentTransaction не включает термин подписки. Для каждого термина следует использовать другой идентификатор продукта и написать код, который может экстраполировать период подписки с даты покупки транзакции.

Тестирование автоматического продления

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

Отчетность

ITunes Подключение (itunesconnect.apple.com) предоставляет:

Продажи и тенденции — отображает сведения о скачиваниях, обновлениях и покупках в приложении.

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

Ниже показан пример отчета о продажах и тенденциях:

An example Sales and Trends report

Существует также приложение ITC Подключение Mobile iOS. Ниже приведены снимки экрана Телефон для некоторых доступных статистических данных:

iPhone screenshots for some of the statistics available