Основы покупки в приложении и конфигурация в Xamarin.iOS

Реализация покупок в приложении требует от приложения использовать API StoreKit на устройстве. StoreKit управляет всеми сообщениями с серверами iTunes Apple для получения сведений о продукте и выполнения транзакций. Профиль подготовки должен быть настроен для приобретения в приложении, а сведения о продукте должны быть введены в Подключение iTunes.

StoreKit manages all communication with Apple’s as shown in this chart

Использование App Store для предоставления покупки в приложении требует следующей настройки и настройки:

  • iTunes Подключение — настройка продуктов для продажи и настройки учетных записей пользователей песочницы для тестирования приобретения. Вы также должны предоставить свои банковские и налоговые сведения Apple, чтобы они могли передавать средства, собранные от вашего имени.
  • Портал подготовки iOS— создание идентификатора пакета и включение доступа к App Store для приложения.
  • Комплект магазина— добавление кода в приложение для отображения продуктов, приобретения продуктов и восстановления транзакций.
  • Пользовательский код — для отслеживания покупок, сделанных клиентами, и предоставления продуктов или услуг, которые они приобрели. Кроме того, вам может потребоваться реализовать серверный процесс для проверки квитанций, если продукты состоят из содержимого, скачаного с сервера (например, книг и журналов).

Существует два пакета магазина "серверные среды":

  • Производство — транзакции с реальными деньгами. Доступно только через приложения, которые были отправлены и утверждены Apple. Продукты покупки в приложении также должны быть проверены и утверждены, прежде чем они доступны в рабочей среде.
  • Песочница — где выполняется тестирование. Продукты доступны сразу после создания (процесс утверждения применяется только к рабочей среде). Для выполнения транзакций в песочнице требуются тестовые пользователи (не реальные идентификаторы Apple).

Правила покупки в приложении

Вы не можете принимать другие формы оплаты цифровых продуктов или служб в приложении, а также не упоминание их или ссылаться на пользователей из приложения. Это означает, что вы не можете принимать кредитные карта или PayPal, если покупка в приложении является наиболее подходящим механизмом оплаты. Существует особый случай покупки цифровых продуктов за пределами приложения, но для использования в приложении, таких как покупки книги на веб-сайте, связанном с определенным "именем входа", и использование этого "входа" в приложении позволяет пользователю получить доступ к приобретенным книгам. Приложения, которые работают таким образом, не могут упоминание или связаться с внешней функцией приобретения. Разработчики должны обмениваться данными с пользователями другими способами (возможно, с помощью маркетинга электронной почты или другого прямого канала).

Однако, так как вы не можете использовать покупки в приложении для физических товаров, в этом случае вы можете использовать альтернативный механизм оплаты (например, кредитный карта, PayPal) из приложения.

Apple должна утвердить каждый продукт, прежде чем он будет продаваться - имя, описание и снимок экрана продукта требуется для проверки. Время проверки продукта совпадает с временем проверки приложений.

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

Настройка

Перед написанием кода покупки в приложении необходимо выполнить некоторые действия по настройке в iTunes Подключение (itunesconnect.apple.com) и портале подготовки iOS (developer.apple.com/iOS).

Перед написанием кода необходимо выполнить следующие три шага:

  • Учетная запись разработчика Apple— отправьте свои банковские и налоговые сведения в Apple.
  • Портал подготовки iOS— убедитесь, что приложение имеет допустимый идентификатор приложения (не дикий карта со звездочкой * в нем) и включен в приобретении приложений.
  • iTunes Подключение Управление приложениями — добавление продуктов в приложение.

Учетная запись разработчика Apple

Для создания и распространения бесплатных приложений требуется очень мало конфигурации в iTunes Подключение, однако для продажи платных приложений или покупок в приложении требуется предоставить Apple банковские и налоговые сведения. Щелкните "Соглашения", "Налог" и "Банковский" в главном меню, показанном здесь:

Click on Agreements, Tax and Banking from the main menu

