SKPaymentTransactionStateRestored wird nicht aufgerufen, wenn In App-Kauf wiederhergestellt wird

8

Bei meinem In-App-Kauf wird die case SKPaymentTransactionStateRestored: -Methode nicht aufgerufen, wenn der Kauf wiederhergestellt wird, stattdessen wird case SKPaymentTransactionStatePurchased: aufgerufen, möchte aber dem Benutzer verschiedene Informationen anzeigen, wenn der Kauf wiederhergestellt wird.

    
JonasG 24.07.2011, 12:22
quelle

4 Antworten

3

[Warteschlange restoreCompletedTransactions] löst den Status SKPaymentTransactionStateRestored aus, wobei die Warteschlange SKPaymentQueue ist. Sie sollten nicht erwarten, dass dies aufgerufen wird, nachdem Ihr Benutzer Transaktionen bestätigt hat. Stattdessen wird der Benutzer vom Gerät gewarnt, wenn er das Produkt bereits gekauft hat.

    
Bora 17.10.2011 14:51
quelle
0

Ich habe eine Ahnung. Die Methode (paymentqueue: updatedTransactions :) und speziell der SKPaymentTransactionStateRestored: state wird aufgerufen, wenn ich einen SKProductRequest erzeuge und beginne, ihn zu laden.

%Vor%

Ich werde auf Apples Lösung schauen und sehen, ob ich irgendwelche Unterschiede finden kann.

    
NicTesla 23.09.2011 07:33
quelle
0

Sie können paymentQueueRestoreCompletedTransactionsFinished implementieren: um festzustellen, ob eine Wiederherstellung abgeschlossen wurde:

Ссылка

    
robodo 05.07.2012 13:18
quelle
0

Falls es noch nicht gelöst ist, könntest du es mit einem logischen Trick tun. Wenn die Wiederherstellung ausgelöst wird, denken Sie daran mit einem booleschen Flag (oder einem Enum-Status, wenn Sie dies bevorzugen) und zeigen Sie eine andere Nachricht an, wenn SKPAymentTransactionStatePurchased ausgelöst wird. Sie könnten die beiden Delegate-Methoden implementieren

%Vor%

und

%Vor%

um herauszufinden, wann die Wiederherstellung beendet wurde. Um in diesem Fall sicher zu sein, darf der Benutzer während der Wiederherstellung keine Einkäufe tätigen. Sie könnten dem Benutzer so etwas wie dies zeigen, also der Benutzer sieht, dass gerade etwas passiert.

Das habe ich gemacht und es funktioniert für mich.

    
NicTesla 26.04.2013 06:40
quelle