Статьи

Как перейти на Amazon In-App Покупки в Google

Конечный продукт
Что вы будете создавать

Добро пожаловать. Если вы новичок в магазине приложений Amazon, ознакомьтесь с нашим недавним вводным руководством « Как отправить приложение в магазин приложений Amazon» . В сегодняшнем выпуске я познакомлю вас с преимуществами и требованиями Amazon In-App покупок (IAP). В частности, я опишу, как те из вас, кто использует приложения Google Play, использующие IAB Google, могут легко перенести свои приложения для работы с Amazon IAP.

Прежде чем мы углубимся, я просто хочу рассказать о преимуществах Amazon Appstore.

Когда вы добавляете свое приложение в Amazon Appstore, оно отображается для пользователей Android и Fire более чем в 200 странах, и разработчики теперь могут перечислять свои веб-приложения для ПК, Mac и HTML5, а также приложения для Android. Отправляя свое приложение, веб-приложение или игру в программу, вы можете увеличить свой бизнес и доходы.

По данным Statista , в настоящее время в магазине приложений Amazon есть более 600 000 приложений.

В дополнение к сегодняшнему учебному пособию вы можете найти множество полезной информации на портале Amazon для разработчиков .

Если ваше Android-приложение уже есть в магазине Google Play, присоединиться к Amazon Appstore еще проще. Amazon сообщает, что более 85% приложений для Android просто работают на Kindle Fire без дополнительной разработки. Вот короткое видео, описывающее процесс перехода из Google Play в Amazon Appstore (видео) :

Но если вы используете IAB от Google, вам нужно переключиться, и я покажу вам, как это сделать.

Прежде чем идти дальше, я хочу побудить вас ответить на любые вопросы, которые могут у вас возникнуть по поводу этого урока. Отправьте их в комментариях ниже или мне @lookahead_io в Twitter. Дайте нам знать, если вы хотите увидеть больше руководств по Amazon Appstore или AWS в целом.

С помощью API In-App покупок вы можете включить привлекательные наборы функций и сценарии, такие как:

  • Создание модели «freemium» для вашего приложения, где само приложение бесплатно, но вы платите премию за продвинутые услуги или функциональность
  • Предоставление клиентам возможности покупать валюту в приложении непосредственно в приложении.
  • Предоставление клиентам возможности подписываться на контент, доступный в вашем приложении
  • Сделать контент доступным для покупки для просмотра в вашем приложении

API покупок в приложении Amazon позволяет вашему приложению представлять, обрабатывать и совершать покупки цифрового контента и подписок в рамках вашего приложения. Чтобы включить этот набор функций, просто внедрите API-интерфейс покупок в приложении, как подробно описано в разделе реализации ниже:

Блок-схема реализации API закупок Amazon In-Appp

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

Создав витрину магазина, вы можете использовать API-интерфейс покупок в приложении для продажи покупаемых товаров :

Есть три вида покупаемых предметов:

  • Расходные материалы : контент, который не требует использования прав или прав доступа, может быть приобретен клиентом несколько раз, доступен только на устройстве, у которого он приобретен, и не требует какой-либо проверки прав на использование.
  • Права : контент, который требует использования прав или прав доступа, может быть приобретен только один раз клиентом и доступен на всех совместимых устройствах, зарегистрированных в учетной записи клиента.
  • Подписки : контент, который требует использования прав или прав доступа, ограничен периодом времени, автоматически продлевается и доступен на всех подходящих устройствах, зарегистрированных в учетной записи Amazon клиента.

Клиент Amazon является неотъемлемой частью API покупок в приложении. Как только вы инициируете покупку, клиент Amazon появляется и представляет пользовательский интерфейс Amazon для завершения транзакции. Этот поток используется всеми приложениями, которые выбирают использование API-интерфейсов покупок в приложении.

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

Клиент Amazon представляет пользовательский интерфейс для всех аспектов рабочего процесса покупки. Он обеспечивает логику для отображения покупного предмета, выполнения самой покупки в 1 клик и обработки любых предварительных условий или возникающих ошибок.

Предоставление ссылки непосредственно на клиент Amazon из вашего приложения является эффективным инструментом для продвижения ваших приложений. Этот тип ссылки упоминается как глубокая ссылка. Более подробную информацию о глубоких ссылках можно найти в документации .

При разработке с API-интерфейсом закупок в приложении Amazon важно понимать, какие части потока покупок должно реализовывать приложение, а какие — клиентом Amazon.

Клиент Amazon позаботится о процессе покупки, начиная с того момента, когда клиент решит приобрести товар, и заканчивая, когда магазин предоставляет приложению квитанцию ​​о покупке (или другой статус в случае неудачной покупки). Разработчики не должны предоставлять диалоги покупки, логику тайм-аута транзакции или диалоги «Спасибо». Все они предоставляются клиентом Amazon. Пожалуйста, обратитесь к разделу « Руководства и соглашения по пользовательскому интерфейсу » для более подробной информации.

