Ładunek programisty

Ł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.2informacjach 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()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.