Ładunek dewelopera był do tej pory wykorzystywany do różnych celów, m.in. do zapobiegania oszustwom i przypisywania zakupów do właściwego użytkownika. W wersjach Biblioteki płatności w Google Play w wersji 2.2 i wyższych przypadki użycia, które wcześniej wymagały danych programisty, są teraz w pełni obsługiwane w innych częściach biblioteki.
W związku z tym wycofaliśmy ładunek dewelopera od wersji 2.2 Biblioteki płatności w Google Play. Metody związane z danymi programisty zostały wycofane w wersji 2.2, a w wersji 3.0 zostały usunięte. Pamiętaj, że Twoja aplikacja może nadal pobierać dane dewelopera w przypadku zakupów dokonanych za pomocą poprzednich wersji biblioteki lub AIDL.
Szczegółową listę zmian znajdziesz w informacjach o wersji Biblioteki płatności w Google Play 2.2 i informacjach o wersji Biblioteki płatności w Google Play 3.0.
Weryfikacja zakupów
Aby mieć pewność, że zakupy są autentyczne i nie zostały sfałszowane ani odtworzone, Google zaleca używanie tokenu zakupu (uzyskanego za pomocą metody getPurchaseToken()
w obiekcie Purchase
) oraz interfejsów Google Play Developer API do weryfikacji autentyczności zakupów.
Więcej informacji znajdziesz w artykule Zwalczanie oszustw i nadużyć.
Atrybucja zakupu
Wiele aplikacji, zwłaszcza gier, musi mieć pewność, że zakup został prawidłowo przypisany do postaci w grze lub awatara albo do profilu użytkownika w aplikacji, który zainicjował zakup. Począwszy od wersji 2.2 biblioteki Google Play Billing Library Twoja aplikacja może przekazywać zaciemnione identyfikatory kont i profili do Google podczas uruchamiania okna dialogowego zakupu, a także odbierać je podczas pobierania zakupu.
Użyj parametrów setObfuscatedAccountId()
i setObfuscatedProfileId()
w BillingFlowParams
oraz pobierz je za pomocą metody getAccountIdentifiers()
w obiekcie Purchase
.
Powiązanie metadanych z zakupem
Google zaleca przechowywanie metadanych dotyczących zakupu na bezpiecznym serwerze, który jest obsługiwany przez Ciebie. Te metadane zakupu powinny być powiązane z tokenem zakupu uzyskanym za pomocą metody getPurchaseToken
w obiekcie Purchase
. Dane te można zachować, przekazując token zakupu i metadane do backendu, gdy funkcja PurchasesUpdatedListener
zostanie wywołana po dokonaniu zakupu.
Aby mieć pewność, że metadane zostaną powiązane w przypadku przerwania procesu zakupu, Google zaleca przechowywanie metadanych na serwerze zaplecza przed wyświetleniem okna dialogowego zakupu i powiązaniem go z identyfikatorem konta użytkownika, kupowanym SKU oraz bieżącą sygnaturą czasową.
Jeśli proces zakupu zostanie przerwany przed wywołaniem metody PurchasesUpdatedListener
, aplikacja wykryje zakup, gdy wznowi działanie i wywoła metodę BillingClient.queryPurchasesAsync()
.
Następnie możesz wysłać wartości pobrane z metod getPurchaseTime()
, getSku()
i getPurchaseToken()
obiektu Purchase
do serwera zaplecza, aby wyszukać metadane, powiązać je z tokenem zakupu i kontynuować przetwarzanie zakupu. Pamiętaj, że
czas znacznika pierwotnie zapisany nie będzie dokładnie pasował do wartości z
getPurchaseTime()
obiektu Purchase
, więc musisz je porównać w przybliżony sposób. Możesz np. sprawdzić, czy wartości mieszczą się w określonym przedziale czasowym.