Покупки и подписки в приложении iOS

Прыгая через обручи Apple, чтобы реализовать свою бизнес-модель подписки на IOS

У вас отличное приложение, оно нравится людям. Новые пользователи приходят каждый день. Но они желают непрерывного потока контента. Новый контент, которого они не видели, каждый день, неделю, месяц. Они устают видеть одно и то же статичное изображение. Вы хотите предоставить это им, но кто позаботится о производственных расходах, связанных с текущим созданием контента? Вот где в игру вступает модель подписки. Заставьте пользователей поддерживать ваше приложение из собственной экосистемы Apple.

Требования

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

Настройка вывода средств

Чтобы загрузить платное приложение или иметь какой-либо вид IAP в своем приложении, вы должны сначала подписать Соглашение об использовании платных приложений Apple, за которое взимается ежегодная плата в размере 99 долларов США. Для этого соберите свой банк, контактную и налоговую информацию и войдите на https://itunesconnect.apple.com/ со своей учетной записью Apple. Оказавшись там, найдите значок Соглашение, налоги и банковское дело и перейдите к настройке всех форм для типа контракта Платное приложение.

Это важный шаг. Только после настройки всей информации API Apple не предоставит никакого ответа при тестировании вашего IAP, поэтому сделать это как можно раньше является обязательным условием для начала разработки.

Сделайте ваше приложение удобным для покупок

После того, как все вышеперечисленное будет выполнено, вам нужно будет настроить метаданные, необходимые для того, чтобы Apple могла определить, что ваше приложение будет поддерживать IAP. Перейдите к https://developer.apple.com со своей учетной записью Apple и посмотрите Сертификаты, идентификаторы и профили. Оказавшись там, выберите идентификаторы приложений в разделе Идентификаторы слева. Выберите AppID, который вы хотите добавить IAP (если вы еще не создали его, самое время сделать это) и откройте список. Если ваш идентификатор пакета не содержит подстановочных знаков (*), опция In-App Purchase должна быть включена по умолчанию, в противном случае включите ее. Обязательно обновите свой сертификат из Xcode после этого.

Теперь отправляйтесь в Xcode. В настройках проекта, выбрав правильную цель, на вкладке Возможности вы должны найти возможность Покупка в приложении. Включение этого параметра не только позволит вашему AppID делать запросы IAP, но и импортировать StoreKit в ваш проект, ключевую структуру, которую мы обсудим позже в этом посте.

Создание вкусностей

Пришло время создать продукт, который пользователи будут потреблять, когда все будет готово. Перейдите на https://itunesconnect.apple.com/ и войдите в систему. Оказавшись там, найдите свое приложение и выберите вкладку Features. Если вы щелкнете значок плюса рядом с In-App Purchases, появится подсказка с 4 вариантами на выбор.

Расходные материалы: чтобы использовать снова, вам необходимо совершить еще одну покупку. Ваши обычные драгоценные камни / монеты / рубины из любой бесплатной игры.

Не расходные. После покупки он разблокируется навсегда, и никаких дополнительных платежей не требуется. Дополнительный уровень, Pro версия приложения и т. Д.

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

Мы сосредоточимся на автоматически возобновляемых подписках, но, следуя этому руководству, мы направим вас на правильный путь и с любым другим IAP.

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

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

Гибель покупок в приложениях

С этим разделом вы, вероятно, будете чаще сталкиваться из-за неоднозначных методов проверки Apple. Ваш IAP должен быть утвержден Apple, и мы, разработчики IOS, понимаем, что это означает. Вот некоторые из наиболее распространенных состояний, с которыми вы столкнетесь:

Отсутствуют метаданные. В продукте отсутствует некоторая информация. Убедитесь, что все это настроено:

  • Имя ссылки
  • Цена
  • Локализованное описание
  • Примечания к обзору
  • Обзор ScreenShot

Готово к отправке: готово к отправке в Apple на рассмотрение.

Отклонено: отклонено обзором Apple, теперь вам следует связаться с Apple через опцию Связаться с нами и обсудить это с ними.

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

Одобрено: среда готова к тестированию и в рабочей среде.

