Unity ile Google Play Faturalandırma Kitaplığı'nı kullanma

Google Play Faturalandırma eklentisi, Unity'nin yerleşik hizmetlerini ve uygulama içi satın almalar için Unity" adı verilen öğeler IAP, Google Play Faturalandırma Kitaplığı'nın en yeni özelliklerinin tümüne sahip olarak oyununuzu. Bu kılavuzunda, eklentiyi kullanmak için projenizi nasıl ayarlayacağınız açıklanmaktadır. Bu kılavuzdakiler .

Google Play Faturalandırma eklentisini ayarlama

Eklentiyi kurmak için aşağıdaki bağlantılı bölümlerin her birindeki adımları tamamlayın:

  1. Unity IAP soyutlama katmanını etkinleştirin.
  2. Eklentiyi indirip içe aktarın.
  3. Eklentinin derleme ayarlarını yapılandırın.
  4. Eklentiyi etkinleştirin.

Unity IAP soyutlama katmanını etkinleştir

Google Play Faturalandırma eklentisi, Unity IAP vardır, dolayısıyla indirmeden önce bu soyutlama katmanını etkinleştirmeniz gerekir ve eklentiyi içe aktarın. Unity IAP soyutlama katmanını etkinleştirmek için takip etmek için:

  1. Aşağıdaki Unity eğiticisindeki tüm adımları tamamlayın: Projenizi oluşturma öğrenin.
  2. Aşağıdaki Unity eğiticisindeki tüm adımları tamamlayın: Unity IAP'yi etkinleştirin" hizmet.

Eklentiyi indirme ve içe aktarma

Eklenti, .unitypackage biçimindedir. Eklentiyi indirmek ve içe aktarmak için aşağıdaki adımları uygulayın:

  1. Depodan Unity için Google Play Eklentilerinin son sürümünü indirin GitHub'daki sürümler sayfasını ziyaret edin.
  2. Unity menü çubuğunda Öğeler > Paketi İçe Aktar > Özel Paket.

  3. .unitypackage dosyasını indirdiğiniz yeri bulup seçin.

  4. Import Unity Package (Unity Paketini İçe Aktar) iletişim kutusunda tüm öğeleri seçili bırakın ve tıklayın İçe aktar.

Paket içe aktarıldıktan sonra, GooglePlayEklentiler adında yeni bir klasör ( kök dizin) projenizin öğelerine eklenir. Bu klasör Eklentinin tüm Google Play Faturalandırma Kitaplığı öğelerini içerir.

Derleme ayarlarını yapılandırma

Eklenti, Unity IAP'yi genişlettiğinden, Unity çakışmalarla karşılaşır ve Unity IAP'de çakışan bazı eski ve çakışan bağımlılıklar olmadıkça bir Android APK'sı derleme öğeleri derlemeden kaldırılır. Eklenti, çakışan kitaplıklar var. Bu çakışmaları çözmek için aşağıdaki adımları uygulayın: şu adımları uygulayın:

  1. Unity menü çubuğunda Google > Play Faturalandırma > Derleme Ayarları.

  2. Play Faturalandırma Derleme Ayarları penceresinde Düzelt'i tıklayın. Bu, çakışan ve çakışan Unity IAP dosyalarını yedek bir dizine taşır. Şu tarihten sonra: Düzelt'i tıkladığınızda düğme Geri Yükle olarak değişir. Bu düğmeyi tıklayarak orijinal, çakışan dosyaları geri yükleyin.

Eklentiyi etkinleştirme

Eklentiyi etkinleştirmek için Unity IAP'nin Google Play uygulamasını Google Play Faturalandırma eklentisi. Örneğin, Unity IAP Purchaser Komut dosyası, IAP oluşturucuya aktarılan StandardPurchaseModule değerini değiştirirsiniz (Google.Play.Billing.GooglePlayStoreModule) kullanmak için:

// Create a builder using the GooglePlayStoreModule.
var configurationBuilder =
    ConfigurationBuilder.Instance(Google.Play.Billing.GooglePlayStoreModule.Instance());

Oyununuzda birden fazla platform için aynı Alıcı Komut Dosyası'nı kullanıyorsanız Unity'nin kendi IAP çözümünüz olabilir:

