Подписки и отчеты в Xamarin.iOS
Сведения о подписках без продления
Подписки, не обновляющиеся, предназначены для продуктов, представляющих продажу службы с ограничением времени (например, на одну неделю доступа к приложению навигации или ограниченному времени доступу к архиву данных).
Основные различия между необновляющимися подписками и другими типами продуктов:
- Определение продукта в iTunes Подключение не включает термин. Код приложения должен иметь возможность определить срок действия из идентификатора продукта.
- Их можно приобрести несколько раз (например, потребляемый продукт). Приложения необходимы для управления сроком действия подписки и продлением и запретить пользователю покупать перекрывающиеся подписки.
- Покупки не поддерживаются функцией Restore StoreKit. Если подписка должна быть доступна на всех устройствах пользователя, приложение должно разработать и реализовать эту функцию в сочетании с удаленным сервером. Приложения также отвечают за резервное копирование состояния подписки в случаях, когда устройство выполняет резервное копирование, а затем восстанавливается из резервного копирования.
- Обзор реализации
- Подписки, не обновляемые, обычно должны быть реализованы с помощью рабочего процесса, доставленного сервером, и управления такими как потребляемые продукты.
Сведения о бесплатных подписках
Бесплатные подписки позволяют разработчикам помещать бесплатное содержимое в приложения Newsstand (они не могут использоваться в приложениях, отличных от Newsstand). После запуска бесплатной подписки она будет доступна на всех устройствах пользователя. Срок действия бесплатных подписок никогда не истекает; они заканчиваются только после удаления приложения.
Обзор реализации
Бесплатные подписки работают так же, как автоматически возобновляемые подписки. Приложение должно иметь продукт бесплатной подписки, доступный для покупки в iTunes Подключение. При покупке пользователем бесплатная покупка подписки должна быть проверена как продукт автоматической возобновляемых подписок. Можно восстановить бесплатные транзакции подписки.
О автоматически возобновляемых подписках
В приложениях Newsstand используются в основном подписки auto-Renewable. Они представляют продукт, предоставляющий пользователю доступ к динамическому содержимому в течение заданного периода времени, который настраивается в iTunes Подключение (период от 7 дней до 1 года). Подписки обновляются автоматически, заряжая идентификатор Apple ID в конце каждого периода подписки, если пользователь не откажется. Этот тип продукта хорошо подходит для подписок журналов или новостей, где пользователь получает доступ к каждой проблеме, опубликованной в то время как подписка действительна.
Обзор реализации
Автоматически обновляемые подписки должны быть реализованы с помощью рабочего процесса доставки продуктов сервера (см . раздел проверки квитанций и продуктов, доставленных сервером ).
Общий секрет
Общий секрет покупки в приложении должен использоваться в запросе JSON при проверке автоматически возобновляемых подписок на сервере. Общий секрет создается и обращается через Подключение iTunes.
На домашней странице iTunes Подключение выберите Мои приложения:
Выберите приложение и перейдите на вкладку "Покупки в приложении":
В нижней части страницы выберите "Вид" или создайте общий секрет:
Чтобы использовать общий секрет, включите его в полезные данные 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) предоставляет:
Продажи и тенденции — отображает сведения о скачиваниях, обновлениях и покупках в приложении.
Платежи и финансовые отчеты— сведения о доходах, полученных вашими приложениями, а также о перечислении платежей, которые были сделаны вам и сколько вы должны.
Ниже показан пример отчета о продажах и тенденциях:
Существует также приложение ITC Подключение Mobile iOS. Ниже приведены снимки экрана Телефон для некоторых доступных статистических данных: