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

Bu doküman, Google Play Faturalandırma Kitaplığı'nın sürüm notlarını içerir.

Google Play Faturalandırma Kitaplığı 7.1.1 sürümü (03.10.2024)

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

Hata düzeltmeleri

Google Play Faturalandırma Kitaplığı 7.1.0 sürümü (19.09.2024)

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

Değişiklik özeti

  • Bağlantı durumu ve yönetimiyle ilgili mesaj dizisi güvenliği iyileştirildi.
  • Play Faturalandırma Kitaplığı 7.1.1'de tam olarak kullanıma sunulan BillingResult yanıt kodlarını test etmek için kısmi değişiklikler yapıldı. Bu özelliği kullanarak entegrasyonunuzu test etmek için Play Faturalandırma Kitaplığı 7.1.1 sürümüne geçmeniz gerekir. Yalnızca faturalandırma geçersiz kılma testinin etkin olduğu uygulamaları etkileyen ve normal kullanımı etkilemeyen bir hata mevcuttur. Daha fazla bilgi için BillingResult yanıt kodlarını test etme başlıklı makaleyi inceleyin.

Google Play Faturalandırma Kitaplığı 7.0.0 Sürümü (14.05.2024)

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

Değişiklik özeti

Google Play Faturalandırma Kitaplığı 6.2.1 Sürümü (16.04.2024)

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

Değişiklik özeti

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ığı ve Kotlin uzantılarının 6.1.0 sürümü kullanıma sunuldu.

Değişiklik özeti

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

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

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ığı ve Kotlin uzantılarının 6.0.0 sürümü kullanıma sunuldu.

Değişiklik özeti

  • ProrationMode yerine yeni bir ReplacementMode enum eklendi.

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

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

    Önceden, 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şturulmaz. Bu satın alma işlemleri için sipariş kimliği, satın alma işlemi PURCHASED durumuna taşındıktan sonra doldurulur.

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

    Daha önce kullanımdan kaldırıldı olarak işaretlenen queryPurchases ve launchPriceConfirmationFlow yöntemleri Play Billing Library 6.0.0'dan kaldırıldı. Geliştiriciler queryPurchases yerine queryPurchasesAsync kullanmalıdır. launchPriceConfirmationFlow alternatifleri için Fiyat değişiklikleri bölümüne bakın.

  • 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 bildirilmişti.

  • SERVICE_UNAVAILABLE ve SERVICE_TIMEOUT güncellendi.

    PBL 6.0.0 sürümünden itibaren, işleme sırasında zaman aşımı nedeniyle oluşan hatalar mevcut SERVICE_TIMEOUT yerine SERVICE_UNAVAILABLE olarak döndürülecek.

    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 artık döndürülmeyecektir. 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ü, API kullanımı (başarı ve başarısızlık gibi) ve hizmet bağlantısı sorunları hakkında bilgi sağlayan ek günlük kaydı içerir. Bu bilgiler, Play Billing Library'nin performansını iyileştirmek ve hatalar için daha iyi destek sağlamak amacıyla kullanılır.

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

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

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

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 kılavuzuna bakı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şiye özel fiyat belirtme başlıklı makaleyi inceleyin.
  • Daha önce desteği sonlandı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 artık kullanılmıyor 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ışı başlatma başlıklı makaleyi inceleyin.
  • Daha önce satın alma akışı oluştururken kullanılan setVrPurchaseFlow() kaldırıldı. Önceki sürümlerde bu yöntem, kullanıcıyı Android cihazında satın alma işlemini tamamlaması için yönlendiriyordu. Bu yöntemi kaldırdıktan sonra 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ığı ve Kotlin uzantılarının 4.1.0 sürümü kullanıma sunuldu.

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

Değişiklik özeti

  • Abonelik ödemelerinin reddedilmesiyle ilgili işlemleri kolaylaştırmak için BillingClient.showInAppMessages() eklendi. Abonelik ödemelerinin reddedilmesiyle ilgili sorunları gidermek için uygulama içi mesajlaşmayı kullanma hakkında daha fazla bilgi edinmek isterseniz Ödeme reddedilmelerini yönetme başlıklı makaleyi inceleyin.

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

