Google Play Faturalandırma Kitaplığı sürüm notları

Bu konu, Google Play Faturalandırma Kitaplığı ile ilgili sürüm notlarını içerir.

Google Play Faturalandırma Kitaplığı 6.2.0 Sürümü (06.03.2024)

Google Play Faturalandırma Kitaplığı'nın 6.2.0 sürümü ve Kotlin uzantıları kullanıma sunuldu.

Değişiklik özeti

Google Play Faturalandırma Kitaplığı 6.1.0 Sürümü (14.11.2023)

Google Play Faturalandırma Kitaplığı'nın ve Kotlin uzantılarının 6.1.0 sürümü kullanıma sunulmuştur.

Değişiklik özeti

Google Play Faturalandırma Kitaplığı 6.0.1 Sürümü (22.06.2023)

Google Play Faturalandırma Kitaplığı'nın ve Kotlin uzantılarının 6.0.1 sürümü kullanıma sunulmuştur.

Değişiklik özeti

Play Faturalandırma Kitaplığı'nı Android 14 ile uyumlu olacak şekilde güncelleyin.

Google Play Faturalandırma Kitaplığı 6.0 Sürümü (10.05.2023)

Google Play Faturalandırma Kitaplığı'nın ve Kotlin uzantılarının 6.0.0 sürümü kullanıma sunulmuştur.

Değişiklik özeti

  • ProrationMode'in yerini alacak yeni ReplacementMode sıralaması eklendi.

    ProrationMode hâlâ geriye dönük uyumluluk nedeniyle kullanılabilir.

  • PENDING satın alma işlemleri için sipariş kimliği kaldırıldı.

    Daha önce, satın alma işlemi beklemede olsa bile sipariş kimliği her zaman oluşturuluyordu. 6.0.0 sürümünden itibaren, bekleyen satın alma işlemleri için sipariş kimliği oluşturulmayacak ve bu satın alma işlemleri için sipariş kimliği, satın alma işlemi PURCHASED durumuna taşındıktan sonra doldurulacaktır.

  • queryPurchases ve launchPriceConfirmationFlow yöntemleri kaldırıldı.

    Daha önce kullanımdan kaldırıldı olarak işaretlenmiş queryPurchases ve launchPriceConfirmationFlow yöntemleri, Play Faturalandırma Kitaplığı 6.0.0'dan kaldırılmıştır. Geliştiriciler, queryPurchases yerine queryPurchasesAsync kullanmalıdır. launchPriceConfirmationFlow alternatifleri için Fiyat değişiklikleri konusuna bakın.

  • Yeni ağ hatası yanıt kodu eklendi.

    PBL'nin 6.0.0 sürümünden itibaren yeni bir ağ hatası yanıt kodu (NETWORK_ERROR) eklendi. Bu kod, ağ bağlantısı sorunu nedeniyle hata oluştuğunda döndürülür. Bu ağ bağlantısı hataları daha önce SERVICE_UNAVAILABLE olarak raporlanıyordu.

  • SERVICE_UNAVAILABLE ve SERVICE_TIMEOUT güncellendi.

    PBL'nin 6.0.0 sürümünden itibaren, işlemedeki zaman aşımından kaynaklanan hatalar, mevcut SERVICE_TIMEOUT yerine SERVICE_UNAVAILABLE olarak döndürülecektir.

    Bu davranış, PBL'nin önceki sürümlerinde değişmez.

  • Kaldırıldı SERVICE_TIMEOUT.

    PBL 6.0.0 sürümünden itibaren, SERVICE_TIMEOUT artık döndürülmeyecektir. PBL'nin önceki sürümleri yine de bu kodu döndürecektir.

  • Ek günlük kaydı eklendi.

    Play Faturalandırma Kitaplığı 6 sürümü, API kullanımı (başarı ve hata gibi) ve hizmet bağlantısı sorunlarıyla ilgili analiz sağlayan ek günlük kaydı içerir. Bu bilgiler hem Play Faturalandırma Kitaplığı'nın performansını iyileştirmek hem de hatalar için daha iyi destek sağlamak için kullanılır.

Google Play Faturalandırma Kitaplığı 5.2.1 Sürümü (22.06.2023)

Google Play Faturalandırma Kitaplığı'nın ve Kotlin uzantılarının 5.2.1 sürümü kullanıma sunulmuştur.

Değişiklik özeti

Play Faturalandırma Kitaplığı'nı Android 14 ile uyumlu olacak şekilde güncelleyin.

Google Play Faturalandırma Kitaplığı 5.2 Sürümü (06.04.2023)

Google Play Faturalandırma Kitaplığı'nın ve Kotlin uzantılarının 5.2.0 sürümü kullanıma sunulmuştur.

Değişiklik özeti

Google Play Faturalandırma Kitaplığı 5.1 Sürümü (31.10.2022)

Google Play Faturalandırma Kitaplığı'nın ve Kotlin uzantılarının 5.1.0 sürümü kullanıma sunulmuştur.

