Ładunek programisty

Dane dewelopera były w przeszłości wykorzystywane do różnych celów, m.in. do zapobiegania oszustwom i przypisywania zakupów do właściwego użytkownika. W wersjach 2.2 i nowszych Biblioteki płatności w Google Play przypadki użycia, które wcześniej opierały się na danych dewelopera, są teraz w pełni obsługiwane w innych częściach biblioteki.

W związku z tym wycofaliśmy dane dewelopera, zaczynając od wersji 2.2 Biblioteki płatności w Google Play. Metody powiązane z danymi dewelopera zostały wycofane w wersji 2.2 i usunięte w wersji 3.0. Pamiętaj, że Twoja aplikacja może nadal pobierać dane dewelopera w przypadku zakupów dokonanych przy użyciu poprzednich wersji biblioteki lub AIDL.

Szczegółową listę zmian znajdziesz w informacjach o wersji 2.2 Biblioteki płatności w Google Play. oraz w informacjach o wersji 3.0 Biblioteki płatności w Google Play.

Weryfikacja zakupów

Aby mieć pewność, że zakupy są autentyczne, a nie sfałszowane lub odtworzone, Google zaleca używanie tokena zakupu (uzyskanego za pomocą getPurchaseToken() metody w obiekcie Purchase) wraz z interfejsami API dewelopera Google Play do weryfikowania autentyczności zakupów. Więcej informacji znajdziesz w artykule Zapobieganie oszustwom i nadużyciom.

Atrybucja zakupu

Wiele aplikacji, zwłaszcza gier, musi mieć pewność, że zakup jest prawidłowo przypisany do postaci/awataru w grze lub profilu użytkownika w aplikacji, który zainicjował zakup. Od wersji 2.2 Biblioteki płatności w Google Play Twoja aplikacja może przekazywać do Google zaciemnione identyfikatory konta i profilu podczas otwierania okna zakupu oraz otrzymywać je z powrotem podczas pobierania zakupu.

Użyj setObfuscatedAccountId() i setObfuscatedProfileId() parametrów w BillingFlowParams i pobierz je za pomocą metody getAccountIdentifiers() w obiekcie Purchase.

Powiązywanie metadanych z zakupem

Google zaleca przechowywanie metadanych zakupu na bezpiecznym serwerze backendowym, którym zarządzasz. Te metadane zakupu powinny być powiązane z tokenem zakupu uzyskanym za pomocą getPurchaseToken metody w obiekcie Purchase. Te dane można utrwalić, przekazując token zakupu i metadane do backendu, gdy po udanym zakupie zostanie wywołana metoda PurchasesUpdatedListener.

Aby mieć pewność, że metadane są powiązane w przypadku przerwania procesu zakupu, Google zaleca przechowywanie metadanych na serwerze backendowym przed otwarciem okna zakupu i powiązanie ich z identyfikatorem konta użytkownika, kupowanym SKU i bieżącym znacznikiem czasu.

Jeśli proces zakupu zostanie przerwany, zanim zostanie wywołana metoda PurchasesUpdatedListener , Twoja aplikacja wykryje zakup, gdy zostanie wznowiona i wywoła metodę BillingClient.queryPurchasesAsync(). Następnie możesz wysłać wartości pobrane z obiektu Purchase getPurchaseTime(), getSku(), i getPurchaseToken() metod na serwer backendowy, aby wyszukać metadane, powiązać je z tokenem zakupu i kontynuować przetwarzanie zakupu. Pamiętaj, że znacznik czasu, który został pierwotnie zapisany, nie będzie dokładnie odpowiadać wartości z obiektu Purchase getPurchaseTime(), więc musisz je porównać w przybliżeniu. Możesz na przykład sprawdzić, czy wartości mieszczą się w określonym przedziale czasu.