Google Play Faturalandırma Kitaplığı ve Kotlin uzantılarının 4.0.0 sürümü 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ığı, Kotlin uzantısı ve Unity eklentisinin 3.0.3 sürümü kullanıma sunuldu.

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 durumdayken onPurchasesUpdated() geri çağırma işlevi tetiklenir.

Unity hata düzeltmeleri

  • Bellek sızıntısını düzeltmek ve bir uygulama Android başlatıcıdan devam ettirildiğinde ve askıya alınmadan önce faturalandırma iletişim kutusu görünür durumdayken satın alma işlemlerini engelleyen sorunu çözmek için Java 3.0.3 sürümüne güncelleyin.

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

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

Hata düzeltmeleri

  • Kotlin uzantısında, coroutine'un "Already resumed" (Zaten devam ettirilmiş) hatasıyla başarısız olduğu bir hata düzeltildi.
  • Kotlin uzantısı, kotlinx.coroutines kitaplığının 1.4 ve sonraki sürümleriyle 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ığı ve Kotlin uzantısının 3.0.1 sürümü kullanıma sunuldu.

Hata düzeltmeleri

  • Uygulamanın faturalandırma akışı sırasında kapatılması ve geri yüklenmesi durumunda PurchasesUpdatedListener'ün satın alma sonucuyla çağrılamaması sorunu düzeltildi.

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

Google Play Faturalandırma Kitaplığı, Kotlin uzantısı ve Unity eklentisinin 3.0.0 sürümü kullanıma sunuldu.

Değişiklik özeti

  • Ödüllü SKU desteği kaldırıldı.
  • ChildDirected ve UnderAgeOfConsent parametreleri kaldırıldı.
  • Desteği sonlandı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şluk kabul edilebilirliği ek açıklamaları eklendi.

Hata düzeltmeleri

  • SkuDetails.getIntroductoryPriceCycles() şimdi String yerine int döndürüyor.
  • Ek parametre ayarlanmamasına rağmen faturalandırma akışının ek parametre içermiş gibi 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ğımlı 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'nın 2.2.0 sürümü, geliştiricilerin satın alma işlemlerinin doğru kullanıcıyla ilişkilendirilmesini sağlamalarına yardımcı olan işlevler sunar. Bu değişiklikler, geliştirici yükü temel alınarak özel çözümler oluşturma ihtiyacını ortadan kaldırır. Bu güncelleme kapsamında, geliştirici yükü işlevinin desteği sonlandırıldı ve gelecekteki bir sürümde kaldırılacak. Önerilen alternatifler de dahil olmak üzere daha fazla bilgi için Geliştirici yükü başlıklı makaleyi inceleyin.

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, kitaplığın Unity ile kullanılacak bir sürümünü kullanıma sunduk. Unity uygulama içi satın alma API'sini kullanan oyun geliştiricileri, Google Play Faturalandırma Kitaplığı 2'nin tüm özelliklerinden yararlanmak ve Google Play Faturalandırma Kitaplığı'nın sonraki sürümlerine geçişi kolaylaştırmak için hemen yükseltme yapabilir.

Daha fazla bilgi için Unity ile Google Play Faturalandırma'yı kullanma başlıklı makaleyi inceleyin.

Değişiklik özeti

Google Play Faturalandırma Kitaplığı 2.1.0 Sürümü ve Kotlin Uzantı 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 Billing Library Kotlin uzantısı, Kotlin kullanımı için daha iyi null güvenliği ve iş parçacıkları içeren, yerel API alternatifleri sunar. Kod örnekleri için Google Play Faturalandırma Kitaplığı'nı kullanma başlıklı makaleyi inceleyin.

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

