Что значит приложение включает встроенные покупки

Что значит приложение включает встроенные покупки

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

Все внутриигровые покупки In-App Purchase на iPhone и iPad проходят через сервера iTunes, тем самым снимая деньги с банковской карты, привязанной к Apple ID. По простой случайности можно совершить множество встроенных покупок, которые затем выльются в крупную сумму денег. Чтобы этого избежать мы решили рассказать о том, как предотвратить случайную потерю денег из-за «доната» в программах и играх.

Как отключить встроенные покупки на любой версий iOS:

Шаг 1. Перейти в «Настройки» → «Основные» → «Ограничения».

Шаг 2. Активировать ограничения, введя четырехзначный код. Его необходимо запомнить, а лучше куда-нибудь записать и хранить в надежном месте.

Шаг 3. Деактивировать переключатель напротив «Встроенные покупки».

После этих несложных манипуляций, при попытке что-нибудь купить при помощи встроенных покупок на iPhone, iPad или iPod Touch будет появляться сообщение «Встроенные покупки не разрешены».

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

До 10 мая все желающие могут бесплатно получить спортивный браслет Xiaomi Mi Band 4, потратив на это всего 2 минуты.

Присоединяйтесь к нам в G o o g l e News , Twitter, Facebook, ВКонтакте, YouTube и RSS чтобы быть в курсе последних новостей из мира технологий будущего.

Каждый раз, когда вы покупаете редкий меч для героя в игре, полную версию приложения или подписку на контент, знайте – для вас работает система встроенных покупок Apple (In-App Purchase). Минус заключается в том, что нередко «накупить» всего и всея может другой человек – например, маленький ребенок. Как избежать таких трат?

К счастью, Apple предусмотрела простой решить проблему: в Настройках можно полностью запретить встроенные покупки. Ниже мы расскажем о том, как сделать это на различных Apple-устройствах.

Как отключить встроенные покупки на iPhone и iPad

На iOS 12 и новее

С выходом iOS 12 процесс контроля над ограничениями в мобильной операционной системе перекочевал в раздел настроек под названием Экранное время. Для отключения встроенных покупок выполните следующие действия:

1. Откройте приложение Настройки и перейдите в раздел Экранное время.

2. Нажмите на кнопку-ссылку Включить Экранное время.

3. На экране с описанием возможностей Экранного времени нажмите Дальше.

4. На экране с вопросом «Этот iPhone (iPad) для Вас или для Вашего ребенка?» внизу экрана нажмите Это iPhone (iPad) моего ребенка.

5. На экране «В покое», выберите вариант Не сейчас.

6. На экране «Лимиты программ», выберите вариант Не сейчас.

7. На экране «Контент и конфиденциальность» нажмите Дальше.

8. Создайте (придумайте) код-пароль, который необходим для внесения изменений в разделе Экранное время или для разрешения встроенных покупок.

9. Перейдите в меню «Контент и конфиденциальность» раздела Экранное время и введите код-пароль из п.8.

10. Установите переключатель «Контент и конфиденциальность» в положение Включено.

11. Перейдите в меню «Покупки в iTunes Store и App Store».

12. Нажмите на пункт Встроенные покупки и выберите вариант Нет.

После выполнения этих действий при каждом запросе на осуществление встроенной покупки, iOS будет запрашивать код-пароль из п.8.

На iPhone и iPad c iOS 7 — iOS 11

1. Откройте Настройки, выберите ОсновныеОграничения.

2. Введите свой пароль для ограничений (или придумайте и подтвердите новый). Рекомендуется не вводить такой же пароль, каким вы пользуетесь для разблокировки iPhone / iPad.

3. Чтобы отключить встроенные покупки, опуститесь чуть ниже и деактивируйте переключатель напротив надписи Встроенные покупки.

Полезный совет: присмотритесь к настройкам в этом разделе. Возможно, вам стоит отключить и другие пункты – Установка программ, Удаление программ и т.д.

Как отключить встроенные покупки на Mac

К сожалению, механизм детальной защиты от встроенных покупок «макам» не знаком. Впрочем, это не проблема — нам вполне хватит и небольшого «шаманства» в настройках. Мы сделаем так, что Мас будет требовать пароль от Apple ID при каждой покупке приложения через Mac App Store или любого контента в приложениях.

На macOS 10.14 и новее

1. Откройте приложение App Store и перейдите в его настройки.

2. В выпадающем меню напротив надписи Покупки и встроенные покупки нажмите на Запрашивать всегда.

На macOS 10.9 — 10.13

1. Откройте Системные настройки на вашем Мас (для этого используйте значок с «шестеренкой» в Dock или поисковый запрос через Spotlight).

2. Выберите раздел App Store.

3. В выпадающем меню напротив надписи Покупки и встроенные покупки нажмите на Запрашивать всегда.

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

