Сервис покупки виртуальных товаров внутри приложения (In-App Purchasing)

Материал из Ren'Py Wiki
Перейти к навигации Перейти к поиску

Ren'Py включает встроенную платформу для покупок в приложении. В настоящее время эта платформа поддерживает покупки только в Apple App Store, Google Play и Amazon Appstore.

Использовать этот фреймворк довольно легко. Он состоит из следующих функций:

  • На этапе инициализации вашей игры зарегистрируйте доступные покупки с помощью функции iap.register().
  • После запуска игры проверьте, была ли осуществлена покупка, с помощью функции iap.has_purchased().
  • Разрешите пользователю приобретать товар с помощью функции iap.purchase() или действия iap.Purchase().
  • Разрешите пользователю восстанавливать покупки, совершенные на других устройствах, с помощью функции iap.restore() или действия iap.Restore().


Чтобы предлагать покупки в приложении, покупки (включая связанную цену) должны быть созданы на различных торговых площадках. При сборке для Android, Ren'Py спросит об используемой торговой площадке при настройке пакета.


Apple App Store
Apple App Store основан на имени пакета и не требует специальной настройки.
Google Play
Прежде чем использовать Google Play, вы должны добавить ключ Google Play и соль (также модификатор) в ваш проект. Для получения информации о том, как это сделать, смотри раздел «APK-архивы приложений из Google Play».
Amazon Appstore
Amazon Appstore основан на имени пакета и не требует специальной настройки.

Функции IAP (IAP Functions)[править | править код]

iap.get_price(product)
Возвращает строку, в которой указана цена product в местной валюте пользователя. Возвращает значение None, если цена продукта неизвестна, что означает, что продукт не может быть приобретён.


iap.get_store_name()
Возвращает имя включенного магазина для покупки в приложении. В настоящее время возвращается значение «amazon», «play» (для Google Play), «ios» или «None», если магазин недоступен.


iap.has_purchased(product)
Возвращает значение True, если пользователь ранее приобрёл product, иначе значение False.


iap.is_deferred(product)
Возвращает значение True, если пользователь запросил покупку product, но этот запрос должен быть одобрен третьей стороной, такой как родитель или опекун.


iap.purchase(product, interact=True)
Эта функция запрашивает покупку product.
Возвращает значение True, если покупка прошла успешно, или значение False, если покупка не удалась. Если продукт зарегистрирован как расходный материал, покупка потребляется до возврата этого вызова.


iap.register(product, identifier=None, amazon=None, google=None, ios=None, consumable=False)
Регистрация продукта в системе покупок внутри приложения.
product
Строка, содержащая встроенное название продукта. Это строка, которая будет передана в iap.purchase(), iap.Purchase() и iap.has_purchased() для представления этого продукта.
identifier
Строка, используемая для внутренней идентификации продукта. После использования для представления продукта, она никогда не должна меняться. Эти строки обычно имеют форму "com.domain.game.product".
Если принимает значение None, значение по умолчанию для product.
amazon
Строка, идентифицирующая продукт в магазине Amazon Appstore. Если принимает значение None, значение по умолчанию для identifier.
google
Строка, идентифицирующая продукт в магазине Google Play. Если принимает значение None, значение по умолчанию для identifier.
ios
Строка, идентифицирующая продукт в магазине Apple App для iOS. Если принимает значение None, значение по умолчанию для identifier.
consumable
Принимает значение True, если это покупка расходных материалов. В настоящее время покупки расходных материалов поддерживаются только на iOS.


iap.restore(interact=True)
Связывается с магазином приложений и восстанавливает любые недостающие покупки.
interact
Если принимает значение True, renpy.pause будет вызываться во время ожидания ответа от магазина приложений.

Действия IAP (IAP Actions)[править | править код]

iap.Purchase(product, success=None)
Действие, которое пытается приобрести товар. Это действие возникает тогда и только тогда, когда продукт можно приобрести (магазин включён, а продукт ещё не куплен).
success
Если принимает значение не None, то это действие или список действий, которые запускаются при успешной покупке.


iap.Restore()

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

Источник[править | править код]

Статья "In-App Purchasing" на английском языке.


На главную страницу Официальная документация движка Вернуться к началу статьи