В случае, если покупка не удалась, клиент Amazon представит клиенту сообщение; Ваше приложение не должно сообщать клиенту . Например, если у клиента нет действующей кредитной карты, он перенаправляет клиента на страницу, где он может обновить свою платежную информацию. Вы не должны предоставлять клиенту подтверждение или другой промежуточный диалог о процессе покупки.

Ваше приложение Амазонка
Представляет каталог предметов в приложении покупателю для покупки Управляет потоком покупок
Разблокирует покупную функциональность Выполняет обработку платежей
Загружает удаленно доставленный контент Обеспечивает безопасную связь с платформой Amazon, включая безопасность платежей
Отображает и использует загруженные цифровые товары Проверяет права и проверяет квитанции о покупке
Отслеживает покупки клиентов и расходные материалы Управляет подписками, включая автоматическое продление и отзыв прав

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

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

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

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

Ваше приложение должно содержать уникальные идентификаторы для каждого покупаемого товара (SKU) , возможность представлять каталог покупателю и логику в приложении для загрузки, сохранения и предоставления загруженного контента после успешной транзакции.

В июле 2014 года Amazon выпустила API In-App покупок (IAP) v2.0, который включает несколько важных обновлений. По состоянию на 30 апреля 2016 года Amazon устарел IAP v1.0 для новых и обновленных представлений приложений. Хотя это осуждение не влияет на приложения, которые уже были в Amazon Appstore, любые приложения, представленные как новые или обновленные приложения после 11 мая 2016 года, должны будут использовать IAP v2.0.

Теперь давайте обсудим различия между биллингом в Google Play (IAB) и встроенными покупками Amazon (IAP) и дадим общее описание того, как адаптировать ваше приложение для использования обоих наборов API.

Функция биллинга в приложении Google Play позволяет пользователям совершать покупки виртуальных предметов прямо из вашего приложения. Например, пользователь может приобрести дополнительные уровни для игры, в которую он или она играет.

Закупки Amazon в приложении — это эквивалентная функция для API Amazon. Если у вас есть приложение, использующее функцию биллинга в приложении Google Play, вы можете легко изменить свой код, чтобы использовать аналогичную функцию покупок в приложении Amazon. Оба набора API имеют схожую функциональность с некоторыми различиями в именовании и терминологии.

Если вы будете отправлять приложение, которое реализует IAB Google Play, в Amazon Appstore, которое будет доступно для работы на устройствах Amazon, таких как планшеты Fire, ваше приложение должно будет реализовать IAP Amazon для покупок в приложении. IAB Google Play не будет работать на устройствах Amazon.

В приведенной ниже таблице показано сравнение между API IAP Amazon и IAB API Google Play:

Особенность IAP v2.0 (Amazon) IAB v3.0 (Google Play) Комментарии
Покупки
Содержание обрабатывается API. Y N
Предоставлена ​​структура простых вызовов API. Y N
расходные материалы Y Y
Отдельные расходные материалы можно приобрести несколько раз. Y Y
Entitlements
Куплен один раз. Пользователи уведомляются, если они пытаются приобрести право, которым они уже владеют. Y Y
Подписки
Разнообразие параметров для периода времени, в течение которого выполняется подписка. Y Y Параметры Amazon: еженедельно, раз в две недели, ежемесячно, раз в два месяца, ежеквартально, раз в полгода, ежегодно. Опции Google Play: ежемесячно, ежегодно, сезонно (по выбору).
Поддерживает бесплатные пробные периоды. Y Y
Параметры автообновления Y Y
Отложенный биллинг N Y
Подтверждение получения
Служба подтверждения получения покупок Y Y Хотя в Google Play предусмотрена проверка квитанций, процесс проверки квитанций в Google Play не автоматизирован.

В то время как Google Play IAB и Amazon IAP позволяют вашим клиентам совершать покупки в приложении одного и того же типа, Google Play и Amazon используют разные термины для своих типов покупок. В следующей таблице указан эквивалент Google Play для каждого типа покупки Amazon:

Амазонка Описание Google Play Эквивалент Примеры
потребляемый Покупка, которая совершается, а затем потребляется в приложении, как правило, в игре. Можно купить несколько раз. Управляемые продукты в приложении Дополнительные жизни или ходы (в игре), дополнительные боеприпасы для игрового персонажа.
право Однократная покупка для разблокирования доступа к функциям или контенту в приложении или игре. Управляемые продукты в приложении Разблокируйте дополнительные уровни в игре или функции «только для премиум-членов» в приложении.
Подписка Предоставляет доступ к премиальному набору контента или функций в течение ограниченного периода времени. Подписка Подписка на онлайн-журналы, доступ в фэнтези-футбол

Как вы можете видеть, IAB в Google Play одинаково относится ко всем покупкам без подписки; предмет покупается, а затем потребляется пользователем. После того, как предмет был израсходован, он добавляется в приложение, и потребление записывается. Для предметов, которые могут быть разовыми покупками, например, для разблокировки новых игровых уровней, у вас есть возможность рассматривать этот предмет как расходный или не расходуемый и вводить логику, чтобы гарантировать, что покупка этого предмета происходит только один раз.

