Wtyczka Płatności w Google Play rozszerza wbudowane usługi Unity i komponentów do zakupów w aplikacji (Unity) IAP, aby zapewnić i dostęp do najnowszych funkcji Biblioteki płatności w Google Play. Ten . W tym przewodniku znajdziesz również opisuje, jak wdrożyć funkcje Biblioteki płatności w Google Play w grze w Unity.
Konfigurowanie wtyczki Płatności w Google Play
Aby skonfigurować wtyczkę, wykonaj czynności w każdej z tych sekcji:
- Włącz warstwę abstrakcji IAP w Unity.
- Pobierz i zaimportuj wtyczkę.
- Skonfiguruj ustawienia kompilacji wtyczki.
- Włącz wtyczkę.
Włącz warstwę abstrakcji IAP w Unity
Wtyczka Płatności w Google Play opiera się na warstwie abstrakcji zawartej w: Unity IAP, więc przed pobraniem musisz włączyć tę warstwę abstrakcji i zaimportuj wtyczkę. Aby włączyć warstwę abstrakcji IAP w Unity, wykonaj :
- Wykonaj wszystkie czynności z tego samouczka Unity: Skonfiguruj projekt Unity Services.
- Wykonaj wszystkie czynności z tego samouczka Unity: Włączanie IAP w Unity usługi.
Pobieranie i importowanie wtyczki
Wtyczka jest wysyłana jako pakiet Unity w
Format: .unitypackage
. Aby pobrać i zaimportować wtyczkę, wykonaj następujące kroki:
- Pobierz najnowszą wersję wtyczek Google Play dla Unity z repozytorium stronie wersji w GitHubie.
Na pasku menu Unity kliknij Zasoby > Importuj pakiet > Pakiet niestandardowy.
Znajdź i wybierz miejsce, z którego został pobrany plik
.unitypackage
.W oknie Import Unity Package (Importuj pakiet Unity) pozostaw zaznaczone wszystkie zasoby i kliknij Importuj.
Po zaimportowaniu pakietu nowy folder o nazwie GooglePlayWtyczki (w sekcji katalog główny folderu Assets) zostanie dodany do zasobów projektu. Ten folder zawiera wszystkie zasoby Biblioteki płatności w Google Play związane z wtyczką.
Skonfiguruj ustawienia kompilacji
Ze względu na to, że wtyczka rozszerza Unity IAP, Unity napotyka konflikty i nie utwórz pakiet APK na Androida, chyba że starsze, nakładające się zależności w Unity IAP są usuwane z kompilacji. Wtyczka automatycznie usuwa bibliotek, które są w konflikcie. Aby rozwiązać te konflikty, wykonaj następujące czynności: wykonaj te czynności:
Na pasku menu Unity wybierz Google > Płatności w Play > Ustawienia kompilacji.
W oknie Ustawienia kompilacji płatności w Play kliknij Rozwiąż problem. To rozwiązuje problem i przenosi powodujące konflikt pliki IAP do katalogu kopii zapasowej. Po klikniesz Napraw, przycisk zmieni się na Przywróć, przywróć oryginalne pliki będące w konflikcie.
Włącz wtyczkę
Aby włączyć wtyczkę, zastąp implementację Google Play w Unity IAP
Wtyczka Płatności w Google Play. Na przykład podczas używania programu Unity IAP Purchaser
Skrypt,
zmień wartość StandardPurchaseModule
przekazywaną do kreatora IAP
aby użyć Google.Play.Billing.GooglePlayStoreModule
:
// Create a builder using the GooglePlayStoreModule.
var configurationBuilder =
ConfigurationBuilder.Instance(Google.Play.Billing.GooglePlayStoreModule.Instance());
Jeśli Twoja gra używa tego samego skryptu nabywcy na wielu platformach: należy dodać narzędzie kontroli platformy, aby mieć pewność, że Unity Własne rozwiązanie IAP dla innych platform:
ConfigurationBuilder builder;
if (Application.platform == RuntimePlatform.Android)
{
builder = ConfigurationBuilder.Instance(
Google.Play.Billing.GooglePlayStoreModule.Instance());
}
else
{
builder = ConfigurationBuilder.Instance(StandardPurchasingModule.Instance());
}
Jeśli opublikujesz grę w innych sklepach z aplikacjami na Androida niż Google Play Store, zastąp domyślną implementację IAP Unity tylko wtedy, Sklepu Google Play:
ConfigurationBuilder builder;
if (Application.platform == RuntimePlatform.Android
&& SelectedAndoidAppStore == AppStore.GooglePlay)
{
builder = ConfigurationBuilder.Instance(
Google.Play.Billing.GooglePlayStoreModule.Instance());
}
else
{
builder = ConfigurationBuilder.Instance(StandardPurchasingModule.Instance());
}
Wdrażanie w grze funkcji Biblioteki płatności w Google Play
Wtyczka Płatności w Google Play rozszerza usługi Unity IAP, dzięki czemu możesz używać tych samych interfejsów API Unity do zarządzania typowymi przepływami pracy związanymi z zakupami. Pamiętaj, że niektóre niewielkie zmiany w działaniu interfejsu API z powodu różnic między Biblioteką płatności w Google Play a standardowym zakupem w aplikacji Unity implementacji w innych sklepach z aplikacjami. Jeśli nie znasz jeszcze interfejsów Unity IAP API, zapoznaj się z artykułem lekcji „Dokonywanie skryptu zakupu” w sekcji Unity IAP samouczek .
Biblioteka płatności w Google Play zawiera też funkcje, które są dostępne tylko Sklep Play. Dostęp do tych funkcji możesz uzyskać za pomocą rozszerzonego interfejsu. w dalszej części tej sekcji dowiesz się, jak wdrożyć te unikalne biblioteki Płatności w Google Play. funkcje w grze.
Włącz odroczone zakupy
Google Play obsługuje odroczone zakupy (tzw. oczekujące) (trafikacje) lub oczekujące zakupów – w ramach których użytkownicy mogą je utworzyć i dokończyć później za gotówkę. w sklepach stacjonarnych.
Aby włączyć odroczone zakupy, użyj kreatora IAP i zmodyfikuj moduł
przez wywołanie metody EnableDeferredPurchase()
:
// Create a builder using a GooglePlayStoreModule.
var configurationBuilder =
ConfigurationBuilder.Instance(Google.Play.Billing.GooglePlayStoreModule.Instance());
// Enable deferred purchases
configurationBuilder.Configure<Google.Play.Billing.IGooglePlayConfiguration>()
.EnableDeferredPurchase();
Następnie zaimplementuj wywołanie zwrotne o odroczonych zakupach, używając rozszerzeń Sklepu Play:
// Get the plugin extensions for the Google Play Store.
_playStoreExtensions =
extensions.GetExtension<Google.Play.Billing.IGooglePlayStoreExtensions>();
// Set the deferred purchases callback.
_playStoreExtensions.SetDeferredPurchaseListener(
delegate(Product product)
{
// Do not grant the item here. Instead, record the purchase and remind
// the user to complete the transaction in the Play Store.
});
Przekazywanie zaciemnionych identyfikatorów kont do Google Play
Możesz przekazać zaciemnione identyfikatory kont użytkowników do Google Play, aby ułatwić dokonywanie nadużyć wykrywania, np. wykrywania, czy wiele urządzeń dokonuje zakupów za pomocą w krótkim czasie.
Aby przekazać zaciemniony identyfikator konta, wywołaj metodę SetObfuscatedAccountId()
z interfejsu API rozszerzeń:
// Get the plugin extensions for the Google Play Store.
_playStoreExtensions =
extensions.GetExtension<Google.Play.Billing.IGooglePlayStoreExtensions>();
// Pass an obfuscated account ID.
_playStoreExtensions.SetObfuscatedAccountId(obfuscatedAccountId);
Przekazywanie zaciemnionych identyfikatorów profili do Google Play
Możesz przekazać zaciemniony identyfikator profilu do Google Play, aby ułatwić oszustwa wykrywania, np. wykrywania, czy wiele urządzeń dokonuje zakupów za pomocą w krótkim czasie. Jest to podobne do przekazywania zaciemnionego kodu identyfikatora konta użytkownika. W obu przypadkach identyfikator reprezentuje dla jednego użytkownika, ale identyfikator profilu umożliwia jednoznaczne wiele profili w jednej aplikacji. Po wysłaniu zaciemniony identyfikator profilu do Google Play, możesz go pobrać później w dowód zakupu.
Aby przekazać zaciemniony identyfikator profilu, użyj
kreatora IAP, aby zmodyfikować konfigurację modułu przez wywołanie metody
Metoda SetObfuscatedProfileId()
:
// Get the plugin extensions for the Google Play Store.
_playStoreExtensions =
extensions.GetExtension<Google.Play.Billing.IGooglePlayStoreExtensions>();
// Pass an obfuscated profile ID.
_playStoreExtensions.SetObfuscatedProfileId(obfuscatedProfileId);
Potwierdzanie zmian cen subskrypcji
W Google Play możesz zmienić cenę aktywnego urządzenia
subskrypcji. Twoje
użytkownicy gry muszą potwierdzić każdą zmianę ceny, zanim zaczną one obowiązywać. Do
użytkownik zobaczy prośbę o potwierdzenie zmiany ceny subskrypcji, wywołaj metodę
Metoda ConfirmSubscriptionPriceChange()
:
// Get the plugin extensions for the Google Play Store.
_playStoreExtensions =
extensions.GetExtension<Google.Play.Billing.IGooglePlayStoreExtensions>();
_playStoreExtensions.ConfirmSubscriptionPriceChange(productId,
delegate (bool success)
{
// Returns whether the user has accepted the new price or not.
});
Zmiany w działaniu interfejsu Unity API
Gdy używasz wtyczki Płatności w Google Play, większość interfejsów API zachowuje tak samo jak w standardowej implementacji zakupów w aplikacji Unity w innych sklepach z aplikacjami. Pamiętaj jednak: w niektórych przypadkach interfejsy API mogą działać inaczej. Ta sekcja opisuje te różnice w zachowaniu.
Ładunek dewelopera nie jest obsługiwany
Google Play wycofał ładunek dewelopera i zastąpił go alternatywnymi które są bardziej znaczące i kontekstowe. Z tego powodu ładunek programisty jest nieobsługiwane. Więcej informacji na temat alternatywnych rozwiązań znajdziesz na stronie Ładunek dewelopera.
Możesz nadal korzystać z interfejsów zdefiniowanych w standardzie Unity
Implementacja zakupów w aplikacji w innych sklepach z aplikacjami, w tym w IStoreController
. Gdy
zainicjuj zakup, nadal możesz użyć aplikacji IStoreController
i wywołać
Metoda InitiatePurchase()
:
public void InitiatePurchase(Purchasing.Product product, string payload);
Przekazany ładunek nie będzie jednak miał zastosowania (nie pojawi się w ostateczny rachunek).
Menedżer subskrypcji nie jest obsługiwany
Unity IAP udostępnia SubscriptionManager
do zarządzania subskrypcjami. Ponieważ standardowa implementacja IAP w Unity
ta klasa używa ładunku programisty, ta klasa nie jest obsługiwana. Nadal możesz
tworzenia tej klasy, ale możesz otrzymać nierzetelne dane przy korzystaniu z któregokolwiek z
metod getter klasy.
UpdateSubscription wprowadza niewielkie zmiany w interfejsie API
Wtyczka Płatności w Google Play nie obsługuje parametru
SubscriptionManager.UpdateSubscription()
i
SubscriptionManager.UpdateSubscriptionInGooglePlayStore()
metod przejścia na wyższą wersję
i przejść na niższą wersję. Jeśli gra wywołuje te metody,
GooglePlayStoreUnsupportedException
trafia na piłkę
Biblioteka płatności w Google Play udostępnia alternatywny interfejs API, którego można używać zamiast tych
. Aby przejść na wyższą lub niższą wersję usługi, zadzwoń pod numer UpdateSubscription()
z zastosowaniem trybu proporcjonalnego:
void UpdateSubscription(Product oldProduct, Product newProduct,
GooglePlayStoreProrationMode prorationMode = GooglePlayStoreProrationMode.Unknown);
Możesz opakować to wywołanie metody za pomocą kontroli platformy lub w bloku przechwytywania.
gdy urządzenie GooglePlayStoreUnsupportedException
zostaje złapane.
Więcej informacji i przykładów korzystania z trybu proporcjonalnego znajdziesz w sekcji Ustawianie trybu proporcjonalnego.