Değişiklik özeti

  • BillingFlowParams sürümünde, cihazdaki birden fazla hesabın aynı sku'ya sahip olduğu durumlarda anlam karışıklığını önlemek için setOldSku(String oldSku) desteği sonlandı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()'ün bazen başarılı bir sonuç döndürmek yerine DEVELOPER_ERROR koduyla başarısız olduğu 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ında yapılan güncellemeleri içerir ve kitaplığın işlevselliğini 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ü kullanıma sunuldu. 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 dışından (uygulama dışı) ürün satın almayı destekler. Google Play'in, kullanıcının ürününüzü nereden satın aldığına bakılmaksızın tutarlı bir satın alma deneyimi sunabilmesi için kullanıcıya hak tanıdıktan sonra Google Play Faturalandırma Kitaplığı üzerinden alınan 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ıya otomatik olarak geri ödeme yapılır ve satın alma işlemi Google Play tarafından iptal edilir. Beklemede olan işlemler (2.0 sürümünde yeni) için üç günlük süre, satın alma işlemi PURCHASED durumuna geçtiğinde başlar ve satın alma işlemi PENDING durumundayken geçerli olmaz.

Aboneliklerde, yeni satın alma jetonu içeren tüm satın alma işlemlerini onaylamanız gerekir. Bu, tüm ilk satın alma işlemlerinin, plan değişikliklerinin ve yeniden kayıt işlemlerinin onaylanmasının gerekli olduğu ancak sonraki yenileme işlemlerinin onaylanmasının gerekmediği anlamına gelir. Bir satın alma işleminin onay gerektirip gerektirmediğini belirlemek için satın alma işlemindeki onay alanını kontrol edebilirsiniz.

Purchase nesnesi artık bir satın alma işleminin kabul edilip edilmediğini belirten bir isAcknowledged() yöntemi içeriyor. Ayrıca Google Play Developer API, hem Purchases.products hem de Purchases.subscriptions için onaylama Boole değerleri içerir. Bir satın alma işlemini onaylamadan önce, satın alma işleminin daha önce onaylanıp onaylanmadığını belirlemek için bu yöntemleri kullandığınızdan emin olun.

Aşağıdaki yöntemlerden birini kullanarak 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 ise istemci API'sinde bulunan acknowledgePurchase() değerini kullanın.
  • Sunucu API'sinde yeni bir acknowledge() yöntemi de mevcuttur.

BillingFlowParams.setSku() kaldırıldı

Daha önce desteği sonlandırılan BillingFlowParams#setSku() yöntemi bu sürümde kaldırıldı. Artık satın alma sürecinde ürünleri oluşturmadan önce BillingClient.querySkuDetailsAsync() işlevini çağırmanız ve elde edilen SkuDetails nesnesini BillingFlowParams.Builder.setSkuDetails() işlevine iletmeniz gerekir.

Kod örnekleri için Google Play Faturalandırma Kitaplığı'nı kullanma başlıklı makaleyi inceleyin.

Geliştirici yükü desteklenir.

Google Play Faturalandırma kitaplığının 2.0 sürümü, satın alma işlemlerine eklenebilecek rastgele dizeler olan geliştirici yükü için destek ekler. Bir satın alma işlemine geliştirici yükü parametresi ekleyebilirsiniz ancak yalnızca satın alma işlemi kabul edildiğinde veya kullanıldığında. Bu, AIDL'deki geliştirici yükünden farklıdır. AIDL'de 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 sayesinde satın alma işlemlerine her zaman bir yük ekleme fırsatınız olur.

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ür. Böylece kullanıcılara indirimden yararlandı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ünde, hak vermeden önce ek işlem yapılması gereken satın alma işlemlerini desteklemeniz gerekir. Örneğin, bir kullanıcı uygulama içi ürününüzü fiziksel bir mağazada 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 hakkı vermelisiniz.

Beklemede olan satın alma işlemlerini etkinleştirmek için uygulamanızı başlatırken enablePendingPurchases() işlevini çağırın.

