Schaltfläche "Wiederherstellen" für den In-App-Kauf mit iOS

Apple hat meine App leider abgelehnt, weil sie keine Wiederherstellungsschaltfläche hat. Ich wollte eine nahtlose Erfahrung für den Benutzer haben, aber es gibt einige Probleme.

- (void)purchaseProUpgrade
{ 
   [[SKPaymentQueue defaultQueue] addTransactionObserver:self];

   // User is prompted for iTunes username and password here (1)
   [[SKPaymentQueue defaultQueue] restoreCompletedTransactions];
}

// Then this delegate Function Will be fired
- (void) paymentQueueRestoreCompletedTransactionsFinished:(SKPaymentQueue *)queue
{
    if( queue.transactions.count == 0 ) {

        [self setUpgradeProductId];

       // User is prompted for iTunes username and password here (2)
        SKPayment *payment = [SKPayment paymentWithProductIdentifier:kInAppPurchaseProUpgradeProductId];
       [[SKPaymentQueue defaultQueue] addPayment:payment];                                                                 

    }else {

      [[NSNotificationCenter defaultCenter] postNotificationName:kInAppPurchaseManagerTransactionSucceededNotification object:self userInfo:NULL];
    }
  }

Ist das obige eine gute Lösung? Die Logik wäre:

Der Benutzer drückt die Taste, um den In-App-Kauf zu entfernen.Überprüfen Sie, ob der Benutzer bereits einen Kauf getätigt hat (Benutzer muss Benutzername und Passwort eingeben)Wenn der Benutzer bereits einen Kauf getätigt hat, stellen Sie ihn wieder herWenn der Benutzer noch keinen Kauf getätigt hat, werden Sie zur Zahlung aufgefordert (der Benutzer muss das Passwort erneut eingeben).

Die Probleme bei diesem Ansatz sind: 1. Ein zusätzlicher Serveraufruf 2. Der Benutzer muss die Details zweimal eingeben.

Hat jemand tatsächlich eine Wiederherstellungsschaltfläche implementiert, die er demonstrieren kann?

Antworten auf die Frage(4)

Ihre Antwort auf die Frage