2011-10-12 17 views
22

Nie bardzo rozumiem ten pomysł. Czy muszę podać przycisk przywracania dla użytkownika? Jaką metodę powinna wywołać ta metoda? Co będzie przywracać?Co oznacza "przywróć zakupy" w zakupach w aplikacji?

+3

Zasadniczo, jeśli usuniesz aplikację, przenieść się do nowego telefon, cokolwiek, twoje zakupy nie będą już dostępne na tym urządzeniu. Przywróć zakupy pyta iTunes o dostępne zakupy w aplikacji, za które zapłaciłeś. Powinieneś dostarczyć przycisk przywracania, nie jestem pewien, czy jest to wymagane, ale zdecydowanie sugerowane. Powinieneś przeczytać dokumenty na temat zakupów w aplikacji, aby uzyskać jaśniejszy pogląd, jaka część transakcji zakupu/przywracania jest Twoim obowiązkiem, a którą częścią jest Apple. –

+1

Nie jestem ekspertem od iPhone'ów, ale z doświadczenia w korzystaniu z niego, jeśli korzystasz z zakupów w aplikacji, ta metoda powinna przywrócić wszystko, co użytkownik kupił w aplikacji, oczywiście użyjesz identyfikatora/konta Apple do identyfikacji . –

Odpowiedz

29

Zazwyczaj przywrócić zakupów z tym kodem:

[[SKPaymentQueue defaultQueue] restoreCompletedTransactions]; 

Będzie reinvoke -paymentQueue:updatedTransactions na obserwatora (ów) za zakupione przedmioty. Jest to przydatne dla użytkowników, którzy ponownie instalują aplikację po usunięciu lub instalują ją na innym urządzeniu.

Nie wszystkie rodzaje zakupów w aplikacji można przywrócić.

+0

Czy nie ma czegoś podobnego do rebuy App? Czy nie sugeruje, że podobne "Kupiłeś, aby można było pobrać za darmo"? Nie miałem takiego doświadczenia. – Geri

+1

Nie musi to być realizowane przez programistę aplikacji, aby zapewnić to doświadczenie użytkownikowi, ale jest raczej proste (jedna linia kodu). – Felix

+0

Nie mogę przechwycić żadnych delegowanych metod, gdy użytkownik nie dokonał żadnych zakupów i przywrócił działanie. Store dostaje przetwarzanie, ale w takich przypadkach nie można wywoływać żadnych metod (tylko paymentQueueRestoreCompletedTransactionsFinished :, ale wywoływane jest także przy pomyślnym przywracaniu). Co teraz? Zadam ci pytanie. – Geri

2

Jest to opcjonalna funkcja.

Jeśli nie dostarczysz go, gdy użytkownik spróbuje kupić produkt, który nie jest zużywalny, AppStore przywróci poprzednią transakcję. Ale Twoja aplikacja pomyśli, że to nowa transakcja.

Jeśli udostępnisz mechanizm przywracania, menedżer zakupów zobaczy przywróconą transakcję.

Jeśli aplikacja powinna wyróżniać te opcje, należy zapewnić funkcjonalność przywracania wcześniej zakupionych produktów.

+0

czy to nie jest to, czym powinien zajmować się sklep z aplikacjami? –

+0

Obsługa AppStore to tak, jak jest powiedziane w moim poście. Są tylko różne typy transakcji, które zobaczy aplikacja. – Nekto

+0

Czy nie ma czegoś podobnego do rebuy App? Czy nie sugeruje, że podobne "Kupiłeś, aby można było pobrać za darmo"? Nie miałem takiego doświadczenia. – Geri

6

Otrzymasz wiadomość o odrzuceniu od Apple tylko dlatego, że produkt zarejestrowany do zakupu w aplikacji może znajdować się w kategorii Przedłużanie subskrypcji i materiałów eksploatacyjnych. Tego typu produkty nie będą automatycznie odnawiane. musisz mieć wyraźny przycisk przywracania w swojej aplikacji.

dla innego rodzaju produktów automatycznie go przywróci.

Proszę przeczytać poniższy tekst, który będzie wyczyścić pojęcie o tym:

Gdy transakcja została przetworzona i usuwane z kolejki, aplikacja normalnie nigdy nie widzi go ponownie. Jeśli jednak aplikacja obsługuje typy produktów, które muszą być przywracane, należy dołączyć interfejs , który umożliwia użytkownikom przywrócenie tych zakupów. Ten interfejs pozwala użytkownikowi dodać produkt do innych urządzeń lub, jeśli oryginalne urządzenie zostało wyczyszczone, aby przywrócić transakcję na oryginalnym urządzeniu.

Zestaw Store zapewnia wbudowaną funkcję przywracania transakcji dla produktów nieużywanych, subskrypcji automatycznie odnawiających się i subskrypcji z automatyczną subskrypcją, a także darmowe subskrypcje . Aby przywrócić transakcje, aplikacja wywołuje metodę restoreCompletedTransactions kolejki płatności . Kolejka płatności wysyła żądanie do sklepu App Store, aby przywrócić transakcje. Po powrocie z wersji , App Store generuje nową transakcję przywracania dla każdej transakcji , która została wcześniej zakończona. Właściwość originalTransaction obiektu do odtwarzania przywracająca kopię oryginalnej transakcji . Twoja aplikacja przetwarza transakcję przywracania przez pobieranie oryginalnej transakcji i używanie jej w celu odblokowania zakupionej zawartości . Gdy Store Store przywróci wszystkie poprzednie transakcje , powiadamia obserwatorów kolejki płatności, wywołując ich metodę płatności: payment2ueueRestoreCompletedTransactionsFinished: .

Jeśli użytkownik spróbuje zakupić produkt, który został naprawiony (zamiast zaimplementowany interfejs przywracania), aplikacja odbiera zwykłą transakcję dla tej pozycji, a nie transakcję przywracania. Użytkownik nie jest jednak ponownie obciążany za ten produkt. Twoja aplikacja powinna traktować te transakcje identycznie jak transakcje oryginalną. Przedsprzedaż subskrypcji i materiałów eksploatacyjnych nie są automatycznie przywracane przez Store Kit. Nieodnawialne subskrypcje muszą jednak być przywracane. Aby przywrócić te produkty, trzeba rejestrować transakcje na własnym serwerze, gdy są zakupić i dostarczyć swój własny mechanizm przywracania tych transakcji do urządzeń użytkownika

+0

Czy wiesz, co dzieje się ze scenariuszem, gdy przywracanie nie jest potrzebne, jak w poniższym przykładzie: Użytkownik może pobrać aplikację na swoje urządzenie i ta aplikacja może korzystać z wielu użytkowników, logując się przy użyciu różnych poświadczeń. Jeśli użytkownik Bill loguje się za pomocą swoich danych uwierzytelniających i kupuje aplikację, która jest kupowana tylko za jego poświadczenia. Jeśli ten ostatni Joe zaloguje się przy pomocy swoich referencji, powinien kupić go ponownie.Jeśli Bill zaloguje się na jakimkolwiek innym urządzeniu, powinien mieć możliwość korzystania z pełnej aplikacji. Funkcje aplikacji zależą od danych zwracanych przez serwer, a nie od innych zasobów. Dzięki! – zvjerka24

+0

@ zvjerka24 - tak, dokładnie tak samo, jak chcę w mojej aplikacji, a co muszę użyć IAP? –