程序內購 link

Ren’Py中包含一個高級的程序內購框架。這個框架目前只支持解鎖型內購項目,支持的應用市場包括蘋果的AppStore、Google Play和亞馬遜AppStore。

使用這個框架相當簡單,只需要按照下列步驟使用幾個函數

提供的程序內購項目,購買內容(包括價格等)必須在對應的應用市場上進行設置。生成安卓版本時,Ren’Py會詢問配置哪個應用市場。

Apple App Store
蘋果AppStore基於打包名稱上架,不需要特殊配置。
Google Play
在使用Google Play之前,你必須在項目中添加一個Google Play金鑰(key)和一個鹽值(salt)。詳見 擴展APK 章節內容。
Amazon App Store
亞馬遜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.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.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)所有遺失的內購。