Внутриигровые покупки
Ren'Py включает в себя высокоуровневый фреймворк для внутриигровых покупок. Этот фреймворк в настоящее время поддерживает только покупки типа «разблокировка» из Apple App Store, Google Play и Amazon Appstore.
Использование этого фреймворка довольно простое и сводится к следующим функциям.
На этапе init вашей игры зарегистрируйте доступные покупки с помощью функции
iap.register().После запуска игры проверьте, была ли совершена покупка, с помощью функции
iap.has_purchased().Позвольте пользователю приобрести товар с помощью функции
iap.purchase()или действияiap.Purchase().Позвольте пользователю восстановить покупки, приобретённые на других устройствах, с помощью функции
iap.restore()или действияiap.Restore().
Чтобы предлагать внутриигровые покупки, эти покупки (включая связанную с ними цену) должны быть настроены на различных торговых площадках.
Функции IAP
- iap.get_price(product)
Возвращает строку с ценой product в местной валюте пользователя. Возвращает None, если цена продукта неизвестна, что означает, что продукт нельзя приобрести.
- iap.get_store_name()
Возвращает название включённого магазина для внутриигровых покупок. В настоящее время возвращает одно из значений: "amazon", "play" (для Google Play), "ios" или None, если ни один магазин не доступен.
- iap.has_purchased(product)
Возвращает True, если пользователь уже покупал product в прошлом, и False в противном случае.
- iap.init()
Инициализирует iap. Эту функцию следует вызывать после всех вызовов iap.register(), но до вызова любой другой функции iap. Если не вызвана явно, она автоматически вызывается в конце фазы инициализации.
- 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. Если не указана, по умолчанию используется identifier.
Строка, идентифицирующая продукт в магазине Google Play. Если не указана, по умолчанию используется identifier.
- ios
Строка, идентифицирующая продукт в Apple App Store для iOS. Если не указана, по умолчанию используется identifier.
- consumable
True, если это потребляемая покупка. На данный момент потребляемые покупки поддерживаются только на iOS.
- iap.request_review()
При вызове магазину приложений отправляется запрос на получение отзыва от пользователя. Функция возвращает true, если запрос был успешным, и false, если нет. Обратите внимание, что успешный запрос не означает, что пользователю будет предложено оставить отзыв о приложении, так как магазины приложений сами определяют, будет ли пользователю действительно задан этот вопрос.
Эта функция поддерживается только в Google Play и Apple App Store.
- iap.restore(interact=True)
Связывается с магазином приложений и восстанавливает все недостающие покупки.
- interact
Если True, будет вызвана renpy.pause в ожидании ответа от магазина приложений.
Действия IAP
- iap.Purchase(product, success=None)
Действие, которое пытается совершить покупку product. Это действие активно (sensitive) тогда и только тогда, когда продукт доступен для покупки (включен магазин, и продукт ещё не был куплен).
- success
Если не None, это действие или список действий, которые выполняются при успешной покупке.
- iap.Restore()
Действие, которое связывается с магазином приложений и восстанавливает все недостающие покупки.