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.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 yerine yeni ReplacementMode sıralaması eklendi.

    Geriye dönük uyumluluk nedeniyle ProrationMode hâlâ 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şturulurdu. 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ılmış olarak işaretlenmiş olan queryPurchases ve launchPriceConfirmationFlow yöntemleri artık 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 bölümünü inceleyin.

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

    PBL 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 sürüm 6.0.0'dan itibaren işlemedeki zaman aşımından kaynaklanan hatalar, mevcut SERVICE_TIMEOUT yerine SERVICE_UNAVAILABLE olarak döndürülür.

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

  • SERVICE_TIMEOUT kaldırıldı.

    PBL 6.0.0 sürümünden itibaren SERVICE_TIMEOUT döndürülmez. PBL'nin önceki sürümleri bu kodu döndürmeye devam eder.

  • Ek günlük kaydı eklendi.

    Play Faturalandırma Kitaplığı 6 sürümünde, API kullanımı (başarı ve hata gibi) ve hizmet bağlantısı sorunlarıyla ilgili analiz sağlayan ek günlük kayıtları bulunur. Bu bilgiler, Play Faturalandırma Kitaplığı'nın performansını iyileştirmek ve 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 sunuldu.

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 sunuldu.

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 modeli kullanıma sunduk. 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şiselleştirilmiş 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'da 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ışı örneklenirken 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 akışı üzerinden tamamlar.

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

Google Play Faturalandırma Kitaplığı'nın ve Kotlin uzantılarının 4.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ığı 4.0 Sürümü (18.05.2021)

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

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 artık kullanılabilir.

Java ve Kotlin Hata düzeltmeleri

  • endConnection() çağrıldığında bellek sızıntısını düzeltin.
  • Tek görev başlatma modunu kullanan uygulamalar tarafından Google Play Faturalandırma Kitaplığı'nın 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 işlemi tetiklenir.

Unity Hata düzeltmeleri

  • 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 bellek sızıntısını düzeltmek ve satın alma işlemlerini önleyen sorunu çözmek için Java sürüm 3.0.3'e güncelleyin.

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ş yordamın "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 ve sonraki sürümlerle 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 durdurulup geri yüklenmesi halinde 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ı.
  • Desteği sonlandırılan BillingFlowParams.setAccountId() ve BillingFlowParams.setDeveloperId() yöntemleri kaldırıldı.
  • Desteği sonlandırılan BillingFlowParams.setOldSkus(String oldSku) ve BillingFlowParams.addOldSku(String oldSku) yöntemleri kaldırıldı.
  • Boş değer atanabilirliği ile ilgili ek açıklamalar eklendi.

Hata düzeltmeleri

  • SkuDetails.getIntroductoryPriceCycles() artık String yerine int değerini döndürüyor.
  • Hiçbir 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 kullandığı 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 2.2.0 sürümü, 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 oluşturma ihtiyacının yerini aldı. 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 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 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 da bir sürümünü yayınladık. Unity uygulama içi satın alma API'sini kullanan oyun geliştiriciler, tüm Google Play Faturalandırma Kitaplığı 2 özelliklerinden yararlanmak ve sonraki yükseltmeleri Google Play Faturalandırma Kitaplığı'nın gelecek sürümlerine kolayca yükseltmek için hemen yükseltme yapabilirler.

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ı, daha iyi null güvenlik ve eş yordamlar sunan Kotlin tüketimi için 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

  • Cihazda birden fazla hesap aynı SKU'ya sahip olduğunda durumu netleştirmek için BillingFlowParams'te 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ümanlarıyla ilgili güncellemeler içerir ve kitaplık işlevlerini 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çerir.

Hata düzeltmeleri

  • Hata ayıklama mesajlarının bazı durumlarda 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ü artık kullanılabilir. Bu sürüm aşağıdaki değişiklikleri içerir.

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 almayı 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 sağlaması için, kullanıcıya yararlanma hakkı verdikten sonra Google Play Faturalandırma Kitaplığı üzerinden 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 (2.0 sürümünde yeni) için üç günlük aralık, satın alma işlemi PURCHASED durumuna taşındığında başlar ve PENDING durumundayken geçerli olmaz.