Если ваш IAP не находится в утвержденном состоянии, вы не сможете получить или протестировать их в своем приложении, поэтому получение его утверждения должно быть вашим первым шагом. Однако это легче сказать, чем сделать. Как разработчик IOS, вы должны знать, что к настоящему времени Apple довольно разборчива, когда дело доходит до того, что они одобряют, а что отвергают. К счастью, вы можете извлечь уроки из моего утомительного процесса и точно знать, что вам нужно, чтобы добраться до этого экземпляра.

Получение такого сладкого статуса одобрения

Первым шагом к утверждению IAP является утверждение сборки. Apple никогда не одобрит и IAP, если не увидит, для чего он будет использоваться. Единственный способ продолжить - загрузить сборку в Itunes Connect и убедиться, что она прошла автоматическую проверку. Следующим шагом будет обзор Appstore. Идите и добавьте свою сборку. Не беспокойтесь, если ваше приложение еще не готово, так как вы можете сделать обзор, не выпуская его, просто убедитесь, что параметр «Выпустить эту версию вручную» установлен перед отправкой. Прокрутите вниз до раздела Покупки в приложении и выберите все IAP, подходящие для этой сборки.

Теперь, когда все готово, это должно быть все, что нужно Apple. Однако для подписок с автопродлением Apple требует, чтобы вы указали Срок предоставления услуг (ToS) в описании вашего приложения. Если вы этого не сделаете, IAP будет отклонен. Пример утвержденного описания выглядит следующим образом:

MyApp - это новый способ познания Вселенной

С MyApp вы получите:

* Куча крутых вещей

* Особые вещи раз в неделю

ЦЕНА И УСЛОВИЯ:

MyApp предлагает следующие варианты подписок:

* 1 месяц: 2,99 доллара США

* 1 год: 29,99 долларов США

Эти цены относятся к резидентам США. В других странах цены могут отличаться в зависимости от курса обмена местной валюты. Плата за подписку будет снята с вашей учетной записи iTunes. В конце срока, если автоматически возобновляемые подписки не отключены, ваша подписка будет автоматически продлена в вашей учетной записи iTunes. С вас будет взиматься плата по обычной цене подписки в течение 24 часов до окончания текущего срока. Вы можете отключить автоматическое продление в настройках своей учетной записи iTunes в любое время, но вы должны сделать это как минимум за 24 часа до окончания текущего срока. Возврат не будет предоставлен за неиспользованную часть какого-либо срока.

Политика конфиденциальности, условия и положения:

Http://myApp.com/PrivacyAndTOS

Убедитесь, что в описании присутствуют все моменты, указанные в этом небольшом абзаце, а также явно указываются преимущества и цены различных моделей. Внизу вы должны добавить политику конфиденциальности и ссылку ToS и согласовать ее с той, которая установлена ​​в iTunes Connect для вашего приложения в категории «Информация о приложении». Кроме того, вам необходимо отобразить краткую версию этого со ссылкой ToS где-нибудь внутри приложения.

Теперь все сделано, вы должны получить ответ через несколько дней с утверждением вашего IAP. Если нет, не стесняйтесь использовать опцию «Связаться со мной» в iTunes Connect, чтобы решить проблему лично с ними.

Наконец-то код

Вы знаете, что это руководство Apple, когда в нем было больше тысячи слов и не было написано ни одной строчки кода. А теперь за работу. Мы будем использовать фреймворк StoreKit, предоставленный Apple, который на удивление прост в реализации, хотя и сложен для понимания. По сути, есть PaymentQueue, в которой завершаются все транзакции. Затем вам нужно будет прослушать эту очередь и действовать соответствующим образом. Поток должен выглядеть так.

Это действительно просто. Взгляните на следующий код.

Давай пройдемся по этому поводу. Вот некоторые ключевые концепции:

SKPaymentQueue: очередь, в которой все транзакции хранятся для дальнейшей обработки.

SKProduct: продукт заявлен в Itunes Connect со всей доступной информацией.

SKPayment: намерение купить товар.

SKPaymentTransaction: событие, связанное с SKProduct.

SKProductRequest: запрос на получение информации о SKProducts с указанием идентификатора продукта.