Bu sürüm aşağıdaki değişiklikleri içerir.

Değişiklik özeti

Google Play Faturalandırma Kitaplığı 5.0 Sürümü (11.05.2022)

Google Play Faturalandırma Kitaplığı'nın ve Kotlin uzantılarının 5.0.0 sürümü kullanıma sunulmuştur.

Bu sürüm aşağıdaki değişiklikleri içerir.

Değişiklik özeti

  • Tek bir abonelik ürünü için birden fazla teklif oluşturmanıza olanak tanıyan yeni varlıklar da dahil olmak üzere abonelikler için yeni bir model kullanıma sunuldu. Daha fazla bilgi için taşıma rehberine göz atın.
  • BillingClient.querySkuDetailsAsync() yerine BillingClient.queryProductDetailsAsync() eklendi.
  • AB kişiselleştirilmiş fiyatlandırma açıklama şartları için setIsOfferPersonalized() yöntemi eklendi. Bu yöntemin nasıl kullanılacağı hakkında daha fazla bilgi edinmek için Kişisel bir fiyat belirtme bölümüne bakın.
  • Daha önce kullanımdan kaldırılan ve Google Play Faturalandırma Kitaplığı 4.0.0 sürümünde kullanıma sunulan queryPurchasesAsync ile değiştirilen queryPurchases() kaldırıldı.
  • launchPriceChangeFlow desteği sonlandırılmış olup gelecekteki bir sürümde kaldırılacaktır. Alternatifler hakkında daha fazla bilgi edinmek için Fiyat değişikliği onay akışını başlatma bölümüne bakın.
  • Daha önce satın alma akışı somutlaştırmak için kullanılan setVrPurchaseFlow() kaldırıldı. Önceki sürümlerde, bu yöntem kullanıcıyı satın alma işlemini Android cihazında tamamlamaya yönlendiriyordu. Bu yöntemi kaldırdığınızda kullanıcılar satın alma işlemini standart satın alma sürecinde tamamlar.

Google Play Faturalandırma Kitaplığı 4.1 sürümü (23.02.2022)

Google Play Faturalandırma Kitaplığı'nın 4.1.0 sürümü ve Kotlin uzantıları kullanıma sunulmuştur.

Bu sürüm aşağıdaki değişiklikleri içerir.

Değişiklik özeti

Google Play Faturalandırma Kitaplığı 4.0 Sürümü (18.05.2021)

Google Play Faturalandırma Kitaplığı'nın 4.0.0 sürümü ve Kotlin uzantıları kullanıma sunuldu.

Değişiklik özeti

Google Play Faturalandırma Kitaplığı 3.0.3 Sürümü (12.03.2021)

Google Play Faturalandırma Kitaplığı'nın 3.0.3 sürümü, Kotlin uzantısı ve Unity eklentisi kullanıma sunulmuştur.

Java ve Kotlin Hata düzeltmeleri

  • endConnection() çağrıldığında bellek sızıntısını düzeltin.
  • Google Play Faturalandırma Kitaplığı'nın, tek görev başlatma modunu kullanan uygulamalar tarafından kullanılmasıyla ilgili sorun düzeltildi. Bir uygulama Android başlatıcıdan devam ettirildiğinde ve faturalandırma iletişim kutusu askıya alınmadan önce görünür olduğunda onPurchasesUpdated() geri çağırma tetiklenir.

Unity Hata düzeltmeleri

  • Bellek sızıntısını gidermek ve uygulama Android başlatıcıdan devam ettirildiğinde ve faturalandırma iletişim kutusu askıya alınmadan önce görünür olduğunda, satın alma işlemlerini engelleyen sorunu çözmek için Java sürüm 3.0.3'e güncelleme yapın.

Google Play Faturalandırma Kitaplığı 3.0.2 Sürümü (24.11.2020)

Google Play Faturalandırma Kitaplığı'nın ve Kotlin uzantısının 3.0.2 sürümü kullanıma sunuldu.

Hata düzeltmeleri

  • Kotlin uzantısında, eş kotinin "Zaten devam ettirildi" hatasıyla başarısız olmasına neden olan bir hata düzeltildi.
  • Kotlin uzantısı kotlinx.coroutines kitaplığı 1.4+ sürümüyle kullanıldığında çözülmemiş referanslar düzeltildi.

Google Play Faturalandırma Kitaplığı 3.0.1 Sürümü (30.09.2020)

Google Play Faturalandırma Kitaplığı'nın ve Kotlin uzantısının 3.0.1 sürümü kullanıma sunuldu.

Hata düzeltmeleri

  • Faturalandırma akışı sırasında uygulamanın sonlandırılıp geri yüklenmesi halinde satın alma sonucuyla birlikte PurchasesUpdatedListener çağrılamamasına neden olan hata düzeltildi.

Google Play Faturalandırma Kitaplığı 3.0 Sürümü (08.06.2020)