Abonelikler için yeni satın alma jetonu bulunan tüm satın alma işlemlerini onaylamanız gerekir. Yani ilk satın alma işlemlerinin, plan değişikliklerinin ve yeniden kayıtların onaylanması 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. Ayrıca 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.

Bir satın alma işlemini aşağıdaki yöntemlerden birini kullanarak 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ı

Önceden 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 BillingClient.querySkuDetailsAsync() yöntemini çağırarak elde edilen SkuDetails nesnesini BillingFlowParams.Builder.setSkuDetails() öğesine iletmeniz 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, satın alma işlemlerine eklenebilecek rastgele dizeler olan geliştirici yükü desteği eklendi. Bir satın alma işlemine geliştirici yük parametresi ekleyebilirsiniz, ancak bunu yalnızca satın alma onaylandığında veya tüketildiğinde ekleyebilirsiniz. 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ği için bu değişiklik, satın alma işlemlerine her zaman bir yük ekleme fırsatına sahip olmanızı sağlar.

Yeni kitaplıktaki yüke erişmek için Purchase nesneleri artık getDeveloperPayload() yöntemini 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şlem gerektiren satın alma işlemlerini desteklemeniz gerekir. Örneğin, bir kullanıcı uygulama içi ürününüzü fiziksel bir mağazadan nakit kullanarak satın almayı tercih edebilir. Bu, işlemin uygulamanızın dışında tamamlandığı anlamına gelir. Bu senaryoda, yararlanma hakkı için yalnızca kullanıcı işlemi tamamladıktan sonra izin vermelisiniz.

Bekleyen satın alma işlemlerini etkinleştirmek için uygulamanızı başlatma işleminin bir parçası olarak enablePendingPurchases() numaralı telefonu arayın.

Satın alma durumunun PURCHASED veya PENDING olduğunu belirlemek için Purchase.getPurchaseState() özelliğini kullanın. Yararlanma hakkı yalnızca eyalet PURCHASED olduğunda vermeniz gerektiğini unutmayın. Purchase durum güncellemelerini kontrol etmek için şunları yapın:

  1. Uygulamanızı başlatırken, kullanıcıyla ilişkilendirilmiş ve tüketilmemiş ürünlerin listesini almak için BillingClient.queryPurchases() numaralı telefonu arayın.
  2. Döndürülen her bir Purchase nesnesinde Purchase.getPurchaseState() yöntemini ç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 abonelikler için desteklenmez.

Bu sürümde yeni bir gerçek zamanlı geliştirici bildirim türü de OneTimeProductNotification kullanıma sunuluyor. 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 nakit ödeme gibi geciken ödeme şekilleriyle ilişkili satın alma işlemleri için gönderilir.

Bekleyen satın alma işlemlerini onaylarken yalnızca satın alma durumu PENDING değil, PURCHASED olduğunda 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.

eş zamansız tüketim

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

consumeAsync() uygulamasının önceki sürümü bu sürümden 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 Purchase nesnesiyle aynıdır ancak yalnızca queryPurchaseHistoryAsync() tarafından döndürülen değerleri yansıtır ve 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

Daha önce BillingResponse tam sayı değeri döndüren API'ler artık BillingResult nesnesi döndürüyor. BillingResult, hataları teşhis etmek için kullanabileceğiniz bir hata ayıklama dizesinin yanı sıra BillingResponse tam sayısını 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çerir.

Hata düzeltmeleri

  • 1.2.1 sürümünde ortaya çıkan bir ileti dizisi sorunu düzeltildi. Arka plandaki çağrılar artık ana ileti dizisini engellemez.

