Apple niestety odrzuciło moją aplikację, ponieważ nie ma przycisku przywracania. Chciałem mieć bezproblemowe doświadczenie dla użytkownika, ale są pewne problemy.Przycisk przywracania do zakupu nieobsługiwanych zasobów iOS w aplikacji:
- (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 rozwiązanie jest dobre? Logika byłaby następująca:
- Przycisk użytkownika służy do usuwania zakupów 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, przywracania
- Jeśli użytkownik nie dokonał już zakupu, poprosi o zapłatę (użytkownik musi ponownie wprowadzić hasło).
Problemy z tego podejścia są: 1. Dodatkowa wywołanie serwera 2. Użytkownik musi wprowadzić dane dwukrotnie.
Czy ktoś faktycznie zaimplementował przycisk przywracania, który może pokazać?
Dlaczego miałbyś przycisk, aby użytkownik mógł usunąć zakup w aplikacji? Odinstalowanie aplikacji spowoduje to. Jak zrobiłbyś krok nr 2 bez wymuszania nazwy użytkownika i hasła? – whatchamacallit
Skąd mam wiedzieć, czy wyświetlić przycisk przywracania? Oznacza to, że mój kod nie wie, czy już dokonali zakupu. Czy to prawda? –