Właśnie wdrożono Płatności w Google Play w aplikacji na Androida lub progresywnej aplikacji internetowej i użytkownicy mogą kupować produkty cyfrowe. Teraz czas wdrożyć na serwerze backendowym kilka kluczowych komponentów Rozliczeń w Google Play.
Google Play Developer API
Interfejs Google Play Developer API ma 2 komponenty: Subscriptions and In-app Purchases API i Publishing API. Interfejs Subscriptions and In-app Purchases API składa się z tych zasobów REST, które pomagają zarządzać produktami i zakupami:
inappproducts: zarządzanie katalogiem produktów w aplikacji i subskrypcji;purchases.products: stan zakupu produktów w aplikacjipurchases.subscriptions: stan zakupu subskrypcji i zarządzanie nią;
Możesz używać interfejsu Google Play Developer API bezpośrednio jako interfejsu API REST lub skorzystać z bibliotek klienta, które pomogą Ci szybko rozpocząć tworzenie aplikacji. Biblioteki klienta dla wszystkich obsługiwanych języków znajdziesz tutaj. Aby połączyć projekt interfejsu API i skonfigurować klientów dostępu do interfejsu API, postępuj zgodnie z przewodnikiem dla początkujących dotyczącym interfejsu Google Play Developer API.
Wyświetlanie listy wszystkich produktów w aplikacji
Podczas wysyłania zapytań o szczegóły dostępnych produktów w interfejsie (w aplikacji na Androida lub progresywnej aplikacji internetowej) musisz podać listę identyfikatorów produktów. Możesz to zrobić na serwerze backendu za pomocą metody inappproducts.list interfejsu Play Developer API, która wyświetli wszystkie produkty w aplikacji i subskrypcje utworzone w Konsoli Play. Sprawdź status każdego produktu i wysyłaj do klienta aplikacji tylko te, które mają wartość active.
Weryfikowanie zakupów przed przyznaniem uprawnień
Kluczowym elementem wdrażania systemu rozliczeniowego Google Play w aplikacji na Androida lub progresywnej aplikacji internetowej jest weryfikowanie zakupów przed przyznaniem użytkownikowi uprawnień. Gdy przyznasz użytkownikowi uprawnienie, zapewnisz mu dostęp do korzyści lub treści związanych z zakupionym przez niego produktem. Wymaga to przetwarzania danych wrażliwych, dlatego powinno się odbywać na serwerze backendu.
Interfejs Google Play Developer API udostępnia metody purchases.products:get i purchases.subscriptions:get. Używaj ich z tokenami zakupu pobranymi w aplikacji lub przechowywanymi na serwerze backendu, aby sprawdzić, czy zakup jest legalny. Na serwerze backendu należy śledzić tokeny zakupu, aby weryfikować dodatkowe zakupy i uprawnienia użytkowników. Więcej informacji o tym, jakie kroki należy podjąć, znajdziesz w dokumentacji systemu rozliczeniowego Google Play dotyczącej weryfikacji zakupów.
Zakupy w aplikacji
Po otrzymaniu tokena zakupu od klienta serwer backendu powinien wywołać interfejs Google Play Developer API i sprawdzić, czy token nie został już wykorzystany. Pole purchaseState prawidłowego zakupu ma wartość 1.
Jeśli zakup jest prawidłowy, klient powinien potwierdzić zakup i przyznać uprawnienia po otrzymaniu odpowiedzi z serwera.
Zakupy subskrypcji
Podobnie jak w przypadku weryfikacji zakupów w aplikacji, po otrzymaniu tokena zakupu od klienta serwer backendu powinien wywołać interfejs Google Play Developer API i sprawdzić, czy subskrypcja jest nadal ważna.
Klient powinien przyznać uprawnienie, jeśli wartość pola expiryTimeMillis w subskrypcji jest większa niż bieżący czas.
To również dobry moment, aby sprawdzić pole linkedPurchaseToken i odpowiednio zaktualizować bazę danych subskrypcji, aby obsługiwać przejścia na wyższy lub niższy poziom oraz inne procesy związane z subskrypcjami. Więcej szczegółów znajdziesz w dalszej części tej strony.
Aktualizowanie stanu backendu
Jeśli Twoja aplikacja jest dostępna na różnych platformach (które mogą też korzystać z różnych metod płatności), śledzenie użytkowników i ich zakupów na serwerze backendu zapewni im dostęp do tych samych uprawnień na wszystkich urządzeniach i platformach, na których korzystają z aplikacji.
Może to być po prostu baza danych, w której przechowujesz informacje o użytkownikach i ich bieżących uprawnieniach. Następnie, gdy użytkownik dokona zakupu lub wykorzysta swoje uprawnienia, zaktualizuj ten stan. Gdy użytkownik następnym razem uzyska dostęp do aplikacji z innej platformy, możesz pobrać z backendu odpowiednie uprawnienia, aby umożliwić mu dostęp do aplikacji.
Obsługa zmian stanu subskrypcji
Subskrypcja może przechodzić różne zmiany stanu w trakcie swojego cyklu życia. Musisz odpowiednio reagować na każdą z nich. Dowiedz się więcej o zarządzaniu cyklem życia subskrypcji, aby backend był zawsze aktualny.
Subscription_linkedPurchaseToken
Zgodnie z dokumentacją dotyczącą subskrypcji każdy nowy proces zakupu w Google Play (pierwszy zakup, przejście na wyższą lub niższą wersję) generuje nowy token zakupu. Pole linkedPurchaseToken umożliwia rozpoznanie, kiedy kilka tokenów zakupu należy do tej samej subskrypcji.
Za każdym razem, gdy weryfikujesz subskrypcję, backend powinien sprawdzać, czy pole linkedPurchaseToken jest ustawione. Jeśli tak jest, wartość w tym polu reprezentuje poprzedni token, który został zastąpiony. Poprzedni token należy natychmiast oznaczyć jako nieprawidłowy, aby użytkownicy nie mogli go używać do uzyskiwania dostępu do Twoich treści.
Gdy na przykład backend otrzyma token zakupu A dla początkowego zakupu z pustym polem linkedPurchaseToken, włączy uprawnienie dla tego tokena. Później, gdy po uaktualnieniu backend otrzyma nowy token zakupu B, sprawdzi pole linkedPurchaseToken i zobaczy, że jest ono ustawione na A, a następnie wyłączy uprawnienia dla tokena zakupu A.

