Przywróć przycisk do zakupu iOS niezwiązanego z aplikacją

Apple niestety odrzuciło moją aplikację za brak przycisku przywracania. Chciałem mieć płynne doświadczenie dla użytkownika, ale są pewne problemy.

- (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];
    }
  }

Czy powyższe jest dobrym rozwiązaniem? Logika brzmi:

Naciśnięcie przycisku użytkownika, aby usunąć zakup w aplikacji.Sprawdź, czy użytkownik dokonał już zakupu (użytkownik musi wprowadzić nazwę użytkownika i hasło)Jeśli użytkownik dokonał już zakupu, przywróćJeśli użytkownik nie dokonał jeszcze zakupu, należy poprosić o płatność (użytkownik musi ponownie wprowadzić hasło).

Problemy z tym podejściem to: 1. Dodatkowe wywołanie serwera 2. Użytkownik musi wprowadzić dane dwukrotnie.

Czy ktoś rzeczywiście wdrożył przycisk Przywróć, który może wykazać?

questionAnswers(4)

yourAnswerToTheQuestion