Как отключить встроенные покупки на Apple TV

1. Пройдите по адресу НастройкиОсновныеОграничения.

2. Включите ограничения, если ранее этого не делали, создайте пин-код из 4 цифр.

3. Во вкладке iTunes Store выберите подходящий уровень безопасности для покупок в iTunes Store и tvOS App Store — скачивать всё, что угодно, скачивать после ввода пин-кода или заблокировать все встроенные покупки по умолчанию.

Полезный совет: при желании покупки можно защитить и более надежным паролем от Apple ID. Для этого в настройках пароля (НастройкиУчетные записи -→ iTunes и App StoreВстроенные и другие покупки) выберите Запрос пароля → Всегда.

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

В этой статье мы рассмотрим, как можно реализовать встроенные покупки на примере своего приложения Менеджер паролей от Wi-Fi сетей.

Возможность покупок в приложениях реализована благодаря In-app Billing. In-app Billing — это сервис Google Play, который позволяет продавать цифровой контент внутри приложений. Этот сервис можно использовать для продажи широкого спектра контента, включая загружаемый контент, такой как мультимедийные файлы и фотографии, виртуальный контент, такой как уровни игры или различные вспомогательные предметы, премиальные услуги и многое другое.

Встроенные покупки можно подключить для любого приложения, опубликованного в Google Play. Ничего особенного для этого не требуется, только аккаунт разработчика Google Play Console и аккаунт продавца Google Wallet. Android SDK также содержит пример приложения с реализованными встроенными покупками.

Ваше приложение обращается к сервису In-app Billing с помощью API, который предоставляется приложением Google Play, установленным на устройстве. Затем Google Play передает платежные запросы и ответы на запросы между вашим приложением и сервером Google Play. Таким образом, ваше приложение никогда напрямую не связывается с сервером Google Play. Вместо этого ваше приложение отправляет запросы в приложение Google Play через межпроцессную связь (IPC) и получает от него ответы, нет необходимости поддерживать какие-либо соединения между вашим приложением и сервером Google Play.

In-app Billing поддерживает широкую совместимость, он работает на устройствах под управлением Android 2.2 (API 8) или выше, на которых установлена последняя версия приложения Google Play.

API In-app Billing предоставляет следующие возможности:

  • Ваше приложение отправляет запросы с помощью модернизированного API, который позволяет пользователям легко запрашивать информацию о продукте из Google Play и заказывать продукты в приложении. API быстро восстанавливает продукты на основе прав пользователя.
  • API синхронно передает информацию о заказе на устройство при завершении покупки.
  • Все покупки регулируемы, т.е. Google Play отслеживает права пользователя на продукты. Пользователь не может владеть несколькими экземплярами одного продукта в приложении; только один экземпляр может принадлежать пользователю в любой момент времени.
  • Приобретённые продукты могут быть использованы. В таком случае они возвращаются в бесхозное состояние и могут быть куплены снова.
  • API обеспечивает поддержку подписки.

Есть разные способы, как встроить в своё приложение In-app Billing: можно это делать как вручную, так и используя сторонние библиотеки. Одной из таких библиотек является Checkout, которая уже содержит в себе готовую к применению реализацию сервиса. Ею и воспользуемся.

Checkout — это реализация In-app Billing API. Большим плюсом здесь является, что с помощью этой библиотеки можно сделать интеграцию встроенных покупок в приложение намного проще, чем если бы это делалось вручную с нуля.

Checkout решает общие проблемы, с которыми могут столкнуться разработчики при работе с покупками, например:

  • Как отменить все запросы, когда активность уничтожена?
  • Как запросить информацию о покупках в фоновом потоке?
  • Как проверить покупку?
  • Как загрузить все покупки с использованием данных continuationToken или SKU (уникальный идентификатор продукта)?
  • Как добавить покупки с минимумом шаблонного кода?

Checkout может быть использован с любым фреймворком или без него. Он имеет четкое разграничение функциональности, доступной в разных контекстах: покупки могут быть сделаны только в активности, тогда как SKU может быть загружен в сервис или класс Application.

Перед началом работы библиотеку нужно добавить в проект. Для этого в файле build.gradle модуля приложения добавить зависимость в блок dependencies.

Для работы с покупками требуется специальное разрешение com.android.vending.BILLING, которое будет добавлено в AndroidManifest.xml автоматически с помощью Gradle. Вы также можете добавить его вручную, добавив в файл манифеста следующую строчку перед элементом :

Создадим экземпляр класса Billing в Application, откуда затем будем брать его при необходимости. Если у вас нет класса Application в проекте, вы можете легко создать его. Для этого нужно добавить в файле AndroidManifest.xml в элемент атрибут android:name=".Имя класса", например:

После этого нужно поставить курсор на имя класса, нажать Alt + Enter и выбрать опцию "Create class", после чего Android Studio создаст его.

В этом классе нам нужно добавить следующий код:

BASE64_PUBLIC_KEY это ключ, который используется для установления безопасного подключения между вашим приложением и сервером Google Play. Получить этот ключ вы можете в Google Play Console, перейдя в раздел "Инструменты разработки""Службы и API". Там в "Лицензирование и продажа контента" вы увидите сгенерированный для вашего приложения ключ, который нужно будет добавить в приложение, например, объявить как строковую константу в классе Application.

Класс Billing это основной класс для работы с библиотекой, он отвечает за:

  • подключение и отключение услуг биллинга;
  • выполнение платежных запросов;
  • кеширование результатов запросов;
  • создание объектов Checkout;
  • логирование;

Для того, чтобы избежать множественных подключений к службе In-app Billing, следует использовать только один экземпляр класса Billing, именно по этой причине мы и создаём его в классе Application.

Теперь в классе активности при её создании инициализируем экземпляр класса ActivityCheckout, который наследует от базового класса Checkout.

Класс Checkout это средний уровень библиотеки, он использует класс Billing в определённом контексте (в Application, активности или сервисе), проверяет, поддерживаются ли покупки на устройстве и выполняет запросы. ActivityCheckout это подкласс, который способен покупать различные предметы, для создания его экземпляра нужно вызвать метод Checkout.forActivity() и передать в параметры активность и экземпляр Billing.

Метод start() запускает созданный экземпляр и отправляет запрос, который проверяет, поддерживается ли биллинг на этом устройстве.

Метод createPurchaseFlow() создаёт постоянный поток для покупок со слушателем, который будет получать обновления данных о покупках. Код слушателя выглядит следующим образом:

Класс PurchaseListener наследует от EmptyRequestLisneter

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

Теперь нужно создать экземпляр класса Invertory.

Класс Invertory загружает данные о продуктах, SKU и покупках. Его жизненный цикл связан с жизненным циклом Checkout, в котором он был создан.

Метод makeInvertory() создаёт экземпляр Invertory и привязывает его к нужному объекту Checkout.

Метод load() отправляет запрос на получение данных о продуктах и асинхронно загружает результат в callback. В параметрах формируется запрос, какие именно продукты нужно получить (в данном случае, все имеющиеся, а именно донаты и отключение рекламы). Код коллбека, который принимает результат запроса, представлен ниже:

Метод onLoaded() вызывается, когда все данные загружены. В нём проверяются различные данные о продуктах. Например, можно проверить с помощью поля supported можно проверить, поддерживается ли продукт, а метод getSku() возвращает идентификатор продукта. Если нужно узнать стоимость продукта на основе локали устройства, то следует вызывать getSku(TYPE).price.

Метод isPurchased() проверяет, был ли продукт куплен пользователем. В случае с рекламой это будет означать, что её следует отключать.

Теперь нужно отправлять платёжные запросы сервису. Для этого в настройках приложения есть две кнопки "Удалить рекламу" и "Поддержать проект материально".

Обработка кнопки отключения рекламы выглядит следующим образом:

С помощью данного метода формируется запрос на покупку продукта, результат которого будет получен коллбеком.

Аналогичным образом формируется запрос на донат.

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

Как добавить In-app Billing в приложение : 6 комментариев

А физ. лицо может зарегистрировать Google Wallet? Или нужно ИП открывать?

Может, в этом плене Google очень демократичная компания. Выплаты начнутся по достижении порога в 100$

А как тестировать покупки? Я прописал в play console тестового пользователя и через него покупаю например рекламу. Деньги не списываются но покупка числиться у него в google play.
Но в классе InventoryCallback mPurchases = 0.
Как правильно тестировать?

Здравствуйте! К сожалению, насчёт тестирования не получится что-либо подсказать, попробуйте написать автору библиотеки на гитхабе.

Ссылка на основную публикацию
Что выбрать windows 7 или windows 10
Сегодня в нашем блоге «Чо?! Чо?!» я раскрою все преимущества и недостатки новой операционной системы для ноутбуков, сравнив ее с...
Хороший набор инструментов для автомобиля отзывы
Счастливым обладателям автомобилей необходимо иметь при себе инструменты, помогающие в чрезвычайной ситуации с машиной. Ежегодно выпускается большое количество разнообразных инструментов,...
Хонор похожий на айфон
Apple активно продвигает iPhone XS, но есть ли достойная альтернатива дорогому и в чём-то «сырому» устройству? Honor наносит ответный удар...
Что в китае дешевле чем в россии
Я экономлю тысячи рублей, покупая товары из Китая через интернет Сегодня я расскажу Вам о том, что выгодно покупать в...