2013-04-20 8 views
7

Jesteśmy trzema użytkownikami, którzy wyprodukowali model free game dla iPhone'a, który jest dostępny w App Store przez prawie rok.Materiały eksploatacyjne i inne niż materiały eksploatacyjne w systemie iOS

Ta aplikacja to gra planszowa, w której można utworzyć użytkownika lub zalogować się przy użyciu swoich danych logowania na Facebooku. Jesteś w stanie wylogować się z gry i zalogować ponownie za pomocą innego konta.

Teraz zaktualizowaliśmy aplikację z możliwością uaktualnienia użytkownika do użytkownika premium. Umożliwienie osobistej i globalnej statystyk gry.

Ale Apple daje nam ból głowy w procesie zatwierdzania i nie akceptuje naszego zakupu w aplikacji. Najpierw nie zaakceptowaliby tego, ponieważ nie mieli przycisku przywracania. Wtedy, gdy im powiedzieliśmy, przycisk przywracania nie był wymagany, ponieważ był to zakup materiałów eksploatacyjnych, teraz żądają, abyśmy zmienili go na nie zużywający się i dodali przycisk przywracania.

Należy wziąć pod uwagę ten scenariusz, jeśli zakup nie był konsumpcyjny. Dzienniki

  1. Użytkownika w.
  2. modernizacje konto użytkownika do premii
  3. użytkownik loguje się.
  4. Użytkownik loguje się przy użyciu innego konta.
  5. Użytkownik przywraca poprzedni zakup.

Pozwoliłoby to na uaktualnienie dwóch kont do premium, ale z jednym zakupem.

Argumentem Apple jest, że nasi użytkownicy muszą mieć możliwość przywrócenia zakupów, instalacji nowego urządzenia lub przywrócenia urządzenia.

Ale tak nie działa. Użytkownicy aktualizują swoje konta na konta premium. Teraz, gdy kupują nowe urządzenie lub przywracają istniejące urządzenie, po prostu logują się przy użyciu istniejącego konta gry, a uaktualnienie będzie dostępne, ponieważ my po stronie serwera zaznaczyliśmy to konto jako konto premium.

Moje pytanie jest w zasadzie. Całkowicie się myliłyśmy, gdy zdecydowaliśmy się użyć materiałów eksploatacyjnych zamiast materiałów nieulegających zużyciu. A jeśli tak, to w jaki sposób należy wdrożyć materiały nie będące materiałami eksploatacyjnymi, aby być (potencjalnie) kupowanymi więcej niż raz z różnymi kontami gier na tym samym urządzeniu?

Po drugie, jeśli mamy rację co do wykorzystania materiałów eksploatacyjnych do zakupu w aplikacji, co powinniśmy powiedzieć, aby przekonać Apple, że jesteśmy na dobrej drodze?

Odpowiedz

4

Jeśli Twoje konto premium jest czymś, co Twoi użytkownicy muszą kupić tylko raz, Apple zdecydowanie prosi, abyś przełączył się na aplikację, która nie jest w użyciu.

Opisany scenariusz jest całkiem możliwy (musiałem się z nim zmierzyć), ale jeśli dodasz weryfikację potwierdzeń w aplikacji po stronie serwera przed odblokowaniem funkcji premium (zapisanie wszystkich transakcji powiązanych z użytkownikiem) masz szansę aby sprawdzić, czy zakup jest nowy, czy odnowiony, zaznaczając pola original_transaction_id i original_purchase_date w danych pokwitowania. W ten sposób można sprawdzić, czy użytkownik przywracający zakup jest taki sam, jak pierwotnie kupił (może sprawdzając swój identyfikator użytkownika Facebook).

Zresztą doświadczenia pokazały mi, że prawdopodobieństwo takiego zdarzenia jest bardzo wysoki i nie polecam realizacji tego wyboru (choć walidacji po stronie serwera jest prawie zawsze musi ;-))

+0

Dzięki za odpowiedź. Zaimplementowałem to i zadziałało. Gdy użytkownik przywróci zakup u innego użytkownika, teraz powie, że zakup należy do innego konta. ALE. Jeśli użytkownik wpisze zakup, App Store pozwoli mu "pobrać" go ponownie, ale za darmo. I tego nie jestem w stanie złapać. – Trenskow

+0

Chodzi o to, jak sądzę, określenie, czy "właścicielem" funkcji premium jest rzeczywiście twój użytkownik lub konto id. Myślę, że ogólnie bezpiecznie jest powiedzieć, że jest on powiązany z kontem Apple id, ponieważ zakup jest dokonywany z Apple (to dlatego stwierdziłem, że nie wdrożyłem tego czeku w moim projekcie). Na koniec możesz przywrócić zakupy dokonane przy użyciu jednego identyfikatora Apple na wielu kontach użytkowników, ale ten scenariusz i tak nie jest bardzo popularny – andreagiavatto

2

Według sekcji In-App Purchase Programming Guide:

Jeśli aplikacja obsługuje typy produktów, które muszą być do remontu „Przywracanie transakcjach” trzeba to interfejs, który umożliwia użytkownikom przywrócenie tych zakupów.

Jeśli aplikacja zawiera zakup materiałów innych niż konsumpcyjne i jeśli nie ma przycisku przywracania, aplikacja Apple nie zatwierdzi Twojej aplikacji.

ten został wykonany przez firmę Apple konieczne po czerwcu 2012.

więc odpowiedzieć na pytanie: Nie, wydaje się, że trzeba użyć restoreCompletedTransactions.

Mam nadzieję, że to pomoże.

Powiązane problemy