Satın alma durumunun PURCHASED veya PENDING olup olmadığını belirlemek için Purchase.getPurchaseState() değerini kullanın. Yalnızca durum PURCHASED olduğunda hak vermeniz gerektiğini unutmayın. Aşağıdakileri yaparak Purchase durumuyla ilgili güncellemeleri kontrol etmeniz gerekir:

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

Ayrıca Google Play Developer API, Purchases.products için bir PENDING durumu içerir. Aboneliklerde beklemedeki işlemler desteklenmez.

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

Beklemedeki satın alma işlemlerini onaylarken yalnızca satın alma durumu PENDING değil PURCHASED olduğunda onayladığınızdan emin olun.

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.

consumeAsync

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()'ü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, yalnızca queryPurchaseHistoryAsync() tarafından döndürülen değerleri yansıtması ve autoRenewing, orderId ve packageName alanlarını içermemesi dışında Purchase nesnesi ile aynıdır. Döndürülen verilerde herhangi bir değişiklik olmadığını 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, BillingResponse tamsayısı ve hataları teşhis etmek için kullanabileceğiniz bir hata ayıklama dizesi içerir. Hata ayıklama dizesi en-US yerel ayarını 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 mesaj dizileriyle ilgili sorun düzeltildi. Arka plan çağrıları artık ana iş parçacığını engellemiyor.

Diğer değişiklikler

  • Ana iş parçacığının kullanılması yine de önerilse de artık Google Play Faturalandırma Kitaplığı'nı arka plan iş parçacığında da oluşturabilirsiniz.
  • ANR'ye neden olma olasılığını azaltmak için örnekleme işlemi tamamen arka plan iş parçacığına 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çerir.

Önemli değişiklikler

Diğer değişiklikler

  • Testi kolaylaştırmak için PurchasesResult ve SkuDetailsResult için herkese açık kurucular eklendi.
  • SkuDetails nesneleri yeni bir yöntem olan getOriginalJson()'ü kullanabilir.
  • Tüm AIDL hizmet çağrıları artık arka plan iş parçacıkları tarafından işlenmektedir.

Hata düzeltmeleri

  • Boş geri çağırma dinleyicileri artık herkese açık API'lere iletilmiyor.

