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)所有遺失的內購。