Ren'Py includes a high-level in-app purchasing framework. This framework currently only supports unlock-style purchases from the Apple App Store, Google Play, and the Amazon Appstore.
Using this framework is fairly simple, and consists of the following functions.
iap.register()
function.iap.has_purchased()
function.iap.purchase()
function
or the iap.Purchase()
action.iap.restore()
function or the iap.Restore()
action.To offer in-app purchases, the purchases (including an associated price) must be set up on the various marketplaces.
iap.
get_price
(product) linkReturns a string giving the price of the product in the user's local currency. Returns None if the price of the product is unknown - which indicates the product cannot be purchased.
iap.
get_store_name
() linkReturns the name of the enabled store for in-app purchase. This currently returns one of "amazon", "play" (for Google Play), "ios" or None if no store is available.
iap.
has_purchased
(product) linkReturns True if the user has purchased product in the past, and False otherwise.
iap.
init
() linkInitialize iap. This should be called after all calls to iap.register(), but before any other iap function. If not called explicitly, this is automatically called at the end of the initialization phase.
iap.
is_deferred
(product) linkReturns True if the user has asked to purchase product, but that request has to be approved by a third party, such as a parent or guardian.
iap.
purchase
(product, interact=True) linkThis function requests the purchase of product.
It returns true if the purchase succeeds, or false if the purchase fails. If the product has been registered as consumable, the purchase is consumed before this call returns.
iap.
register
(product, identifier=None, amazon=None, google=None, ios=None, consumable=False) linkRegisters a product with the in-app purchase system.
iap.purchase()
, iap.Purchase()
,
and iap.has_purchased()
to represent this product.A string that's used to identify the product internally. Once used to represent a product, this must never change. These strings are generally of the form "com.domain.game.product".
If None, defaults to product.
iap.
restore
(interact=True) linkContacts the app store and restores any missing purchases.
iap.
Purchase
(product, success=None) linkAn action that attempts the purchase of product. This action is sensitive if and only if the product is purchasable (a store is enabled, and the product has not already been purchased.)
iap.
Restore
() linkAn Action that contacts the app store and restores any missing purchases.