2011-04-06 10 views
7

W mojej aplikacji wdrażam subskrypcje z funkcją automatycznego odnawiania i zastanawiam się, czy istnieje sposób na symulację, kiedy kończy się okres subskrypcji i tworzona jest nowa transakcja.Jak testować subskrypcje odnawialne (App Store)

Aplikacja jest połączona z usługą online, która zawsze śledzi użytkowników i ma "dostęp premium" lub nie. Jak rozumiem, istnieją dwa sposoby wykrywania transakcji.

  1. aplikacja jest uruchomiona i updatedTransactions: nazywa w moim PaymentObserver jako SKPaymentTransactionStateRestored. Następnie z aplikacji wysyłam tę informację do serwera, który aktualizuje subskrypcję.

  2. Regularnie sprawdzam interfejs API App Store i porównuję "najnowszy rachunek" z tym w mojej bazie danych. Jeśli jest nowy, dokonano transakcji i przedłużam subskrypcję.

Tak czy inaczej, muszę zasymulować, że skończy się okres subskrypcji i nowa transakcja jest dokonywana przez App Store. Jak mam to zrobic?

Odpowiedz

2

Czy na pewno chcesz zasymulować to? Wydaje mi się, że w piaskownicy długość subskrypcji jest bardzo krótka, więc wszystko, co musisz zrobić, to dostać filiżankę kawy lub coś, co wygaśnie, a następnie możesz sprawdzić, co się stanie.

ilość czasu różni się w zależności od długości subskrypcji, ale myślę, że 7-dniowa subskrypcja wygasa w ciągu zaledwie kilku minut w piaskownicy.

+0

Ah, nie zauważyłem tego, dzięki! – oskob

+0

prawo, 7-dniowa subskrypcja ostatnia * 3 minuty * w piaskownicy env. – yonel

+2

Jedno zastrzeżenie: subskrypcje zostaną automatycznie odnowione tylko 5 razy. Następnie, po zakupie, nie będą już automatycznie odnawiać. Musisz stworzyć nowego użytkownika testowego, aby to zrobić! – Jarson

3

Środowisko sandbox automatycznie symuluje odnowienie subskrypcji. Roczne subskrypcje będą odnawiane co godzinę. Miesięczne subskrypcje wydają się odnawiać co 5-6 minut.

Każda subskrypcja wydaje się odnawiać 5x. W tym momencie subskrypcja zostanie anulowana. Każde odnowienie wywołuje przywróconą transakcję wysłaną do aplikacji klienckiej.

Wszystko opiera się na moim doświadczeniu. Nie mogę znaleźć żadnej oficjalnej dokumentacji od Apple.

+2

Wszystko to jest udokumentowane tutaj (wymagane jest logowanie programisty): http://itunesconnect.apple.com/docs/iTunesConnect_DeveloperGuide.pdf – TomSwift

0

W rzeczywistości odnowienie nie działa w Sandbox. Wygląda na to, że zawsze jesteś w procesie zakupu. Automatyczne odnawianie ma być "zasłonięte", ponieważ AppStore automatycznie je ponownie przetworzy, aż użytkownik jawnie "anuluje" to. W Sandbox, co 5 minut, musisz ponownie dokonać zakupu.

Wreszcie jest błąd w "You Already zakupione w aplikacji", ponieważ ma on wysłać prawidłową transakcję, ale po prostu wysyła kod błędu.

0

Właściwie, odnowienie w Sandbox jest bardzo nieprzewidywalne. Czasami działa tak, jak to opisano, czasami działa zupełnie inaczej, czasami nie działa w ogóle (mówiąc, że jako programista z aplikacją w sklepie, która faktycznie korzysta z zakupów w aplikacji z subskrypcjami autoodnawialnymi, najwyraźniej z powodzeniem w produkcji). Właśnie w tej chwili mam miesięczny abonament w piaskownicy, który ma oryginalną datę zakupu od 27 godzin wstecz i datę wygaśnięcia trzy godziny wstecz. Naprawdę zastanawiam się, jak masz to sprawdzić, jeśli odpowiedzi są absurdalne.