Szczegółowe omówienie implementacji linkedPurchaseToken znajdziesz w artykule Prawidłowe wdrażanie linkedPurchaseToken zapobiegające duplikowaniu subskrypcji.
Powiadomienia w czasie rzeczywistym dla deweloperów
Metoda purchases.subscriptions:get interfejsu Google Play Developer API jest źródłem informacji o zarządzaniu subskrypcjami użytkowników. Jeśli zarządzasz stanem subskrybentów na bezpiecznym serwerze backendu, musisz synchronizować jego stan z serwerami Google. Częste odpytywanie interfejsu Google Play Developer API może jednak spowodować przekroczenie limitów interfejsu API i opóźnienia w otrzymywaniu powiadomień o ważnych działaniach użytkowników (takich jak anulowanie lub uaktualnienie subskrypcji).
Powiadomienia dla deweloperów w czasie rzeczywistym to funkcja płatności w Google Play, która wysyła na Twój serwer natychmiastowe powiadomienie o zmianie stanu uprawnień subskrybenta (np. zakup subskrypcji, anulowanie subskrypcji, wstrzymanie subskrypcji). Dzięki RTDN możesz synchronizować bazę danych subskrybentów, odpowiadając tylko na te powiadomienia, zamiast regularnie wysyłać zapytania do interfejsu Google Play Developer API.
Twój serwer backendu otrzyma kod SubscriptionNotification w przypadku wydarzeń wpływających na stan subskrypcji, takich jak odnowienia i anulowania. Następnie wywołaj interfejs Google Play Developer API z tokenem zakupu w powiadomieniu, aby uzyskać pełny stan i zaktualizować własny stan backendu.
Aby skonfigurować RTDN w aplikacji, wykonaj te instrukcje. Następnie skonfiguruj serwer backendu, aby odbierał te wiadomości.
Więcej informacji znajdziesz w pełnej dokumentacji RTDN.