2015-02-08 153 views
2

我正試圖添加購買到我的應用程序。但我不知道如何檢查購買是否已經購買。據我瞭解,當有人購買時,我需要將其存儲到UserDefaults或KeyChain中,然後檢查它是否已經存在(這意味着此購買已被購買)。但是,當用戶購買這個購買設備的時候,另一個設備呢?iOS應用購買。如何檢查購買是否已經購買?

我有代碼給我關於iTunes中所有購買的信息。

func productsRequest(request: SKProductsRequest!, didReceiveResponse response: SKProductsResponse!) { 

    } 

響應對象有兩個變量:「products」和「invalidProductIdentifiers」。但據我所知,產品包含來自iTunes的所有產品,而invalidProductIdentifiers包含我要求檢查的所有標識符,但Apple無法識別它們。所以,我可以檢查購買是否已經購買。

+3

你需要的是提供一個恢復按鈕。然後執行IAP恢復購買的產品,如下所示:https://developer.apple.com/library/ios/documentation/NetworkingInternet/Conceptual/StoreKitGuide/Chapters/Restoring.html – user523234 2015-02-08 14:48:12

+0

[完整的解決方案以完成本地驗證應用內收據和iOS 7收據捆綁](http://stackoverflow.com/questions/19943183/a-complete-solution-to-locally-validate-an-in-app-receipts-and-bundle-receipts- O) – CAMOBAP 2016-08-15 13:59:51

回答

1

假設iOS 7+,你應該驗證收據,ala A complete solution to LOCALLY validate an in-app receipts and bundle receipts on iOS 7以確定購買的東西,什麼是有效的(在訂閱或消費品的情況下),如其他評論所述,提供「恢復購買」UI元素,它允許用戶清晰地將可共享購買傳播到新近恢復/獲取的設備。

AFA響應對象,即目錄(可購買物品)信息,而不是已購買的信息。爲了使IAP正常工作,資產將被Apple認可,類似於應用程序本身,以及在iTunes Connect中處於您自己的「準備出售」控制之下。爲此,您向蘋果發送您想要提供的完整時間列表,然後Apple向您返回列表,分爲「如果您的用戶試圖購買此類產品,他們會成功」(產品)以及「如果您的用戶嘗試買這個,他們會失敗「(invalidProductIdentifiers)。

當您使用沙盒/ iTunes Connect測試用戶進行測試時,您的產品不需要Apple批准,但是需要生產代碼。