Благодаря IAP от Amazon эти разовые покупки отделены по дизайну от покупок, таких как дополнительные жизни, которые пользователи приложения могут покупать снова и снова.

Давайте проведем вас через перенос приложения из IAB API Google Play в API Amazon IAP:

  1. Настройте файл AndroidManifest.xml для поддержки IAP Amazon.
  2. В вашем приложении реализуйте логику для посредничества между IAB и IAP.
  3. Добавьте и внедрите API Amazon IAP.
  4. Протестируйте свое приложение.

Настройте файл AndroidManifest.xml, чтобы определить получатель ответов IAP для вашего приложения. IAP Response Receiver гарантирует, что ваше приложение перехватит намеренную связь с клиентом Amazon. Обратите внимание, что если вы поддерживаете как IAB Google Play, так и IAP Amazon, вам не нужно удалять элементы, связанные с IAB; они будут просто игнорироваться IAP.

В своем файле AndroidManifest.xml добавьте соответствующий <receiver> для IAP ResponseReceiver :

1
2
3
4
5
6
7
8
9
<application>
    <receiver android:name=»com.amazon.inapp.iap.ResponseReceiver»>
        <intent-filter>
            <action android:name=»com.amazon.inapp.purchasing.NOTIFY» android:permission=»com.amazon.inapp.purchasing.Permission.NOTIFY»>
        </action></intent-filter>
    </receiver>
</application>

Вы можете использовать одну и ту же базу кода для своего приложения, независимо от того, где размещено ваше приложение. Просто добавьте логику в свое приложение, чтобы определить, было ли приложение загружено из магазина приложений Amazon или из Google Play. В зависимости от того, где пользователь загрузил приложение, выполните соответствующие методы для IAP или IAB.

Следующий пример кода определяет, был ли пакет установлен из Google Play или Amazon Appstore:

1
2
3
4
5
6
7
8
9
PackageManager pkgManager = context.getPackageManager();
 
String installerPackageName = pkgManager.getInstallerPackageName(context.getPackageName());
 
if(installerPackageName.startsWith(«com.amazon»)) {
// Amazon
} else if («com.android.vending».equals(installerPackageName)) {
// Google Play
}

По большей части IAP Amazon работает аналогично IAB в Google Play. Когда вы создаете путь в своем коде для реализации IAP API, вы должны иметь возможность использовать логический поток, аналогичный IAB, но вам нужно будет учитывать разные имена классов и методов.

В следующей таблице сопоставлены наиболее часто используемые методы IAP с их эквивалентами IAB:

Метод снабжения Аргумент обратного вызова PurchaseasingListener Объект ответа Эквивалентный вызов IAB
getUserData() onUserDataResponse() UserDataResponse N / A
getPurchaseUpdates() onPurchaseUpdatesResponse() PurchaseUpdatesResponse getPurchases()
getProductData() onProductDataResponse() ProductDataResponse getSkuDetails()
purchase() onPurchaseResponse() PurchaseResponse getBuyIntent()
notifyFulfillment() N / A N / A consumePurchase()

Обратите внимание, что notifyFulfillment() Amazon notifyFulfillment() вызов notifyFulfillment() Google consumePurchase() коррелируют друг с другом. Вызывая consumePurchase() для управляемого элемента для IAB вернет состояние элемента в состояние «не куплено», по сути, преобразовав его в расходный материал. После этого квитанция больше не будет отображаться в ответе на последующие вызовы getPurchases() . Amazon будет возвращать квитанции за расходные материалы в вызовах getPurchaseUpdates() до тех пор, пока приложение не notifyFulfillment() .

Для получения дополнительной информации о классах и методах IAP, см. Ссылку API Покупки в приложении v2.0 .

Загрузите и установите инструмент App Tester, чтобы протестировать приложение, интегрированное в IAP v2.0. Этот инструмент также может тестировать API-интерфейсы Mobile Associates, если они используются в вашем приложении. Следуйте инструкциям и ссылкам в разделе « Тестирование в приложении» (IAP), чтобы установить и использовать App Tester.

После локального тестирования приложения вы можете использовать сервис Live App Testing для бета-тестирования приложения в рабочей среде с выбранной группой пользователей.

Я надеюсь, что вам понравилось сегодняшнее руководство, а также наш предыдущий Как отправить свое приложение в эпизод Amazon Appstore . Пожалуйста, дайте нам знать, какие области Amazon Appstore вы бы хотели увидеть более подробно. Вы можете опубликовать их в комментариях ниже или связаться со мной в Twitter @lookahead_io .

Если вам понравился этот учебник, пожалуйста, ознакомьтесь с моей серией по созданию стартапа с помощью PHP , и продолжайте читать мою страницу инструктора Envato Tuts +, чтобы увидеть другие мои учебники и серии.