Google Play Faturalandırma Kitaplığı'nın 3.0.0 sürümü, Kotlin uzantısı ve Unity eklentisi artık kullanılabilir.

Değişiklik özeti

  • Ödüllü SKU desteği kaldırıldı.
  • ChildDirected ve UnderAgeOfConsent parametreleri kaldırıldı.
  • Kullanımdan kaldırılan geliştirici yükü yöntemleri kaldırıldı.
  • Kullanımdan kaldırılan yöntemler olan BillingFlowParams.setAccountId() ve BillingFlowParams.setDeveloperId() kaldırıldı.
  • Kullanımdan kaldırılan yöntemler olan BillingFlowParams.setOldSkus(String oldSku) ve BillingFlowParams.addOldSku(String oldSku) kaldırıldı.
  • Boş değer atanabilirliği ek açıklamaları eklendi.

Hata düzeltmeleri

  • SkuDetails.getIntroductoryPriceCycles() artık String yerine int değerini döndürüyor.
  • Ekstra parametre ayarlanmamış olsa bile faturalandırma akışının ekstra parametrelere sahip olarak değerlendirilmesine neden olan hata düzeltildi.

Google Play Faturalandırma Kitaplığı 2.2.1 Sürümü (20.05.2020)

Google Play Faturalandırma Kitaplığı'nın 2.2.1 sürümü kullanıma sunuldu.

Hata düzeltmeleri

  • Kotlin uzantısının bağlı olduğu Java Play Faturalandırma kitaplığının varsayılan sürümü güncellendi.

Google Play Faturalandırma Kitaplığı 2.2.0 sürümü ve Unity desteği (23.03.2020)

Google Play Faturalandırma Sürümü 2.2.0, geliştiricilerin satın alma işlemlerinin doğru kullanıcıyla ilişkilendirildiğinden emin olmalarına yardımcı olan işlevler sağlar. Bu değişiklikler, geliştirici yüküne göre özel çözümler derleme ihtiyacının yerini alıyor. Bu güncelleme kapsamında geliştirici yükü işlevi kullanımdan kaldırılmıştır ve gelecekteki bir sürümde kaldırılacaktır. Önerilen alternatifler de dahil olmak üzere daha fazla bilgi için Geliştirici yükü bölümüne bakın.

Unity için Google Play Faturalandırma Faturalandırma Kitaplığı 2

Google Play Faturalandırma Kitaplığı 2'nin mevcut Java ve Kotlin sürümlerine ek olarak, Unity ile kullanılmak üzere kitaplığın bir sürümünü de yayınladık. Unity uygulama içi satın alma API'sini kullanan oyun geliştiricileri, tüm Google Play Faturalandırma Kitaplığı 2 özelliklerinden yararlanmak ve sonraki Google Play Faturalandırma Kitaplığı'nın sonraki sürümlerine yükseltmeyi daha kolay hale getirmek için hemen yükseltme yapabilir.

Daha fazla bilgi için Unity ile Google Play Faturalandırma'yı kullanma bölümüne bakın.

Değişiklik özeti

Google Play Faturalandırma Kitaplığı 2.1.0 Sürümü ve Kotlin Uzantısı 2.1.0 Sürümü (10.12.2019)

Google Play Faturalandırma kitaplığının 2.1.0 sürümü ve yeni Kotlin uzantısı kullanıma sunuldu. Play Faturalandırma Kitaplığı Kotlin uzantısı, Kotlin kullanımı için daha iyi boş güvenlik ve eş yordamlar içeren deyimsel API alternatifleri sağlar. Kod örnekleri için Google Play Faturalandırma Kitaplığı'nı kullanma bölümüne bakın.

Bu sürüm aşağıdaki değişiklikleri içerir.

Değişiklik özeti

  • BillingFlowParams'te, cihazdaki birden fazla hesap aynı SKU'ya sahip olduğunda durumu netleştirmek için setOldSku(String oldSku) kullanımdan kaldırıldı ve setOldSku(String oldSku, String purchaseToken) ile değiştirildi.

Google Play Faturalandırma Kitaplığı 2.0.3 Sürümü (05.08.2019)

Google Play Faturalandırma Kitaplığı'nın 2.0.3 sürümü kullanıma sunuldu.

Hata düzeltmeleri

  • querySkuDetailsAsync() işlevinin başarılı bir sonuç döndürmek yerine bazen DEVELOPER_ERROR koduyla başarısız olmasına neden olan hata düzeltildi.

Google Play Faturalandırma Kitaplığı 2.0.2 Sürümü (08.07.2019)

Google Play Faturalandırma Kitaplığı'nın 2.0.2 sürümü kullanıma sunuldu. Bu sürüm, referans dokümanlarda güncellemeler içerir ve kitaplık işlevini değiştirmez.

Google Play Faturalandırma Kitaplığı 2.0.1 Sürümü (06.06.2019)

Google Play Faturalandırma Kitaplığı'nın 2.0.1 sürümü kullanıma sunuldu. Bu sürüm aşağıdaki değişiklikleri içermektedir.

