Kiedy używać funkcji restoreCompletedTransactions do zakupów w aplikacji?

Czy w przypadku podstawowej aplikacji z nieobsługiwanymi zakupami w aplikacji ktoś opracował najlepsze praktyki dotyczące korzystania z SKPaymentQueue'srestoreCompletedTransactions?

Obserwacje

Wiem, że zaleca się, aby zawsze rejestrować obserwatora transakcji, aby odbierać oczekujące transakcje, które wracają do aplikacji, ale jest to inne pytanie. To wygląda jakrestoreCompletedTransactions jest czymś, co aplikacja musi aktywnie zdecydować, kiedy zadzwonić, aby sondować wszystkie zakupy, które klient już dokonał.

Z tego, co mogę powiedzieć, metoda ma na celu odzyskanie utraconych zakupów. Na przykład klient może zainstalować lub przenieść aplikację na nowe urządzenie w taki sposób, aby lokalne rekordy poprzednich płatności zostały utracone lub zresetowane.

Obawy

Nie jest dla mnie jasne, jak automatycznie wykryć ten warunek (tj. Jak zdecydować, kiedy odpytywać za brakujące zakupy) w niezawodny sposób. Nie chcę tego przekręcać i ryzykować odmówienia klientowi dostępu do funkcjonalności, za którą już zapłacili.

Jednocześnie nie chcę dzwonićrestoreCompletedTransactions za każdym razem aplikacja uruchamia się po to, aby być bezpiecznym i zasadniczo odzyskać transakcje, które znam już 99,9% czasu. (Z wyjątkiem zakupów w aplikacji, moja aplikacja tak naprawdę nie wymaga żadnej łączności sieciowej).

Uwagi

Dokumentacja Apple wyjaśnia, że ​​klienci nie ponoszą opłat za zakupy, które już nie zostały wykonane. Jeśli próbują dokonać ponownego zakupu, transakcja płatnicza jest nadal rzekomo wysyłana do aplikacji.

W najgorszym przypadku klient może odzyskać zakupy w ten sposób, ale nadal chciałbym uniknąć przechodzenia przez ścieżkę, która przypomina ponowne zakupienie czegoś, za co już zapłacili.

questionAnswers(3)

yourAnswerToTheQuestion