在提交應用程序審核時,為了驗證開發者都已經實現要求的每個步驟。保證開發者實現如下所有內購行為(如下步驟都是順序列出來的):
在iTunes Connect 中,創建和配置產品。在用代碼能測試前,在蘋果后臺至少配置一個產品。
在應用程序的文件中或者在應用的服務器中,得到產品id 列表,用SKProductsRequest 對象將其列表發送給蘋果商店。
用蘋果商店返回的 SKProduct 對象,將產品列表在應用程序中展示。在開發階段,用簡單的界面展示產品列表,如用表格和一些按鍵去展示產品列表。實現最終用戶界面,應用程序商店在開發過程時。
用戶請求支付是用 SKPaymentQueue 的 addPayment: 方法將 SKPayment 對象 添加在交易隊列中。實現 SKPaymentTransactionObserver 協議中的其他方法,去監聽支付的行為。
通過對購買的收據持久化來得到已經購買的產品和下載相關的購買收據,最后調用SKPaymentQueue 中finishTransaction: 方法。在開發階段,可以執行簡單的版本的代碼,如簡單的在屏幕展示“已購買的產品”。而在要上架的版本,則需要實現前面的動作。
提供界面用于恢復購買,檢索過去購買使用SKReceiptRefreshRequest 類或恢復完成購買使用 SKPaymentQueue類 restoreCompletedTransactions 方法。讓用戶重新下載內容。
如果使用 Apple-hosted 內容,恢復完成交易和使用事務的屬性得到 SKDownload 對象。如果購買收據是存放在應用程序的服務器,請向應用程序的服務器中拿到購買信息。若應用是用自動訂閱和非自動訂閱,請確認是否已經實現如下訂閱邏輯。
A、通過提供最近發表的內容來提供內購訂閱,如最新一期的雜志。
B、當新的內容推出時,就能用戶去使用。
C、當訂閱時間過期,可以讓用戶重新進行訂閱。
D、若應用是自動訂閱,請讓蘋果商店處理上面的訂閱動作,不用嘗試用手動處理。若應用是非自動訂閱,應用要做如下的操作。
A、若訂閱已經過期,請停止讓用戶用新的內容,
B、請更新應用的界面讓用戶重新選擇內購,并激活內購
C、當訂閱的內容已經更新,請實現應用程序去追蹤,恢復購買時使用此系統給用戶訪問已訂閱內容,基于訂閱活躍期。簡而言之,非自動訂閱信息蘋果不會幫助應用程序去記錄,需要應用程序去記錄。
以上內容 ,是翻譯自蘋果官方文檔,有不足之處,請糾正,感謝!