Ein (ehrlicher) Benutzer hat mir gerade mitgeteilt, dass es möglich ist, den In-App-Kauf meiner App durch einfaches Drücken der RESTORE-Taste zu "kaufen". App-Kauf wurde nicht gekauft. Dies ist der Code Ich verwende (dass ich dachte, es war ausreichend ... aber ich war falsch):Wiederherstellen von In-App-Käufen Fehler: Wiederherstellen, auch wenn nicht gekauft
- (IBAction) restore {
[[SKPaymentQueue defaultQueue] addTransactionObserver:self];
[[SKPaymentQueue defaultQueue] restoreCompletedTransactions];
}
- (void) paymentQueue:(SKPaymentQueue *)queue updatedTransactions:(NSArray *) transactions {
for (SKPaymentTransaction *transaction in transactions) {
switch(transaction.transactionState){
case SKPaymentTransactionStatePurchasing:
NSLog(@"Transaction state -> Purchasing ...");
break;
case SKPaymentTransactionStatePurchased:
NSLog(@"Transaction state -> Purchased");
[self activatePurchase];
[[SKPaymentQueue defaultQueue] finishTransaction:transaction];
break;
case SKPaymentTransactionStateRestored:
NSLog(@"Transaction state -> Restored");
[[SKPaymentQueue defaultQueue] finishTransaction:transaction];
break;
case SKPaymentTransactionStateFailed:
NSLog(@"Transaction state -> Cancelled");
if(transaction.error.code == SKErrorPaymentCancelled) {
//the user cancelled the payment ;(
}
[[SKPaymentQueue defaultQueue] finishTransaction:transaction];
break;
case SKPaymentTransactionStateDeferred:
NSLog(@"Transaction state -> Deferred");
break;
}
}
}
- (void) paymentQueueRestoreCompletedTransactionsFinished:(SKPaymentQueue *)queue {
[self activatePurchase];
}
Gibt es etwas, was ich vermisst habe?
mit 'if (SKPaymentQueue.canMakePayments()) { SKPaymentQueue.defaultQueue() restoreCompletedTransactions() .}' Arbeitete für mich – WMios