Apple ha purtroppo rifiutato la mia app per non avere un pulsante di ripristino. Volevo avere un'esperienza perfetta per l'utente ma ci sono alcuni problemi.Pulsante di ripristino per acquisto in-app iOS non consumabile
- (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];
}
}
È una buona soluzione? La logica sarebbe:
- L'utente preme il pulsante per rimuovere l'acquisto in-app.
- Verificare se l'utente ha già effettuato un acquisto (l'utente deve inserire nome utente e password)
- Se l'utente ha già effettuato un acquisto, il ripristino
- Se l'utente non ha già fatto un acquisto, richiede per il pagamento (user deve inserire nuovamente la password).
I problemi con questo approccio sono: 1. Una chiamata server aggiuntivo 2. L'utente deve inserire i dati due volte.
Qualcuno ha effettivamente implementato un pulsante Ripristina che può dimostrare?
Perché dovresti disporre di un pulsante per l'utente per rimuovere un acquisto in-app? Una disinstallazione dell'app lo farà. Come faresti il tuo passo # 2 senza forzare un nome utente e una password? – whatchamacallit
Come faccio a sapere se visualizzare o meno il pulsante di ripristino? Cioè, il mio codice non sa se hanno già effettuato un acquisto. O lo fa? –