Ваша учетная запись разработчика должна иметь контракт платных приложений iOS, как показано на этом снимке экрана:

Your Developer Account should have an iOS Paid Applications contract in effect

Вы не сможете протестировать какие-либо функции StoreKit, пока у вас не будет контракта с платными приложениями iOS— вызовы StoreKit в коде завершаются ошибкой до тех пор, пока Apple не обработает ваши контракты, налоги и банковские сведения.

Портал подготовки iOS

Новые приложения настраиваются в разделе идентификаторов приложений портала подготовки iOS. Чтобы создать идентификатор приложения, перейдите в Центр участников портала подготовки iOS, перейдите к разделу "Сертификаты, идентификаторы и профили" на портале и щелкните "Идентификаторы" в разделе "Приложения iOS". Затем щелкните "+" в правом верхнем углу, чтобы создать новый идентификатор приложения.

Форма создания идентификаторов приложений

Выглядит следующим образом:

The form for creating new App IDs

Введите что-то подходящее для описания, чтобы можно было легко определить этот идентификатор приложения в списке. Для префикса идентификатора приложения выберите идентификатор команды.

Формат суффикса идентификатора пакета или идентификатора приложения

Вы можете использовать любую строку, которую вы хотите использовать для идентификатора пакета (если она уникальна в вашей учетной записи), однако Apple рекомендует использовать обратный формат DNS, а не использовать любую произвольную строку. Пример приложения, сопровождающего эту статью, использует com.xamarin.storekit.testing для идентификатора пакета, однако использовать идентификатор, например my_store_example (даже если Apple не рекомендует его).

Внимание

Apple также позволяет добавлять в конец идентификатора пакета дикие карта звездочки, чтобы один идентификатор приложения можно было использовать для нескольких приложений, однако идентификаторы приложений с диким карта нельзя использовать для In-AppPurchase. Пример идентификатора пакета wild-карта может быть com.xamarin.*

Включение Служба приложений

Обратите внимание, что покупка в приложении будет автоматически включена в списке служб:

In-App Purchase will be automatically enabled in the Services list

Профили подготовки

Создайте профили подготовки разработки и рабочей среды, как правило, выберите идентификатор приложения, настроенный для приобретения в приложении. Дополнительные сведения см. в руководствах по подготовке и публикации устройств iOS в App Store.

iTunes Connect

Щелкните Мои приложения в iTunes Подключение, чтобы создать или изменить запись приложения iOS. На странице обзора приложения показана следующая страница:

The application overview page

Щелкните "Покупки в приложении" , чтобы создать или изменить продукты для продажи. На этом снимке экрана показан пример приложения с несколькими продуктами, которые уже добавлены:

The sample app with several products already added

Процесс добавления новых продуктов состоит из двух этапов.

  1. Выберите тип продукта: Choose the product type
  2. Введите атрибуты продукта, включая идентификатор продукта, ценовую категорию и локализованные описания: Entering the products attributes

Поля, необходимые для каждого продукта покупки в приложении, описаны ниже.

Ссылочное имя

Имя ссылки не отображается пользователям; он предназначен для внутреннего использования и отображается только в iTunes Подключение.

Формат идентификатора продукта

Идентификатор продукта может содержать только буквенно-цифровые символы (A-Z, a-z,0-9), символы подчеркивания (_) и точки (.). Хотя для идентификаторов можно использовать любую строку, Apple рекомендует обратный формат DNS. Например, в примере приложения используется этот идентификатор пакета:

com.xamarin.storekit.testing

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

com.xamarin.storekit.testing.consume5credits
com.xamarin.storekit.testing.consume10credits
com.xamarin.storekit.testing.sepia
com.xamarin.storekit.testing.greyscale

Это соглашение об именовании не применяется, просто рекомендация, помогающая управлять продуктами. Кроме того, несмотря на то, что после того же соглашения обратного DNS идентификаторы продукта не связаны с идентификатором пакета и не требуются для начала с той же строки. Он по-прежнему будет допустимым для использования идентификаторов, таких как photo_product_greyscale (даже если Apple не рекомендует его).