Google Play Faturalandırma Kitaplığı 1.2 Sürümü (18 Ekim 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ında bekleyen bir değişikliği incelemesini isteyen launchPriceChangeConfirmationFlow API eklendi.
  • Kullanıcının aboneliğini yükseltirken veya düşürürken yeni bir prorasyon modu (DEFERRED) desteği 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 kullanıcıların uygulamanıza girdiklerinde yeni fiyatı inceleyip kabul etmelerini isteyebilirsiniz.

Bu API'yi kullanmak için abonelik ürününün skuDetails değerini kullanarak bir PriceChangeFlowParams nesnesi oluşturun ve ardından launchPriceChangeConfirmationFlow() işlevini çağırın. Fiyat değişikliği onay akışı sona erdiğinde sonucu işlemek için aşağıdaki kod snippet'inde gösterildiği gibi PriceChangeConfirmationListener öğesini 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ündeki bir yanıt kodu döndürür.

Yeni prorasyon modu

Bir kullanıcının aboneliğini yükseltirken veya düşürürken yeni bir prorasyon modu olan DEFERRED'ü kullanabilirsiniz. Bu mod, kullanıcının aboneliği bir sonraki yenileme işleminde güncellenir. Bu prorasyon modunun nasıl ayarlanacağı hakkında daha fazla bilgi edinmek için Prorasyon modunu ayarlama başlıklı makaleyi inceleyin.

SKU ayrıntılarını ayarlamayla ilgili yeni yöntem

BillingFlowParams sınıfındaki setSku() yöntemi kullanımdan kaldırıldı. Bu değişiklik, Google Play Faturalandırma akışını optimize etmeyi amaçlamaktadır.

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 nesnesi ile çalışmanızı öneririz:

BillingFlowParams Builder sınıfındaki setSku() yöntemi kullanımdan kaldırıldı. 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 yükseltirken/düşürürken BillingFlowParams bölümünde prorata modu belirtme desteği eklendi.
  • BillingFlowParams içindeki replaceSkusProration boole işareti artık desteklenmiyor. Bunun yerine replaceSkusProrationMode'ü kullanın.
  • launchBillingFlow() şimdi başarısız yanıtlar için geri çağırma işlevi tetikler.

Davranışta yapılan değişiklikler

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

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

ProrationMode, kullanıcının aboneliğini yükseltirken veya düşürürken prorata türü hakkında 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 prorasyon modlarını desteklemektedir:

IMMEDIATE_WITH_TIME_PRORATION Değişim işlemi anında geçerli olur ve yeni süre, kalan süreye göre eşit olarak bölünerek kullanıcıya iade edilir veya kullanıcıdan alınır. Bu, geçerli varsayılan davranıştır.
IMMEDIATE_AND_CHARGE_PRORATED_PRICE Değişim işlemi hemen geçerli olur ve faturalandırma dönemi aynı kalır. Kalan sürenin fiyatı alınır.

Not: Bu seçenek yalnızca abonelik yükseltme için kullanılabilir.

IMMEDIATE_WITHOUT_PRORATION Değişim hemen geçerli olur ve yeni fiyat bir sonraki tekrarlama zamanında alınır. Faturalandırma dönemi aynı kalır.

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

Geliştiriciler, abonelik yükseltme isteği için oransal olarak ücret almak üzere bir boole işareti ayarlayabiliyordu. Daha ayrıntılı prorasyon talimatı içeren ProrationMode değerini desteklediğimiz için bu boole işareti artık desteklenmiyor.

launchBillingFlow() artık başarısız yanıtlar için geri çağırma işlevi tetikler

Faturalandırma Kitaplığı her zaman PurhcasesUpdatedListener geri çağırma işlevini tetikler ve BillingResponse sonucunu asenkron olarak döndürür. BillingResponse işlevinin senkronize döndürülen değeri de korunur.

Hata düzeltmeleri

  • Hizmetin bağlantısı kesildiğinde, asynkron yöntemlerde erkenden uygun şekilde çıkar.
  • Builder param nesneleri artık oluşturulmuş nesneleri değiştirmez.
  • 68087141 numaralı sorun: launchBillingFlow() artık başarısız yanıtlar için geri aramayı 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 manifest dosyasına com.android.vending.BILLING iznini eklemeniz gerekmez.
  • BillingClient.Builder sınıfına yeni bir oluşturucu eklendi.
  • SKU'ları sorgulamak için yöntemlerde kullanılacak SkuDetailsParams sınıfı için oluşturucu kalıbı kullanıma sunuldu.
  • Birkaç API yöntemi, tutarlılık için güncellendi (aynı döndürülen bağımsız değişken adları ve sırası).

Davranışta yapılan değişiklikler

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 şimdi newBuilder kalıbı aracılığı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

Bir satın alma işlemi veya abonelik için faturalandırma akışını başlatmak üzere launchBillingFlow() yöntemi, isteğe özgü parametrelerle başlatılmış 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öntemlerinin bağımsız değişkenleri bir Builder 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ç artık kolaylık sağlamak ve API'mizde tutarlı olmak için önceki sarmalayıcı sınıfı yerine sonuç kodu ve bir SkuDetails nesnesi 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ı olması için değiştirildi:

Kotlin

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

Java

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

Sarmalanmış PurchaseResult nesnesi

PurchaseResult, API'mizde tutarlı olması için sarmalanmıştır:

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ştirmeyi amaçlayan geliştirici önizlemesi kullanıma sunuldu. Bu önizleme, geliştiricilerin çabalarını Android uygulamasına özel mantık (ör. uygulama mimarisi ve gezinme yapısı) uygulamaya odaklanmalarını sağlıyor.

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