Botão Restaurar para compra no aplicativo não consumível do iOS
A Apple infelizmente rejeitou meu aplicativo por não ter um botão de restauração. Eu queria ter uma experiência perfeita para o usuário, mas há alguns 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];
}
}
A acima é uma boa solução? A lógica seria:
O usuário pressiona o botão para remover a compra no aplicativo.Verifique se o usuário já fez uma compra (o usuário tem que digitar o nome de usuário e senha)Se o usuário já fez uma compra, restaureSe o usuário ainda não fez uma compra, solicite o pagamento (o usuário deve digitar a senha novamente).Os problemas com essa abordagem são: 1. Uma chamada adicional do servidor 2. O usuário deve inserir detalhes duas vezes.
Alguém realmente implementou um botão Restaurar que possa demonstrar?