Hata düzeltmeleri

  • Bazı durumlarda hata ayıklama mesajlarının null olarak döndürülmesine neden olan hata düzeltildi.
  • Olası bir bellek sızıntısı sorunu düzeltildi.

Google Play Faturalandırma Kitaplığı 2.0 Sürümü (07.05.2019)

Google Play Faturalandırma Kitaplığı'nın 2.0 sürümü kullanıma sunuldu. Bu sürüm aşağıdaki değişiklikleri içermektedir.

Satın alma işlemleri üç gün içinde onaylanmalıdır

Google Play, uygulamanızın içinden (uygulama içi) veya uygulamanızın dışından (uygulama dışı) ürün satın alınmasını destekler. Kullanıcının ürününüzü satın aldığı yerden bağımsız olarak Google Play'in tutarlı bir satın alma deneyimi sunması için, kullanıcıya erişim hakkı tanıdıktan sonra Google Play Faturalandırma Kitaplığı'ndan yapılan tüm satın alma işlemlerini en kısa sürede onaylamanız gerekir. Bir satın alma işlemini üç gün içinde onaylamazsanız kullanıcı otomatik olarak geri ödeme alır ve Google Play satın alma işlemini iptal eder. Bekleyen işlemler için (sürüm 2.0'da yeni olan) üç günlük zaman aralığı, satın alma işlemi PURCHASED durumuna taşındığında başlar ve satın alma işlemi PENDING durumundayken geçerli olmaz.

Abonelikler için yeni satın alma jetonu olan tüm satın alma işlemlerini onaylamanız gerekir. Diğer bir deyişle, ilk satın alma işlemleri, plan değişiklikleri ve yeniden kayıtlar için onay gerekir ancak sonraki yenilemeleri onaylamanız gerekmez. Bir satın alma işleminin onaylanması gerekip gerekmediğini belirlemek için satın alma işlemindeki onay alanını kontrol edebilirsiniz.

Purchase nesnesi artık satın alma işleminin onaylanıp onaylanmadığını belirten bir isAcknowledged() yöntemi içeriyor. Buna ek olarak, Google Play Developer API hem Purchases.products hem de Purchases.subscriptions için onay boole değerleri içerir. Bir satın alma işlemini onaylamadan önce, satın alma işleminin zaten onaylanmış olup olmadığını belirlemek için bu yöntemleri kullandığınızdan emin olun.

Aşağıdaki yöntemlerden birini kullanarak bir satın alma işlemini onaylayabilirsiniz:

  • Tüketilebilir ürünler için istemci API'sinde bulunan consumeAsync() değerini kullanın.
  • Tüketilmeyen ürünler için istemci API'sinde bulunan acknowledgePurchase() değerini kullanın.
  • Server API'de yeni bir acknowledge() yöntemi de mevcuttur.

BillingFlowParams.setSku() kaldırıldı

Daha önce kullanımdan kaldırılmış olan BillingFlowParams#setSku() yöntemi bu sürümde kaldırılmıştır. Satın alma akışında ürünleri oluşturmadan önce, sonuç olarak elde edilen SkuDetails nesnesini BillingFlowParams.Builder.setSkuDetails() öğesine ileterek BillingClient.querySkuDetailsAsync() yöntemini çağırmanız gerekir.

Kod örnekleri için Google Play Faturalandırma Kitaplığı'nı kullanma bölümüne bakın.

Geliştirici yükü desteklenir

Google Play Faturalandırma kitaplığının 2.0 sürümünde geliştirici yükü (satın alma işlemlerine eklenebilecek rastgele dizeler) için destek eklendi. Bir satın alma işlemine geliştirici yük parametresi ekleyebilirsiniz, ancak bunu yalnızca satın alma işlemi onaylandığında veya tüketildiğinde yapabilirsiniz. Bu, AIDL'deki geliştirici yükünden farklıdır. Burada yük satın alma akışı başlatılırken belirtilebilir. Satın alma işlemleri artık uygulamanızın dışından başlatılabildiğinden bu değişiklik, satın alma işlemlerine her zaman bir yük ekleme fırsatı sunar.

Yeni kitaplıktaki yüke erişmek için Purchase nesneleri artık bir getDeveloperPayload() yöntemi içeriyor.

Tutarlı teklifler

İndirimli bir SKU sunduğunuzda Google Play artık SKU'nun orijinal fiyatını döndürüyor. Böylece kullanıcılara indirim aldıklarını gösterebilirsiniz.

SkuDetails, orijinal SKU fiyatını almak için iki yeni yöntem içerir:

Beklemede olan işlemler

Google Play Faturalandırma Kitaplığı'nın 2.0 sürümüyle, yararlanma hakkı vermeden önce ek işlemin gerekli olduğu satın alma işlemlerini desteklemeniz gerekir. Örneğin, bir kullanıcı uygulama içi ürününüzü fiziksel mağazadan nakit kullanarak satın almayı tercih edebilir. Bu, işlemin uygulamanızın dışında tamamlandığı anlamına gelir. Bu senaryoda, yalnızca kullanıcı işlemi tamamladıktan sonra yararlanma hakkı vermelisiniz.

Bekleyen satın alma işlemlerini etkinleştirmek için uygulamanızı başlatma işleminin bir parçası olarak enablePendingPurchases() çağrısı yapın.

Satın alma durumunun PURCHASED veya PENDING olduğunu belirlemek için Purchase.getPurchaseState() aracını kullanın. Yararlanma hakkı yalnızca eyalet PURCHASED olduğunda vermeniz gerektiğini unutmayın. Aşağıdakileri yaparak Purchase durum güncellemelerini kontrol etmeniz gerekir:

  1. Uygulamanızı başlatırken kullanıcıyla ilişkili ve tüketilmemiş ürünlerin listesini almak için BillingClient.queryPurchases() numaralı telefonu arayın.
  2. Döndürülen Purchase nesnede Purchase.getPurchaseState() işlevini çağırın.
  3. Purchase nesnelerinde yapılan değişikliklere yanıt vermek için onPurchasesUpdated() yöntemini uygulayın.

Ayrıca Google Play Geliştirici API'si, Purchases.products için bir PENDING durumu içerir. Bekleyen işlemler aboneliklerde desteklenmez.

Bu sürümde ayrıca yeni bir gerçek zamanlı geliştirici bildirim türü olan OneTimeProductNotification kullanıma sunuldu. Bu bildirim türü, değeri ONE_TIME_PRODUCT_PURCHASED veya ONE_TIME_PRODUCT_CANCELED olan tek bir mesaj içerir. Bu bildirim türü yalnızca gecikmiş ödeme şekilleriyle (ör. nakit) ilişkili satın alma işlemleri için gönderilir.

Bekleyen satın alma işlemlerini onaylarken, yalnızca satın alma durumu PURCHASED olduğunda (PENDING değil) onaylayın.

API değişiklikleri

Google Play Faturalandırma kitaplığının 2.0 sürümü, yeni özellikleri desteklemek ve mevcut işlevleri netleştirmek için çeşitli API değişiklikleri içerir.

tüketim Eş zamansız

consumeAsync() artık purchaseToken yerine bir ConsumeParams nesnesi alıyor. ConsumeParams, purchaseToken öğesinin yanı sıra isteğe bağlı bir geliştirici yükünü içerir.

consumeAsync() uygulamasının önceki sürümü bu sürümde kaldırıldı.

queryPurchaseHistoryAsync

Karışıklığı en aza indirmek için queryPurchaseHistoryAsync() artık Purchase nesnesi yerine PurchaseHistoryRecord nesnesi döndürüyor. PurchaseHistoryRecord nesnesi, yalnızca queryPurchaseHistoryAsync() tarafından döndürülen değerleri yansıtması dışında Purchase nesnesiyle aynıdır. Ayrıca, autoRenewing, orderId ve packageName alanlarını içermez. Döndürülen verilerde hiçbir şeyin değişmediğini unutmayın. queryPurchaseHistoryAsync(), öncekiyle aynı verileri döndürür.

BillingResult dönüş değerleri

Önceden BillingResponse tam sayı değeri döndüren API'ler artık BillingResult nesnesi döndürüyor. BillingResult, BillingResponse tam sayısının yanı sıra hataları teşhis etmek için kullanabileceğiniz bir hata ayıklama dizesi içerir. Hata ayıklama dizesi en-US yerel ayarı kullanır ve son kullanıcılara gösterilmesi amaçlanmamıştır.

Hata düzeltmeleri

Google Play Faturalandırma Kitaplığı 1.2.2 Sürümü (07.03.2019)

Google Play Faturalandırma Kitaplığı'nın 1.2.2 sürümü kullanıma sunuldu. Bu sürüm aşağıdaki değişiklikleri içermektedir.

Hata düzeltmeleri

  • v1.2.1'de ortaya çıkan ileti dizisi sorunu giderildi. Arka plandaki çağrılar artık ana ileti dizisini engellemez.

Diğer değişiklikler

  • Ana iş parçacığının kullanılması önerilse de artık Google Play Faturalandırma Kitaplığı'nı bir arka plan iş parçacığından örnek oluşturabilirsiniz.
  • Örnekleme, ANR'lere neden olma olasılığını azaltmak için arka plan iş parçacığına tamamen taşındı.

Play Faturalandırma Kitaplığı 1.2.1 Sürümü (04.03.2019)

Google Play Faturalandırma Kitaplığı'nın 1.2.1 sürümü kullanıma sunuldu. Bu sürüm aşağıdaki değişiklikleri içermektedir.

Önemli değişiklikler

Diğer değişiklikler

  • Testi kolaylaştırmak amacıyla PurchasesResult ve SkuDetailsResult için herkese açık oluşturucular eklendi.
  • SkuDetails nesne, getOriginalJson() adlı yeni bir yöntemi kullanabilir.
  • Tüm AIDL hizmet çağrıları artık arka plan ileti dizileri tarafından işlenmektedir.

Hata düzeltmeleri

  • Boş geri çağırma işleyicileri artık herkese açık API'lere iletilmez.

Google Play Faturalandırma Kitaplığı 1.2 Sürümü (18.10.2018)

Google Play Faturalandırma Kitaplığı'nın 1.2 sürümü kullanıma sunuldu. Bu sürüm aşağıdaki değişiklikleri içermektedir.

Değişiklik özeti

  • Google Play Faturalandırma Kitaplığı artık Android Yazılım Geliştirme Kiti Lisans Sözleşmesi kapsamında lisanslanmıştır.
  • Abonelik fiyatında beklemede olan bir değişikliği kullanıcıların incelemesini isteyen launchPriceChangeConfirmationFlow API eklendi.
  • Bir kullanıcının aboneliğini yükseltirken veya düşürürken yeni bir kullanım oranı modu (DEFERRED) için destek eklendi.
  • BillingFlowParams sınıfında setSku(), setSkuDetails() ile değiştirildi.
  • Küçük hata düzeltmeleri ve kod optimizasyonları.

Fiyat değişikliği onayı

Artık Google Play Console'da bir aboneliğin fiyatını değiştirebilir ve uygulamanıza giren kullanıcılardan yeni fiyatı inceleyip kabul etmelerini isteyebilirsiniz.

Bu API'yi kullanmak için abonelik ürününün skuDetails ile bir PriceChangeFlowParams nesnesi oluşturun ve launchPriceChangeConfirmationFlow() çağrısı yapın. Fiyat değişikliği onay akışı tamamlandığında sonucu işlemek için aşağıdaki kod snippet'inde gösterildiği gibi PriceChangeConfirmationListener uygulayın:

Kotlin

val priceChangeFlowParams = PriceChangeFlowParams.newBuilder()
    .setSkuDetails(skuDetailsOfThePriceChangedSubscription)
    .build()

billingClient.launchPriceChangeConfirmationFlow(activity,
        priceChangeFlowParams,
        object : PriceChangeConfirmationListener() {
            override fun onPriceChangeConfirmationResult(responseCode: Int) {
                // Handle the result.
            }
        })

Java

PriceChangeFlowParams priceChangeFlowParams =
        PriceChangeFlowParams.newBuilder()
    .setSkuDetails(skuDetailsOfThePriceChangedSubscription)
    .build();

billingClient.launchPriceChangeConfirmationFlow(activity,
        priceChangeFlowParams,
        new PriceChangeConfirmationListener() {
            @Override
            public void onPriceChangeConfirmationResult(int responseCode) {
                // Handle the result.
            }
        });

Fiyat değişikliği onay akışında, yeni fiyat bilgilerini içeren ve kullanıcılardan yeni fiyatı kabul etmelerini isteyen bir iletişim kutusu görüntülenir. Bu akış BillingClient.BillingResponse türünde bir yanıt kodu döndürür.

Yeni oranlama modu

Bir kullanıcının aboneliğini yükseltirken veya eski sürüme geçirirken yeni bir oranlama modu (DEFERRED) kullanabilirsiniz. Bu mod, bir sonraki yenilemede kullanıcının aboneliğini günceller. Bu orantı modunun nasıl ayarlanacağı hakkında daha fazla bilgi edinmek için Orantılıleştirme modunu ayarlama bölümüne bakın.

SKU ayrıntılarını ayarlamanın yeni yöntemi

BillingFlowParams sınıfında setSku() yöntemi kullanımdan kaldırılmıştır. Bu değişiklik, Google Play Faturalandırma akışının optimize edilmesini sağlar.

Uygulama içi faturalandırma istemcinizde yeni bir BillingFlowParams örneği oluştururken, aşağıdaki kod snippet'inde gösterildiği gibi doğrudan setSkuDetails() kullanarak JSON nesnesiyle çalışmanızı öneririz:

BillingFlowParams Builder sınıfında, setSku() yöntemi kullanımdan kaldırılmıştır. Bunun yerine, aşağıdaki kod snippet'inde gösterildiği gibi setSkuDetails() yöntemini kullanın. setSkuDetails() nesnesine iletilen nesne querySkuDetailsAsync() yönteminden gelir.

Kotlin

private lateinit var mBillingClient: BillingClient
private val mSkuDetailsMap = HashMap<String, SkuDetails>()

private fun querySkuDetails() {
    val skuDetailsParamsBuilder = SkuDetailsParams.newBuilder()
    mBillingClient.querySkuDetailsAsync(skuDetailsParamsBuilder.build()
    ) { responseCode, skuDetailsList ->
        if (responseCode == 0) {
            for (skuDetails in skuDetailsList) {
                mSkuDetailsMap[skuDetails.sku] = skuDetails
            }
        }
    }
}

private fun startPurchase(skuId: String) {
    val billingFlowParams = BillingFlowParams.newBuilder()
    .setSkuDetails(mSkuDetailsMap[skuId])
    .build()
}

Java

private BillingClient mBillingClient;
private Map<String, SkuDetails> mSkuDetailsMap = new HashMap<>();

private void querySkuDetails() {
    SkuDetailsParams.Builder skuDetailsParamsBuilder
            = SkuDetailsParams.newBuilder();
    mBillingClient.querySkuDetailsAsync(skuDetailsParamsBuilder.build(),
            new SkuDetailsResponseListener() {
                @Override
                public void onSkuDetailsResponse(int responseCode,
                        List<SkuDetails> skuDetailsList) {
                    if (responseCode == 0) {
                        for (SkuDetails skuDetails : skuDetailsList) {
                            mSkuDetailsMap.put(skuDetails.getSku(), skuDetails);
                        }
                    }
                }
            });
}

private void startPurchase(String skuId) {
    BillingFlowParams billingFlowParams = BillingFlowParams.newBuilder()
            .setSkuDetails(mSkuDetailsMap.get(skuId))
            .build();
}

Play Faturalandırma Kitaplığı 1.1 Sürümü (07.05.2018)

Google Play Faturalandırma Kitaplığı'nın 1.1 sürümü kullanıma sunuldu. Bu sürüm aşağıdaki değişiklikleri içermektedir.

Değişiklik özeti

  • Mevcut bir aboneliğin düzeyini yükseltirken/düşürürken BillingFlowParams'da kullanıma oranlı kullanım modunu belirtme desteği eklendi.
  • BillingFlowParams içindeki replaceSkusProration boole işareti artık desteklenmiyor. Bunun yerine replaceSkusProrationMode politikasını kullanın.
  • launchBillingFlow() artık başarısız yanıtlar için geri çağırmayı tetikliyor.

Davranış değişiklikleri

Google Play Faturalandırma kitaplığının 1.1 sürümü, aşağıdaki davranış değişikliklerini içerir.

Geliştiriciler replaceSkusProrationMode ayarını BillingFlowParams sınıfında ayarlayabilir

ProrationMode, bir kullanıcının aboneliğini yükseltirken veya eski sürüme geçirirken orantılı bölüştürme türüyle ilgili daha fazla ayrıntı sağlar.

Kotlin

BillingFlowParams.newBuilder()
    .setSku(skuId)
    .setType(billingType)
    .setOldSku(oldSku)
    .setReplaceSkusProrationMode(replaceSkusProrationMode)
    .build()

Java

BillingFlowParams.newBuilder()
    .setSku(skuId)
    .setType(billingType)
    .setOldSku(oldSku)
    .setReplaceSkusProrationMode(replaceSkusProrationMode)
    .build();

Google Play şu anda aşağıdaki oranlı paylaşım modlarını desteklemektedir:

IMMEDIATE_WITH_TIME_PRORATION Değişim hemen geçerli olur ve yeni geçerlilik süresi kullanım kadar ödeme alınır ya da kullanıcıdan ödeme alınır. Bu, şu anda varsayılan davranıştır.
IMMEDIATE_AND_CHARGE_PRORATED_PRICE Değişim hemen geçerli olur ve faturalandırma döngüsü aynı kalır. Kalan süre için ücret alınır.

Not: Bu seçenek yalnızca aboneliğin yeni sürüme geçirilmesinde kullanılabilir.

IMMEDIATE_WITHOUT_PRORATION Değişim işlemi hemen geçerli olur ve bir sonraki yinelenme tarihinde yeni fiyat üzerinden ücret alınır. Faturalandırma döngüsü aynı kalır.

replaceSkusProration artık BillingFlowParams sınıfında desteklenmiyor

Geliştiriciler eskiden abonelik yükseltme isteği için orantılı bir tutar almak üzere bir boole flag'i ayarlayabiliyordu. Daha ayrıntılı orantılı hesaplama talimatı içeren ProrationMode öğesini desteklediğimiz için bu boole flag'i artık desteklenmemektedir.

launchBillingFlow() artık başarısız yanıtlar için geri çağırmayı tetikliyor

Faturalandırma Kitaplığı her zaman PurhcasesUpdatedListener geri çağırma işlemini tetikler ve eşzamansız olarak BillingResponse döndürür. BillingResponse'in eşzamanlı döndürülen değeri de korunur.

Hata düzeltmeleri

  • Hizmetin bağlantısı kesildiğinde eşzamansız yöntemlerde düzgün bir şekilde çıkış yapılır.
  • Builder param nesneleri artık oluşturulmuş nesneleri değiştirmemektedir.
  • Sorun 68087141: launchBillingFlow() artık başarısız yanıtlar için geri çağırmayı tetikliyor.

Google Play Faturalandırma Kitaplığı 1.0 Sürümü (19.09.2017, Duyuru)

Google Play Faturalandırma Kitaplığı'nın 1.0 sürümü kullanıma sunuldu. Bu sürüm aşağıdaki değişiklikleri içermektedir.

Önemli değişiklikler

  • Kitaplığın manifest dosyasına yerleştirilmiş faturalandırma izni. Artık Android manifestinin içine com.android.vending.BILLING izninin eklenmesine gerek yoktur.
  • BillingClient.Builder sınıfına yeni oluşturucu eklendi.
  • SKU'ları sorgulama yöntemlerinde kullanılmak üzere SkuDetailsParams sınıfı için derleyici kalıbı kullanıma sunuldu.
  • Tutarlılık sağlamak için çeşitli API yöntemleri güncellendi (aynı dönüş bağımsız değişkeni adları ve sırası).

Davranış değişiklikleri

Google Play Faturalandırma kitaplığının 1.0 sürümü aşağıdaki davranış değişikliklerini içerir.

BillingClient.Builder sınıfı

BillingClient.Builder artık newBuilder kalıbıyla başlatılıyor:

Kotlin

billingClient = BillingClient.newBuilder(context).setListener(this).build()

Java

billingClient = BillingClient.newBuilder(context).setListener(this).build();

LaunchBillingFlow yöntemi artık BillingFlowParams sınıfı kullanılarak çağrılıyor

launchBillingFlow() yöntemi, bir satın alma veya abonelik faturalandırma akışını başlatmak için isteğe özel parametrelerle başlatılan bir BillingFlowParams örneği alır:

Kotlin

BillingFlowParams.newBuilder().setSku(skuId)
        .setType(billingType)
        .setOldSku(oldSku)
        .build()

// Then, use the BillingFlowParams to start the purchase flow
val responseCode = billingClient.launchBillingFlow(builder.build())

Java

BillingFlowParams.newBuilder().setSku(skuId)
                              .setType(billingType)
                              .setOldSku(oldSku)
                              .build();

// Then, use the BillingFlowParams to start the purchase flow
int responseCode = billingClient.launchBillingFlow(builder.build());

Mevcut ürünleri sorgulamanın yeni yolu

queryPurchaseHistoryAsync() ve querySkuDetailsAsync() yöntemleri için bağımsız değişkenler bir Builder kalıbına sarmalanmıştır:

Kotlin

val params = SkuDetailsParams.newBuilder()
params.setSkusList(skuList)
        .setType(itemType)
billingClient.querySkuDetailsAsync(params.build(), object : SkuDetailsResponseListener() {
    ...
})

Java

SkuDetailsParams.Builder params = SkuDetailsParams.newBuilder();
params.setSkusList(skuList)
        .setType(itemType);
billingClient.querySkuDetailsAsync(params.build(), new SkuDetailsResponseListener() {...})

Size kolaylık sağlamak ve API'mizde tutarlılığı sağlamak için sonuç, önceki sarmalayıcı sınıfı yerine sonuç kodu ve SkuDetails nesnelerinin bir listesi aracılığıyla döndürülür:

Kotlin

fun onSkuDetailsResponse(@BillingResponse responseCode: Int, skuDetailsList: List<SkuDetails>)

Java

public void onSkuDetailsResponse(@BillingResponse int responseCode, List<SkuDetails> skuDetailsList)

onConsumeResponse() yönteminde parametre sırası değiştirildi

ConsumeResponseListener arayüzündeki onConsumeResponse bağımsız değişkenlerinin sırası, API'mizde tutarlı olacak şekilde değiştirildi:

Kotlin

fun onConsumeResponse(@BillingResponse responseCode: Int, outToken: String)

Java

public void onConsumeResponse(@BillingResponse int responseCode, String outToken)

Sarmalanmamış PurchaseResult nesnesi

PurchaseResult, API'mizde tutarlı olacak şekilde geliştirildi:

Kotlin

fun onPurchaseHistoryResponse(@BillingResponse responseCode: Int, purchasesList: List<Purchase>)

Java

void onPurchaseHistoryResponse(@BillingResponse int responseCode, List<Purchase> purchasesList)

Hata düzeltmeleri

Geliştirici Önizlemesi 1 Sürümü (12.06.2017, Duyuru)

Faturalandırmayla ilgili geliştirme sürecini basitleştirmek için tasarlanan geliştirici önizlemesi, geliştiricilerin uygulama mimarisi ve gezinme yapısı gibi Android uygulamasına özgü mantığı uygulamaya odaklamalarına olanak tanımaktadır.

Kitaplık, Android uygulamalarınızı Google Play Faturalandırma API'si ile entegre ederken kullanabileceğiniz çeşitli pratik sınıflar ve özellikler içerir. Kitaplık ayrıca Android Arayüz Tanımlama Dili (AIDL) hizmetinin üzerine bir soyutlama katmanı sağlayarak geliştiricilerin uygulama ile Google Play Faturalandırma API'si arasındaki arayüzü tanımlamasını kolaylaştırır.