2012-04-12 6 views
14

Ich habe Probleme beim Wiederherstellen abgeschlossener Transaktionen.Obj-C, Storekit restoreCompletedTransactions gibt null Transaktionen zurück?

[[SKPaymentQueue defaultQueue] restoreCompletedTransactions]; 

Ich habe den Beobachter in mehreren Beispielen erwähnt hinzugefügt, habe ich versucht, paymentQueueRestoreCompletedTransactionsFinished hinzufügen und schon updatedTransactions haben. paymentQueueRestoreCompletedTransactionsFinished sagt, ich habe null Transaktionen.

Ich kann ein Produkt kaufen und wenn ich versuche, wieder zu kaufen, stoppt es mich und sagt, dass ich das Produkt bereits gekauft habe, diesen Code verwendend.

SKPayment *payment = [SKPayment paymentWithProductIdentifier:productIdentifier]; 
[[SKPaymentQueue defaultQueue] addPayment:payment]; 

Ich dachte, vielleicht ein Problem mit meinem Bündel Kennung ich hatte, aber das scheint in Ordnung und das kaufen würde nicht funktionieren, wenn es nicht ist.

Ich habe dies auf dem Gerät sowie den Simulator versucht, aber das hat das gleiche Ergebnis. Es macht auch keinen Unterschied, ob ich in Großbritannien oder in den USA store.

Ich fange wirklich an Strohhalmen um herauszufinden, warum das für mich nicht funktioniert?

Antwort

8

versuchen, es so zu tun und überprüfen Sie die Array-Anzahl ist es Null zurück?

- (void) checkPurchasedItems 
{ 
    [[SKPaymentQueue defaultQueue] restoreCompletedTransactions]; 
}//You Call This Function 

//Then this delegate Function Will be fired 
- (void) paymentQueueRestoreCompletedTransactionsFinished:(SKPaymentQueue *)queue 
{ 
    purchasedItemIDs = [[NSMutableArray alloc] init]; 

    NSLog(@"received restored transactions: %i", queue.transactions.count); 
    for (SKPaymentTransaction *transaction in queue.transactions) 
    { 
     NSString *productID = transaction.payment.productIdentifier; 
     [purchasedItemIDs addObject:productID]; 
    } 
} 
+1

Ja, ich überprüfe das, das gibt mir null – Jules

+0

ok wo fügst du den trunsactionObserver hinzu? –

+1

In viewdidload. – Jules

1

Nach dem docs:

Wenn Sie ein neues Produkt zu erstellen in Ihrem Geschäft verkauft werden, wählen Sie, ob das Produkt wieder hergestellt werden kann oder nicht.

Die Frage ist also, ist Ihr Produkt für Wiederherstellungen konfiguriert?

+1

danke, aber ich kann das nirgendwo sehen, es ist kein Verbrauchsmaterial? – Jules

+0

Ich denke, keine Verbrauchsartikel impliziert, dass Sie können, also ja. – Jules