Diğer değişiklikler

  • Yine de ana iş parçacığının kullanılması önerilir ancak artık Google Play Faturalandırma Kitaplığı'nı bir arka plan iş parçacığından örnekleyebilirsiniz.
  • Örnekleme, ANR'lere neden olma olasılığını azaltmak için arka plan iş parçacığına tamamen taşınmıştır.

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 sunulmuştur. Bu sürüm aşağıdaki değişiklikleri içerir.

Ö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 nesneleri getOriginalJson() adlı yeni bir yöntemi kullanabilir.
  • Tüm AIDL hizmet çağrıları artık arka plandaki 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çerir.

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.
  • Kullanıcıların abonelik fiyatıyla ilgili beklemedeki bir değişikliği incelemelerini isteyen launchPriceChangeConfirmationFlow API eklendi.
  • Bir kullanıcının aboneliğini yükseltirken veya düşürürken yeni bir bölüşme modu (DEFERRED) için destek eklendi.
  • BillingFlowParams sınıfında, setSku() öğesi 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 girdiklerinde kullanıcılardan yeni fiyatı inceleyip kabul etmelerini isteyebilirsiniz.

Bu API'yi kullanmak için abonelik ürününün skuDetails kullanarak 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österilir. 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 düşürürken yeni bir bölüşme modu (DEFERRED) kullanabilirsiniz. Bu mod, kullanıcının aboneliğini bir sonraki yenilendiğinde günceller. Bu orantılı modun nasıl ayarlanacağı hakkında daha fazla bilgi edinmek için Bölüştürme 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 Oluşturucu 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çerir.

Değişiklik özeti

  • Mevcut bir aboneliği yeni sürüme geçirirken/eski sürüme geçirirken BillingFlowParams'da bölüştürme 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 aracını BillingFlowParams sınıfında ayarlayabilirler

ProrationMode, bir kullanıcının aboneliğini yükseltirken veya eski sürüme geçirirken gerçekleştirilen orantılı dağıtım 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 bölüştürme modlarını desteklemektedir:

IMMEDIATE_WITH_TIME_PRORATION Değişim hemen geçerli olur ve yeni geçerlilik süresi orantılı olarak hesaplanır ve 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 abonelik yükseltmesi için kullanılabilir.

IMMEDIATE_WITHOUT_PRORATION Değişim hemen geçerli olur ve bir sonraki yinelemede 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 ücret almak üzere bir boole işareti ayarlayabiliyordu. Daha ayrıntılı oranlama talimatı içeren ProrationMode özelliğini desteklediğimiz için bu boole işareti artık desteklenmemektedir.

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

Faturalandırma Kitaplığı her zaman PurhcasesUpdatedListener geri çağırmasını 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 erkenden düzgün şekilde çıkış yapar.
  • Builder param nesneleri artık derlenmiş 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çerir.

Ö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 derleyici eklendi.
  • SKU'ları sorgulama yöntemlerinde kullanılacak SkuDetailsParams sınıfı için oluşturucu kalıbı kullanıma sunuldu.
  • Tutarlılık sağlamak için (aynı döndürülen bağımsız değişken adları ve sırası) birkaç API yöntemi güncellendi.

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 yeniBuilder 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 için faturalandırma akışını başlatmak amacıyla 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 Oluşturucu kalıbına sarmalandı:

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() {...})

Sonuç, size kolaylık sağlamak ve API'mizde tutarlı olması için önceki sarmalayıcı sınıfı yerine artık 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

API genelinde tutarlı olması için PurchaseResult paketi açıldı:

Kotlin

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

Java

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

Hata düzeltmeleri

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

Faturalandırma söz konusu olduğunda geliştirme sürecini basitleştirmeyi amaçlayan geliştirici önizlemesi kullanıma sunuldu. Bu önizleme sayesinde geliştiriciler, çabalarını uygulama mimarisi ve gezinme yapısı gibi Android uygulamasına özgü mantığı uygulamaya odaklayabilir.

Kitaplık, Android uygulamalarınızı Google Play Billing API ile entegre ederken kullanabileceğiniz birçok kullanışlı sınıf ve özellik 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.