ConfigurationBuilder builder;
if (Application.platform == RuntimePlatform.Android)
{
  builder = ConfigurationBuilder.Instance(
      Google.Play.Billing.GooglePlayStoreModule.Instance());
}
else
{
  builder = ConfigurationBuilder.Instance(StandardPurchasingModule.Instance());
}

Oyununuzu Google Play dışındaki diğer Android uygulama mağazalarında yayınlarsanız Store'da, varsayılan Unity IAP uygulamasını yalnızca aşağıdaki durumlarda Google Play Store'u seçin:

ConfigurationBuilder builder;
if (Application.platform == RuntimePlatform.Android
       && SelectedAndoidAppStore == AppStore.GooglePlay)
{
  builder = ConfigurationBuilder.Instance(
      Google.Play.Billing.GooglePlayStoreModule.Instance());
}
else
{
  builder = ConfigurationBuilder.Instance(StandardPurchasingModule.Instance());
}

Oyununuza Google Play Faturalandırma Kitaplığı özelliklerini uygulama

Google Play Faturalandırma eklentisi, Unity IAP hizmetlerinin kapsamını genişletir. Böylece yönetmek için kullandığınız Unity API'lerini kullanın. Bu videoda ise API davranışında küçük değişiklikler (Google Play Faturalandırma Kitaplığı ile Unity'nin standart IAP'si arasındaki farklılıklardan dolayı) diğer uygulama mağazaları için de uygulanabilir. Unity IAP API'lerini kullanmaya yeni başladıysanız bkz. "Satın Alma Komut Dosyası Oluşturma" Unity IAP eğitici içerik temel satın alma akışlarının nasıl uygulanacağını gösteren bir örnek bulabilirsiniz.

Google Play Faturalandırma Kitaplığı, yalnızca Google Play Store'a dokunun. Bu özelliklere genişletilmiş arayüz üzerinden erişebilirsiniz. İlgili içeriği oluşturmak için kullanılan Bu bölümün geri kalanında, bu benzersiz Google Play Faturalandırma Kitaplığı'nın nasıl uygulanacağı açıklanmaktadır. ekleyebilirsiniz.

Ertelenen satın almaları etkinleştir

Google Play, beklemede olarak da bilinen, ertelenmiş satın alma işlemlerini destekler. aktarımlar veya beklemede Bu uygulamada kullanıcılar bir satın alma işlemi oluşturup daha sonra nakit para kullanarak mağaza.

Ertelenen satın almaları etkinleştirmek için UİSA oluşturucunuzu kullanarak modülünüzün yapılandırma işlemi için EnableDeferredPurchase() yöntemini çağırın:

// 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();

Ardından, Play Store uzantılarını kullanarak ertelenen satın alma işlemleri için geri çağırma uygulayın:

// 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.
    });

Karartılmış hesap kimliklerini Google Play'e iletme

Kötüye kullanımı kolaylaştırmak için karartılmış kullanıcı hesabı kimliklerini Google Play'e iletebilirsiniz algılama (ör. birden fazla cihazın aynı cihazdan satın alma işlemi yapıp yapmadığını) çok çaba sarf etmesi gerektiği anlamına gelir.

Karartılmış hesap kimliğini iletmek için SetObfuscatedAccountId() yöntemini çağırın uzantılar API'sinden:

// Get the plugin extensions for the Google Play Store.
_playStoreExtensions =
    extensions.GetExtension<Google.Play.Billing.IGooglePlayStoreExtensions>();

// Pass an obfuscated account ID.
_playStoreExtensions.SetObfuscatedAccountId(obfuscatedAccountId);

Karartılmış profil kimliklerini Google Play'e iletme

Sahtekarlığı kolaylaştırmak amacıyla, kodu karartılmış bir profil kimliğini Google Play'e aktarabilirsiniz algılama (ör. birden fazla cihazın aynı cihazdan satın alma işlemi yapıp yapmadığını) çok çaba sarf etmesi gerektiği anlamına gelir. Bu, kodu karartılmış bir kullanıcı hesabı kimliğine bakın. Her iki durumda da kimlik bir ancak profil kimliği, tek bir kullanıcıyı belirli bir konumda profillerine göz atalım. Bu bildirimi Google Play'e isterseniz, bu kimliği daha sonra satın alma makbuzunu da kullanabilirsiniz.

