В помощь мобильному разработчику
Внутри игровые покупки

Consumable покупки в приложении

Александр Алексеев

Если Вы разрабатываете игру или приложение с контентом, который по идее должен приобретаться неоднократно, Вам будет необходимо интегрировать в это приложение потребляемый тип покупок — consumables. В предыдущем посте IAP (Inn App Purchases) я рассказал об основах настройки приложения под транзакции IAP, добавлении элементов IAP в Google Play и iTunes Connect, а также познакомил Вас с плагином In-App Billing Plugin для Xamarin, который значительно упрощает процесс добавления IAP в код приложения. Сегодня мы рассмотрим потребляемые покупки и то, как они улучшают процесс разработки.

Consumables покупки

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

 

Настройка Consumables

Google не проводит существенных различий между non-consumable и consumable, отличие есть только в API. В случае с iOS копания Apple требует от разработчиков, чтобы те указывали эту информацию на начальном этапе при создании IAP в iTunes connect.

Consumables iTunes Connect

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

 

Покупка

Как в случае с iOS, так и Android нам нужно убедиться в том, что у нас установлен плагин In-App Billing во всех проектах нашего решения при помощи NuGet. Системы iOS и Android обрабатывают consumables немного по-разному, так что мы начнем с iOS, у которой имеется очень похожий поток по отношению к non-consumables, о чем мы уже рассказывали ранее.

Процесс покупки

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

  1. Запросить оплату в очереди ожидания.
  2. Отправить запрос на сервер.
  3. Подготовить процессы и возвраты iTunes.
  4. Обработать прием оплаты в приложении.
  5. Представить информацию о покупке в приложении.

Должно быть, эта схема выглядит знакомо, ведь это тот же самый поток, как non-consumables. Таким образом, все что нужно сделать — это вызвать метод PurchaseAsync, и наш товар становится доступным и может быть использован! Поскольку мы отметили IAP в качестве consumable, теперь продукт можно будет покупать неоднократно.

 

В случае с Android следует выполнить еще один дополнительный шаг. Сперва мы должны обратиться к приведенному выше коду, чтобы фактически приобрести расходный элемент. В то же время реализация Google этих consumables интегрирует сценарий, в котором пользователь может купить расходный элемент, с тем чтобы воспользоваться им в будущем. К примеру, приобретя такие вещи, как монеты, их можно будет впоследствии обналичить в игре, получив взамен какие-либо товары. Получается, что мы не можем приобрести расходный элемент вновь, пока мы на самом деле не завершим покупку и не «используем» его. Для этого плагин имеет дополнительный метод ConsumePurchaseAsync, который принимает специфическую информацию о покупке. Если этот метод вызвать на iOS, тогда просто вернется null. Мы можем использовать Device Info Plugin для вызова ConsumePurchaseAsync на Android только тогда, когда есть покупка:

 

Заключение

Существует также много других IAPs, включая подписки и информацию о продукте, которые раскрываются в APIs плагинах In-App Billing. Дополнительную информацию о них можно получить из файла README на сайте проекта GitHub. Из этой же документации можно узнать о соответствующих настройках, тестировании и устранении неисправностей при интеграции In-App покупок. Кроме того, я настоятельно рекомендую прочитать полную документацию по покупкам In-App для iOS и Android.

АвторJames Montemagno
ИсточникОфициальный блог Xamarin

Александр Алексеев
Александр Алексеев

Xamarin - разработчик. Работаю с .NET платформой с 2012 года, программирую в основном с использованием C#. За это время успел поработать с ASP.NET, Entity Framework, MSSQL, Git

Браузер на планшете
Project Rome

2 комментария

  1. Аватар Виталий Reply to Виталий

    Здравствуйте, с данным плагином у меня не получилось совершать покупки, на реальном устройстве получаю сообщение, что данное приложение не найдено. Так и не смог разобраться в чем дело. Есть ли альтернативные варианты для Xamarin?

Написать ответ