SKProductResponse: ответ, содержащий желаемые продукты. Он состоит из двух списков: products и invalidProductIdentifiers. Первый будет содержать успешно выбранные SKProducts, второй - все идентификаторы, которые не соответствуют SKProduct. Если вы получаете недействительные идентификаторы, вот список устранения неполадок, который может вам помочь.

  • Убедитесь, что заполнены контракты, налоговая и банковская информация.
  • Убедитесь, что ProductID написан правильно
  • Убедитесь, что AppID указан явно (без подстановочных знаков (*))
  • Убедитесь, что выбран правильный профиль Provisioning.
  • Убедитесь, что в описании продукта включена опция «Разрешено для продажи».
  • Убедитесь, что продукт находится в одобренном состоянии
  • Убедитесь, что последняя проверка приложения в App Store не отклонена.

Теперь, во-первых, с помощью следующих строк вы можете легко создать SKProductRequest.

let request = SKProductsRequest(productIdentifiers: productIDs)
 request.delegate = self
 request.start()

Убедитесь, что вы реализовали SKProductsRequestDelegate, поскольку следующий метод является обратным вызовом.

func productsRequest(_ request: SKProductsRequest, didReceive response: SKProductsResponse)

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

let payment = SKPayment(product: product)
SKPaymentQueue.default().add(payment)

Убедитесь, что вы всегда получаете продукты, даже до того, как разрешите пользователю совершить покупку. Цена этих SKProducts будет локализована внутри них, поэтому вы должны отображать ее. Это гарантирует, что данные в вашем приложении всегда будут актуальными, так как указание неправильной цены в приложении может привести к тому, что Apple удалит его из App Store.

Вы также можете заметить в потоке раздел Внешнее событие. Транзакции могут происходить вне вашего приложения. Допустим, ваш пользователь изменил тип подписки в настройках системы или ваша отложенная транзакция была одобрена родителями пользователя, вы не сможете узнать об этом, если не ожидаете их. По этой причине всегда в AppDelegate в начале вашего приложения подписывайте приложение на PaymentQueue. Так вы не пропустите ни одно мероприятие.

После обработки транзакции всегда используйте метод queue.finishTransaction, чтобы она больше не появлялась.

Тестирование: действительно ли это работает?

Теперь я хочу убедиться, что это работает, прежде чем приступить к работе, но мне не хочется тратить деньги каждый раз, когда мне нужно попробовать. Кроме того, Apple будет удерживать 30% всей выручки. Для этого Apple позаботится о вас. Мы будем создавать тестовые аккаунты.

Войдите в iTunes Connect и выберите раздел Пользователи и роли. Выберите вкладку Тестировщики песочницы и создайте новую учетную запись. Вам не нужно его подтверждать, но это должен быть новый адрес электронной почты ([email protected]). Теперь выйдите из своей учетной записи на устройстве IOS и попытайтесь совершить покупку. Когда вас попросят указать адрес электронной почты и пароль, введите те, которые указаны в учетной записи песочницы. Если вы видите это, поздравляю, вы сделали это. Всегда проверяйте наличие ключевого слова Environment, иначе с вас будет взиматься плата.

Теперь иногда аккаунт не работает. Обычно после первой покупки вы получаете сообщение об ошибке «Не удается подключиться к iTunes» в консоли. Похоже, что время от времени Apple будет пытаться проверить вашу учетную запись на реальном iTunes, и в противном случае ваша учетная запись будет полностью аннулирована. Чтобы обойти это, просто создайте новый. Должен любить Apple!

Кстати,, время на сервере песочницы движется быстрее, поэтому вам нужно будет подождать всего пару минут, чтобы продлить подписку.

Подводя итоги

Если вы выполните все, то сможете протестировать свое приложение. После того, как вся утомительная работа будет сделана, вам останется только разблокировать контент внутри приложения и убедиться, что вы найдете наиболее подходящий способ привлечь новых пользователей и попробовать предлагаемую вами услугу, так как это только половина дела. . Получение подписок для технической работы - это не то же самое, что их работа в реальной жизни. Но это тема для другого поста. Удачи в вашем бизнесе!