2012-06-18 53 views
6

我正在嘗試在應用中購買應用。與從未付費的用戶恢復應用內購買

當我通過購買應用內購買的測試用戶恢復應用購買時,它一切正常。

但是當我嘗試在應用程序內購買與用戶誰沒有恢復的使得在應用程序內購買之前,我預計該框架調用下面的方法:

-paymentQueue:restoreCompletedTransactionsFailedWithError:

而是框架調用:

-paymentQueueRestoreCompletedTransactionsFinished:

像我的測試用戶已經購買了在應用程序內購買....

這是正常行爲嗎?如果是這樣,我如何測試用戶試圖恢復而不購買應用內購買?

回答

7

在這裏看到了答案: iOS in-app-purchase restore returns many transactions

你必須處理它在交易觀察者。

總之,你開始恢復過程:

[[SKPaymentQueue defaultQueue] addTransactionObserver:self]; 
[[SKPaymentQueue defaultQueue] restoreCompletedTransactions]; 

然後下面的事務觀察員被稱爲:

- (void)paymentQueueRestoreCompletedTransactionsFinished:(SKPaymentQueue *)queue 
{ 
    int thisIsTheTotalNumberOfPurchaseToBeRestored = queue.transactions.count; 

    for (SKPaymentTransaction *transaction in queue.transactions) 
    { 
     NSString *thisIsProductIDThatHasAlreadyBeenPurchased = transaction.payment.productIdentifier; 

     if([thisIsProductIDThatHasAlreadyBeenPurchased isEqualToString:product1ID]) 
     { 
      //Enable product1 here 
     } 
    } 
} 
1

試試MKStoreKit框架https://github.com/MugunthKumar/MKStoreKit 這是相當不錯的,維護良好的框架。我有幾個應用程序內購買的應用程序。從未有過這樣的問題。

+0

你可以發送鏈接。如何使用這個來源,因爲在Kumar博客上有複雜的描述如何使用它。有沒有其他方式如何將這些資源納入項目?但我知道這是最好的,我的許多朋友也使用它。 –

+0

不幸的是,沒有演示項目,因爲你必須在你的應用程序中設置一些東西。這需要幾個小時才能完成,但主要是想出如何設置應用程序購買應用程序。 github鏈接是您獲取信息的最佳來源。谷歌搜索顯示過時的博客文章。 – Tibidabo

0

@Tibidabo我不會推薦MKStoreKit因爲它在恢復大hole購買物品功能。

相關問題