Идентификатор продукта не отображается пользователям, но он используется для ссылки на продукт в коде приложения.

Тип продукта

Существует пять типов продуктов покупки в приложении, которые можно предложить:

  1. Потребляемые — вещи, которые "используются", например в игровой валюте, которую игрок может потратить. Если пользователь выполняет резервное копирование или восстановление или в противном случае обновляет свое устройство, потребляемая транзакция не восстанавливается также (что эффективно дает игроку одно и то же преимущество снова). Код приложения должен быть указан как только после завершения транзакции.
  2. Непотребляемые — продукты, которые пользователь "владеет" после покупки, например цифровой журнал вопрос или игровой уровень.
  3. Автоматически возобновляемые подписки — как и в реальном мире подписка журнала, в конце периода подписки Apple автоматически взимает плату за клиент и расширяет срок подписки, навсегда или пока клиент явно не отменяет его. Это предпочтительный способ оплаты для приложений Newsstand (на самом деле приложения должны поддерживать этот метод оплаты для распространения Newsstand).
  4. Бесплатная подписка — можно предлагать только в приложениях с поддержкой Newsstand и позволяет клиенту получать доступ к содержимому подписки на всех своих устройствах. Срок действия бесплатных подписок никогда не истекает.
  5. Подписка, не обновляющаяся . Следует использовать для продажи ограниченного времени доступа к статичном содержимому, например доступ к архиву фотографий в течение одного месяца.

В настоящее время в этом документе рассматриваются только первые два типа продуктов (потребляемые и неиспотребляемые).

Ценовые категории

App Store не позволяет выбрать произвольную цену для ваших продуктов — Apple предоставляет фиксированные ценовые категории, которые можно выбрать. Цены фиксируются в каждой валюте, и Apple резервирует право на корректировку относительных цен (например, после устойчивого изменения относительного валютного курса между определенной валютой и долларом США).

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

An excerpt of the price matrix August 2012

На момент написания статьи (июнь 2013 г.) 87 уровней с 0,99 долл. США до 999,99 долл. США. Матрица цен показывает цену, которую будут платить ваши клиенты, а также сумму, которую вы будете получать от Apple - это меньше их 30% платы, а также любые местные налоги, которые они требуются для сбора (обратите внимание, что американские и канадские продавцы получают 70c для 99c продукта, в то время как австралийские продавцы получают только 63c из-за "Товары и услуги налог", взимаемого по цене продажи).

Цены на ваш продукт можно обновлять в любое время, включая запланированные изменения цен, которые вступают в силу на будущую дату. На этом снимка экрана показано, как добавляется будущее изменение цен — цена временно изменяется с уровня 1 на категорию 3 только в течение сентября:

A future-dated price change where the price is being temporarily changed from tier 1 to tier 3 for the month of September only

Бесплатные продукты не поддерживаются

Хотя Apple предоставил специальный вариант бесплатной подписки для приложений Newsstand, невозможно установить нулю (бесплатную) цену для любых других типов покупок в приложении. Хотя вы можете изменить (т. е. более низкие) цены на рекламные акции продаж, вы не можете совершать покупки в приложении "бесплатные" через iTunes Подключение.

Локализация

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

Each language can be added/edited in via a popup

При отображении сведений о продукте в приложении локализованный текст доступен для отображения через StoreKit. Отображение валюты также должно быть локализовано для отображения правильного символа и десятичного форматирования. Это форматирование рассматривается далее в документе.

Проверка Магазина приложений

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

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

The iTunes Connect portal will prompt you to submit some products as well

Приложение и покупки в приложении будут рассмотрены вместе, чтобы все они были утверждены сразу (чтобы приложение не входить в магазин без каких-либо утвержденных продуктов!).

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

Дополнительные сведения см. в руководстве по обзору App Store.

Часть 2. Общие сведения о комплекте для магазина и получение сведений о продукте