2 Stimmen

finishTransaction: entfernt die Transaktion nicht aus der Warteschlange...

Ich habe mehrere nicht-konsumierbare inApps.

Die Zahlung wird einmal durchgeführt (korrekt: SKPaymentTransactionStatePurchased), dann wird der Download der inApp korrekt durchgeführt (und beendet) und zum Schluss rufe ich

[[SKPaymentQueue defaultQueue] finishTransaction:transaction];

Die Transaktionen verbleiben jedoch in der Warteschlange... warum? Sollten sie nicht entfernt werden? Auch das Folgende wird nicht aufgerufen:

- (void)paymentQueue:(SKPaymentQueue *)queue removedTransactions:(NSArray *)transactions

Ich habe auch versucht, in meine Methode finishtransaction zu implementieren:

for (SKPaymentTransaction *aTransaction in [[SKPaymentQueue defaultQueue] transactions])
{
    [[SKPaymentQueue defaultQueue] finishTransaction:aTransaction];
}

(für den Fall, dass das Transaktionsobjekt, das ich versucht habe zu beenden, nicht das richtige war, aber dies schlägt auch fehl, die Transaktionen zu entfernen - nun, die meisten der Zeit, manchmal entfernt es, aber das Verhalten ist inkonsistent, ich kann nicht herausfinden, warum sie entfernt werden, die wenigen Male, die sie tatsächlich entfernt werden)

4voto

Mugunth Punkte 14391

Aus Ihrer Frage geht hervor, dass Sie versuchen, etwas herunterzuladen, wenn der Kauf abgeschlossen ist. In diesem Fall sollten Sie wahrscheinlich finishTransaction aufrufen, bevor der Download beginnt.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X