StoreKit: Catch fehlgeschlagene Wiederherstellung?

8

Ich implementiere die In-App-Kauffunktion mit der Schaltfläche Wiederherstellen .

Ich habe einen brandneuen Testbenutzer eingerichtet, ohne irgendwelche Zahlungen gemacht zu haben.

Wenn ich auf die Wiederherstellungsschaltfläche klicke und mich mit dem neuen Testbenutzer anmelde, kann ich keine delegierten Methoden abfangen, die mir sagen, dass die wiederherstellende Transaktion fehlgeschlagen ist (da nichts wiederhergestellt werden muss).

Die einzige Methode, die aufgerufen wird, ist -(void)paymentQueueRestoreCompletedTransactionsFinished:(SKPaymentQueue*)queue , aber diese Methode wird aufgerufen, wenn das Wiederherstellen ebenfalls erfolgreich war.

Was kann ich jetzt tun? Wie kann ich einen solchen Fall bekommen?

Zusatz: Ich habe eine Fortschrittsanzeige, die besagt "Kontaktaufnahme mit App Store", und ich brauche einen Aufruf, wo ich es auch in fehlgeschlagenen Fällen verstecken kann.

    
Geri 13.10.2011, 13:33
quelle

3 Antworten

6

Noah: Hier ist ein Code-Snippet für Sie:

%Vor%

Und die folgende Methode:

%Vor%

Lass es mich wissen, wenn dir das hilft ....

    
Joris Weimar 11.01.2013 14:47
quelle
1

Wenn Sie Transaktionen wiederherstellen, gibt es zwei delegierte Methoden:

%Vor%

Der erste ( paymentQueueRestoreCompletedTransactionsFinished ) wird aufgerufen, wenn alle Transaktionen wiederhergestellt sind. Wenn Sie keinen vorherigen Kauf haben, ruft es auch diese Methode auf, weil das Wiederhergestellte gut funktionierte, aber nichts wiederhergestellt werden kann.

Die andere Methode ( restoreCompletedTransactionsFailedWithError ) wird aufgerufen, wenn beim Wiederherstellen der Transaktion ein Fehler auftritt.

Wenn Sie dem Benutzer eine Nachricht zeigen müssen, dass er keine Transaktion zum Wiederherstellen hat, können Sie Folgendes verwenden:

%Vor%

Hier haben Sie ein kleines Snippet für diesen Delegierten:

%Vor%

Anschließend können Sie mithilfe der restoredTransaction -Variable feststellen, ob eine Transaktion auf paymentQueueRestoreCompletedTransactionsFinished

wiederhergestellt wurde     
ventayol 09.01.2013 07:38
quelle
0

Sie können die folgende Delegate-Methode für die Wiederherstellungstransaktion verwenden.

%Vor%     
ChandreshKanetiya 10.01.2013 07:49
quelle