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ć?