Karartılmış bir profil kimliğini iletmek için IAP oluşturucuyu çağırarak modül yapılandırmanızı değiştirmek için SetObfuscatedProfileId() yöntem:

// Get the plugin extensions for the Google Play Store.
_playStoreExtensions =
    extensions.GetExtension<Google.Play.Billing.IGooglePlayStoreExtensions>();

// Pass an obfuscated profile ID.
_playStoreExtensions.SetObfuscatedProfileId(obfuscatedProfileId);

Abonelikler için fiyat değişikliklerini onaylayın

Google Play, bir etkin satışın fiyatını değiştirmenize aboneliği hakkında daha fazla bilgi edinin. Sizin Değişikliklerin geçerli olabilmesi için oyunun kullanıcılarının herhangi bir fiyat değişikliğini onaylaması gerekir. Alıcı: Kullanıcılardan aboneliklerinin fiyat değişikliğini onaylamalarını isteyin, ConfirmSubscriptionPriceChange() yöntem:

// 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.
    });

Unity API davranışındaki değişiklikler

Google Play Faturalandırma eklentisini kullanırken çoğu API Bu uygulama, Unity'nin diğer uygulama mağazalarındaki standart IAP uygulamasıyla aynı şekilde ilerler. Ancak, API'lerin farklı davranacağı bazı durumlar vardır. Bu bölüm çalışması bu davranış farklılıklarını açıklar.

Geliştirici yükü desteklenmiyor

Google Play, geliştirici yükünü kullanımdan kaldırdı ve alternatifleriyle değiştiriyor daha anlamlı ve bağlama dayalı. Bu nedenle geliştirici yükü desteklenmiyor. Alternatifler hakkında daha fazla bilgi için şu sayfaya bakın: Geliştirici yükü.

Unity'nin standardı tarafından tanımlanan arayüzleri kullanmaya devam edebilirsiniz. IStoreController dahil olmak üzere diğer uygulama mağazaları için UİSA uygulaması. Google Takvim widget'ını satın alma işlemi başlatsanız bile IStoreController numaralı telefonu kullanabilir InitiatePurchase() yöntemi:

public void InitiatePurchase(Purchasing.Product product, string payload);

Ancak girdiğiniz hiçbir yük geçerlilik kazanmaz ( son makbuz).

SubscriptionManager desteklenmiyor

Unity IAP, SubscriptionManager sağlar konulu videomuzu izleyin. Unity'nin standart IAP uygulaması bu sınıf geliştirici yükü kullandığından bu sınıf desteklenmemektedir. Hâlâ oluşturabilirsiniz, ancak alma yöntemidir.

UpdateSubscription'da küçük API değişiklikleri var

Google Play Faturalandırma eklentisi, SubscriptionManager.UpdateSubscription() ve Yeni sürüme geçirilecek SubscriptionManager.UpdateSubscriptionInGooglePlayStore() yöntem ve aboneliklerinizi düşürebilirsiniz. Oyununuz bu yöntemleri çağırıyorsa GooglePlayStoreUnsupportedException atıldı.

Google Play Faturalandırma Kitaplığı, bu API'lerin yerine kullanılabilecek alternatif bir API sunar. yöntemlerine göz atın. Bir aboneliği yükseltmek veya düşürmek için UpdateSubscription() numaralı telefonu arayın yöntemini kullanıyorsanız şunları yapabilirsiniz:

void UpdateSubscription(Product oldProduct, Product newProduct,
           GooglePlayStoreProrationMode prorationMode = GooglePlayStoreProrationMode.Unknown);

Bu yöntem çağrısını bir platform kontrolüyle veya bir yakalama bloğuyla sarmalayabilirsiniz. GooglePlayStoreUnsupportedException yakalandığında.

Bölüştürme modunun nasıl kullanılacağına dair daha fazla bilgi ve örnek için bölüştürme moduna dahil edilmelidir.