Ren’Py中包含一个高级的程序内购框架。这个框架目前只支持解锁型内购项目,支持的应用市场包括苹果的AppStore、Google Play和亚马逊AppStore。
使用这个框架相当简单,只需要按照下列步骤使用几个函数
iap.register() 函数注册内购项目。iap.has_purchased() 函数检查是否有购买过的内购项目。iap.purchase() 函数或 iap.Purchase() 行为(action)允许用户购买某个道具。iap.restore() 函数或 iap.Restore() 行为(action)允许用户同步在其他设备上购买的内容。提供的程序内购项目,购买内容(包括价格等)必须在对应的应用市场上进行设置。生成安卓版本时,Ren’Py会询问配置哪个应用市场。
iap.get_price(product) link返回一个字符串,表示用户本地货币的 product 价格。如果价格未知则返回None——这也表示 product 不能购买。
iap.get_store_name() link返回程序内购启用的商店名称。目前返回的结果可能是下列情况之一:“amazon”表示亚马逊AppStore,“play”表示Google Play,“ios”表示苹果AppStore,None表示没有可用的商店。
iap.has_purchased(product) link如果用户已经买过 product 就返回True,否则返回False。
iap.is_deferred(product) link当用户需要购买 product 时返回True。不过这个请求必须被第三方认证,比如家长或监护人。
iap.purchase(product, interact=True) link这个函数请求购买 product 。
如果购买成功就返回True,如果购买失败就返回False。如果 product 注册为消耗品,在调用返回前内购产品就会被使用。
iap.register(product, identifier=None, amazon=None, google=None, ios=None, consumable=False) link使用程序内购系统注册一个商品。
iap.purchase() 、 iap.Purchase() 和 iap.has_purchased() 函数,表示对应的商品。一个字符串,用于商品的内部标识。一旦用于表示某个商品,就不能再修改。这些字符串的格式类似于“com.domain.game.product”。
如果为None,默认值为 product 。
iap.restore(interact=True) link连接应用商店,并恢复(restore)所有丢失的内购。