程序内购 link

Ren’Py中包含一个高级的程序内购框架。这个框架目前只支持解锁型内购项目,支持的应用市场包括苹果的AppStore、Google Play和亚马逊AppStore。

使用这个框架相当简单,只需要按照下列步骤使用几个函数

提供的程序内购项目,购买内容(包括价格等)必须在对应的应用市场上进行设置。

IAP函数 link

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.init() link

初始化iap。应该在完成所有 iap.register() 的调用后,其他iap函数的调用之前,调用该函数。 如果没有显式调用,则会在初始化阶段的结尾自动调用。

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

使用程序内购系统注册一个商品。

product

一个字符串,表示商品的高级(high-level)名称。这个字符串也会传入 iap.purchase()iap.Purchase()iap.has_purchased() 函数,表示对应的商品。

identifier

一个字符串,用于商品的内部标识。一旦用于表示某个商品,就不能再修改。这些字符串的格式类似于“com.domain.game.product”。

如果为None,默认值为 product

amazon

一个字符串,表示亚马逊AppStore的商品标识号。如果没有给定,默认值为 identifier

google

一个字符串,表示Google Play商店的商品标识号。如果没有给定,默认值为 identifier

ios

一个字符串,表示苹果iOS版AppStore的商品标识号。如果没有给定,默认值为 identifier

consumable

如果是消耗品内购则返回True。到目前为止,只有iOS平台支持消耗品内购。

iap.request_review() link

调用该函数后,应用商店会让用户给该应用评分。 如果评分请求成功返回True,否则返回False。 注意,评分请求成功不等于用户给app评分。app商店会决定最终结果。

目前只支持Google Play和苹果App Store。

iap.restore(interact=True) link

连接应用商店,并恢复(restore)所有丢失的内购。

interact

若为True,调用renpy.pause等待应用商店的响应。

IAP 行为 link

iap.Purchase(product, success=None) link

这个行为尝试购买 product。仅当 product 是可购买状态时(启用了应用商店并且没有购买过这个产品),这个行为才是可用的。

success

若非None,这是一个行为或者行为列表,当内购成功后执行这些行为。

iap.Restore() link

一个行为,连接应用商店并恢复(restore)所有丢失的内购。