Botón de restauración para iOS no consumible en la compra de la aplicación

Desafortunadamente, Apple ha rechazado mi aplicación por no tener un botón de restauración. Quería tener una experiencia perfecta para el usuario, pero hay algunos problemas.

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

¿Lo anterior es una buena solución? La lógica sería:

El usuario presiona el botón para eliminar la compra en la aplicación.Compruebe si el usuario ya ha realizado una compra (el usuario debe ingresar el nombre de usuario y la contraseña)Si el usuario ya ha realizado una compra, restaurarSi el usuario aún no ha realizado una compra, solicite el pago (el usuario debe ingresar la contraseña nuevamente).

Los problemas con este enfoque son: 1. Una llamada al servidor adicional 2. El usuario debe ingresar los detalles dos veces.

¿Alguien ha implementado realmente un botón Restaurar que pueda demostrar?

Respuestas a la pregunta(4)

Su respuesta a la pregunta