Überprüfen Sie, ob der Benutzer SKPaymentTransaction storniert hat

8

Wie kann ich überprüfen, ob der Benutzer auf Abbrechen geklickt hat (entweder als er gefragt wurde, ob er eine SMS kaufen möchte oder ob er dieses SKProdukt bereits gekauft hat, ob er es herunterladen möchte)?

Im Moment erhalte ich SKPAymentTransactionStateFailed in paymentQueue: updatedTransactions: Methode sowohl nachdem der Benutzer auf die Schaltfläche Abbrechen geklickt hat, als auch wenn es kein Internet gibt. Irgendeine Möglichkeit, diese beiden Fälle zu unterscheiden?

    
dariaa 26.11.2012, 18:32
quelle

6 Antworten

0

Überprüfen Sie die SKPAymentTransaction-Fehlereigenschaft, die festgelegt ist. Darüber hinaus möchten Sie möglicherweise die Erreichbarkeitsklasse von Apple verwenden, um festzustellen, ob Internet verfügbar ist, bevor die Transaktion eingeleitet wird.

Fehler Ein Objekt, das den Fehler beschreibt, der bei der Verarbeitung der Transaktion aufgetreten ist. (schreibgeschützt)

@property (nicht atomar, schreibgeschützt) NSError * error Diskussion Die Eigenschaft error ist nicht definiert, außer wenn transactionState auf SKPaymentTransactionStateFailed gesetzt ist. Ihre Anwendung kann die Fehlereigenschaft lesen, um festzustellen, warum die Transaktion fehlgeschlagen ist.

Verfügbarkeit Verfügbar in iOS 3.0 und höher. Deklariert in SKPaymentTransaction.h

    
Jonathan Zdziarski 26.11.2012, 18:49
quelle
15

Dieser Code funktioniert für mich:

%Vor%     
Ellen S 08.03.2013 15:14
quelle
9

Ellens Antwort ist perfekt. Für den Fall, dass sich jemand über die anderen Fälle Gedanken macht.

%Vor%     
Oscar 08.01.2015 15:09
quelle
4

Hier ist der Code von Swift 3.0:

%Vor%     
Jad 30.11.2016 14:36
quelle
1

Vielleicht benutzen Sie Ray Wunderlichs Tutorial Code für den App-Kauf. Dort sagt der Code:

%Vor%

Dort können Sie sehen, dass addTransactionObserver nur aufgerufen wird, wenn das Produkt bereits gekauft wurde. Wenn Sie diese Codezeile vor die if-Abfrage verschieben, erhalten Sie das gewünschte Ergebnis.

%Vor%

In der Methode failedTransaction können Sie jetzt

aufrufen %Vor%

Jetzt können Sie den Nullwert überprüfen, der von der Benachrichtigung in Ihrer aktuellen Ansicht gesendet wurde

    
Peter Lakatos 21.01.2013 13:41
quelle
1

Swift 2.2

Wenn Sie eine .Failed -Antwort in paymentQueue erhalten, wäre es eine gute Idee, alle möglichen Fehler zu behandeln.

%Vor%     
skymook 08.10.2016 14:13
quelle

Tags und Links