Desafortunadamente, Apple ha rechazado mi aplicación por no tener un botón restaurar. Quería tener una experiencia perfecta para el usuario, pero hay algunos problemas.Botón Restaurar para iOS no consumible en la compra en la aplicación
- (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];
}
}
¿Es lo de arriba una buena solución? La lógica sería:
- El usuario presiona el botón para eliminar la compra en la aplicación.
- Comprobar si el usuario ya ha realizado una compra (usuario tiene que introducir nombre de usuario y contraseña)
- Si el usuario ya ha realizado una compra, restaurar
- Si el usuario no lo ha hecho una compra, pronta para el pago (usuario tiene que ingresar la contraseña nuevamente).
Los problemas con este enfoque son: 1. Una llamada servidor adicional 2. El usuario tiene que introducir los detalles de dos veces.
¿Alguien ha implementado realmente un botón Restaurar que puedan demostrar?
¿Por qué tiene un botón para que el usuario elimine una compra en la aplicación? Una desinstalación de la aplicación hará eso. ¿Cómo harías tu paso número 2 sin forzar un nombre de usuario y contraseña? – whatchamacallit
¿Cómo sé si mostrar o no el botón restaurar? Es decir, mi código no sabe si ya hicieron una compra o no. O lo hace? –