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.
[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.
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.
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.
Tags und Links objective-c in-app-purchase restore