Bu doküman, Google Play Faturalandırma Kitaplığı'nın sürüm notlarını içerir.
Google Play Faturalandırma Kitaplığı 8.0.0 sürümü (30.06.2025)
Google Play Faturalandırma Kitaplığı ve Kotlin uzantılarının 8.0.0 sürümü kullanıma sunuldu.
Değişiklik özeti
Uygulama içi öğeler artık tek seferlik ürünler olarak adlandırılacak.
Tek seferlik ürünler için birden fazla satın alma seçeneği ve fırsatı.
Artık tek seferlik ürünleriniz için birden fazla satın alma seçeneği ve fırsat sunabilirsiniz. Bu sayede ürünlerinizi nasıl satacağınız konusunda esneklik elde edersiniz ve ürünlerinizi yönetmenin karmaşıklığını azaltırsınız.
queryProductDetailsAsync()
yöntemi iyileştirildi.PBL 8.0.0'dan önce
queryProductDetailsAsync()
yöntemi, getirilemeyen ürünleri döndürmüyordu. Bunun nedeni, ürünün bulunamaması veya kullanıcıya sunulan teklif olmaması gibi durumlar olabilir. PBL 8.0.0 ile, getirilmeyen ürünler, getirilmeyen ürünler hakkında bilgi sağlayan yeni bir ürün düzeyinde durum koduyla döndürülür.ProductDetailsResponseListener.onProductDetailsResponse()
imzasında, uygulamanızda değişiklik yapılmasını gerektiren bir değişiklik olduğunu unutmayın. Daha fazla bilgi için sonucu işleme bölümüne bakın.Otomatik hizmet yeniden bağlantısı.
Yeni
BillingClient.Builder.enableAutoServiceReconnection()
oluşturucu parametresi, geliştiricilerin otomatik hizmet yeniden bağlantısını etkinleştirmesine olanak tanır. Bu özellik, Play Faturalandırma Hizmeti'ne yeniden bağlantıları otomatik olarak yöneterek ve hizmet bağlantısının kesilmesi durumundastartConnection()
'ı manuel olarak çağırma ihtiyacını ortadan kaldırarak bağlantı yönetimini basitleştirir. Daha fazla bilgi için Bağlantıyı Otomatik Olarak Yeniden Kurma başlıklı makaleyi inceleyin.launchBillingFlow()
yöntemi için alt yanıt kodları.launchBillingFlow()
adresinden döndürülen BillingResult artık bir alt yanıt kodu alanı içerecek. Bu alan yalnızca bazı durumlarda, hatanın daha net bir nedenini belirtmek için doldurulur. PBL 8.0.0 ile, kullanıcının parası satın almaya çalıştığı öğenin fiyatından az olduğunda PAYMENT_DECLINED_DUE_TO_INSUFFICIENT_FUNDS alt kodu döndürülür.queryPurchaseHistory()
yöntemi kaldırıldı.Daha önce kullanımdan kaldırıldı olarak işaretlenen
queryPurchaseHistory()
yöntemi artık kaldırıldı. Bunun yerine kullanılacak alternatif API'ler hakkında ayrıntılı bilgi için Satın Alma Geçmişini Sorgulama başlıklı makaleyi inceleyin.querySkuDetailsAsync()
yöntemi kaldırıldı.Daha önce kullanımdan kaldırıldı olarak işaretlenen
querySkuDetailsAsync()
yöntemi kaldırıldı. Bunun yerine queryProductDetailsAsync işlevini kullanmalısınız.BillingClient.Builder.enablePendingPurchases()
yöntemi kaldırıldı.Daha önce kullanımdan kaldırıldığı işaretlenen ve parametre içermeyen
enablePendingPurchases()
yöntemi kaldırıldı. Bunun yerineenablePendingPurchases(PendingPurchaseParams params)
kullanmalısınız. Desteği sonlandırılanenablePendingPurchases()
özelliğinin işlevsel olarakenablePendingPurchases(PendingPurchasesParams.newBuilder().enableOneTimeProducts().build())
ile eşdeğer olduğunu unutmayın.skuType alan aşırı yüklenmiş
queryPurchasesAsync()
yöntemi kaldırıldı.Daha önce kullanımdan kaldırıldı olarak işaretlenen
queryPurchasesAsync(String skuType, PurchasesResponseListener listener)
yöntemi artık kaldırıldı. Alternatif olarakqueryPurchasesAsync(QueryPurchasesParams queryPurchasesParams, PurchasesResponseListener listener)
seçeneğini de kullanabilirsiniz.
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
- Play Faturalandırma Kitaplığı 7.1.0'da yanıt kodlarını test etme
BillingResult
ile ilgili bir hata düzeltildi.
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
][billing-result] yanıt kodlarının test edilmesi 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'e yükseltmeniz gerekir. Yalnızca [billing overrides testing enabled][enable-billing-overrides-testing] özelliğinin etkin olduğu uygulamaları etkileyen ve normal kullanımı etkilemeyen bir hata mevcuttur. Daha fazla bilgi içinBillingResult
yanıt kodlarını test etme başlıklı makaleyi inceleyin. [billing-result]: /reference/com/android/billingclient/api/BillingResult [enable-billing-overrides-testing]: /google/play/billing/test-response-codes#enable-billing-overrides-testing
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
Taksitli abonelikleri destekleyen API'ler eklendi.
- Kullanıcıların satın almaya uygun olduğu taksitli temel planlar için [
ProductDetails.InstallmentPlanDetails
][installment-details] eklendi. Bu API, uygulamanızın kullanıcıya ilgili bilgileri sağlamak için taksit planını ve taahhüt ayarlarını tanımlamasına yardımcı olur. Daha fazla bilgi edinmek için [abonelik taksitleri kılavuzumuzu][installments] inceleyin. [installment-details]: /reference/com/android/billingclient/api/ProductDetails.InstallmentPlanDetails [installments]: /google/play/billing/subscriptions#installments
- Kullanıcıların satın almaya uygun olduğu taksitli temel planlar için [
Bu sürümde desteği sonlandırılan
BillingClient.Builder.enablePendingPurchases()
yerinePendingPurchasesParams
veBillingClient.Builder.enablePendingPurchases(PendingPurchaseParams)
eklendi.- Desteği sonlandırılan
enablePendingPurchases()
, işlevsel olarakenablePendingPurchases(PendingPurchasesParams.newBuilder().enableOneTimeProducts().build())
ile aynıdır.
- Desteği sonlandırılan
Ön ödemeli abonelik planları için bekleyen işlemleri desteklemek üzere API'ler eklendi:
- Abonelik ön ödemeli planları için bekleyen işlemleri etkinleştirmek üzere
BillingClient.Builder.enablePendingPurchases(PendingPurchaseParams)
ile birliktePendingPurchasesParams.Builder.enablePrepaidPlans()
kullanın. Destek eklerken uygulamanızın abonelik yaşam döngülerini de doğru şekilde yönettiğinden emin olun. Daha fazla bilgi edinmek için beklemedeki satın alma işlemleriyle ilgili kılavuzumuzu inceleyin. - Beklemede olan para ekleme işlemini almak veya mevcut bir aboneliği yükseltmek ya da düşürmek için
Purchase.PendingPurchaseUpdate
vePurchase.getPendingPurchaseUpdate()
eklendi.
- Abonelik ön ödemeli planları için bekleyen işlemleri etkinleştirmek üzere
BillingClient.Builder.enableAlternativeBilling()
,AlternativeBillingListener
veAlternativeChoiceDetails
kaldırıldı .- Geliştiriciler, dinleyici geri çağırma işlevinde
UserChoiceBillingListener
ileBillingClient.Builder.enableUserChoiceBilling()
veUserChoiceDetails
yerineBillingClient.Builder.enableUserChoiceBilling()
ileUserChoiceDetails
kullanmalıdır.
- Geliştiriciler, dinleyici geri çağırma işlevinde
BillingFlowParams.ProrationMode
,BillingFlowParams.SubscriptionUpdateParams.Builder.setReplaceProrationMode()
veBillingFlowParams.SubscriptionUpdateParams.Builder.setReplaceSkusProrationMode()
kaldırıldı. - Geliştiriciler, bunun yerineBillingFlowParams.SubscriptionUpdateParams.Builder#setSubscriptionReplacementMode(int)
ile birlikteBillingFlowParams.SubscriptionUpdateParams.ReplacementMode
kullanmalıdır. -BillingFlowParams.SubscriptionUpdateParams.Builder.setReplaceProrationMode()
. -BillingFlowParams.SubscriptionUpdateParams.Builder.setReplaceSkusProrationMode()
.BillingFlowParams.SubscriptionUpdateParams.Builder#setOldSkuPurchaseToken()
kaldırıldı. - Geliştiriciler bunun yerineBillingFlowParams.SubscriptionUpdateParams.Builder#setOldPurchaseToken(java.lang.String)
kullanmalıdır.BillingClient.queryPurchaseHistoryAsync()
desteği sonlandırıldı ve gelecekteki bir sürümde kaldırılacak. Geliştiriciler bunun yerine aşağıdaki alternatifleri kullanmalıdır:- Onaylanmış ve beklemede olan satın alma işlemleri: Etkin satın alma işlemlerini almak için
BillingClient.queryPurchasesAsync()
değerini kullanın. - Tüketilen satın alma işlemleri: Geliştiriciler, tüketilen satın alma işlemlerini kendi sunucularında takip etmelidir.
- İptal edilen satın alma işlemleri: voided-purchases geliştirici API'sini kullanın.
- Daha fazla bilgi için Satın Alma Geçmişini Sorgulama başlıklı makaleyi inceleyin.
- Onaylanmış ve beklemede olan satın alma işlemleri: Etkin satın alma işlemlerini almak için
BillingFlowParams.ProductDetailsParams.setOfferToken()
şimdi geliştiriciler boş birofferToken
belirttiğinde istisna oluşturuyor.minSdkVersion
21,targetSdkVersion
34 olarak güncellendi.
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
BillingClient.showAlternativeBillingOnlyInformationDialog()
işlevinde, iletişim kutusu tamamlandığında belirli durumlardaAlternativeBillingOnlyInformationDialogListener
işlevinin çağrılmamasına neden olan bir hata düzeltildi.
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
- Harici teklifleri desteklemek için API'ler eklendi
- Harici teklifler sunma özelliğini etkinleştirmek için
BillingClient.Builder.enableExternalOffer()
eklendi. - Harici teklifler işlevinin kullanılabilirliğini kontrol etmek için
BillingClient.isExternalOfferAvailableAsync()
eklendi. - Kullanıcıları uygulamanın dışına yönlendirmeden önce onlara bilgi iletişim kutusu göstermek için
BillingClient.showExternalOfferInformationDialog()
eklendi. - Harici teklifler üzerinden yapılan işlemleri bildirmek için gereken bir yük oluşturmak amacıyla
BillingClient.createExternalOfferReportingDetailsAsync()
eklendi.
- Harici teklifler sunma özelliğini etkinleştirmek için
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
- Yalnızca alternatif faturalandırmayı (kullanıcıya tercih seçeneği sunulmayan) destekleyen API'ler eklendi
- Yalnızca alternatif faturalandırma sunma özelliğini işlevsel olarak etkinleştirmek için
BillingClient.Builder.enableAlternativeBillingOnly()
eklendi. - Yalnızca alternatif faturalandırma sunma özelliğinin kullanılabilirliğini kontrol etmek için
BillingClient.isAlternativeBillingOnlyAvailableAsync()
eklendi. - Yalnızca alternatif faturalandırma kullanılıyorsa kullanıcıları bilgilendirmek için bilgi iletişim kutusu göstermek üzere
BillingClient.showAlternativeBillingOnlyInformationDialog()
eklendi. - Yalnızca alternatif faturalandırma üzerinden yapılan işlemleri bildirmek için gereken bir yük oluşturmak amacıyla
BillingClient.createAlternativeBillingOnlyReportingDetailsAsync()
eklendi.
- Yalnızca alternatif faturalandırma sunma özelliğini işlevsel olarak etkinleştirmek için
- Kullanıcı tercihine göre faturalandırma API'leri güncellendi
- Desteği sonlandırılmış olarak işaretlenen AlternativeBillingListener yerine
UserChoiceBillingListener
eklendi. - Desteği sonlandırılmış olarak işaretlenen
AlternativeChoiceDetails
yerineUserChoiceDetails
eklendi. - Desteği sonlandırılmış olarak işaretlenen
BillingClient.Builder.enableAlternativeBilling()
yerineBillingClient.Builder.enableUserChoiceBilling()
eklendi.
- Desteği sonlandırılmış olarak işaretlenen AlternativeBillingListener yerine
- Google Play ülkesini almak için
BillingClient.getBillingConfigAsync()
eklendi.
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 yeniReplacementMode
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
velaunchPriceConfirmationFlow
yöntemleri kaldırıldı.Daha önce kullanımdan kaldırıldı olarak işaretlenen
queryPurchases
velaunchPriceConfirmationFlow
yöntemleri Play Billing Library 6.0.0'dan kaldırıldı. GeliştiricilerqueryPurchases
yerinequeryPurchasesAsync
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 bir hata oluştuğunda döndürülür. Bu ağ bağlantısı hataları daha önceSERVICE_UNAVAILABLE
olarak bildirilmişti.SERVICE_UNAVAILABLE
veSERVICE_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
yerineSERVICE_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
- Güney Kore'deki kullanıcılar için mobil/tablet'te alternatif faturalandırma akışlarını desteklemek üzere sınıflar eklendi:
- Kaynak aboneliğin harici işlem kimliğini belirtmek için
BillingFlowParams.SubscriptionUpdateParams.Builder.setOriginalExternalTransactionId()
yöntemi eklendi. - Güney Kore'deki kullanıcıların alternatif faturalandırma seçeneği belirlemesine olanak tanımak için
BillingClient.Builder.enableAlternativeBilling()
yöntemi eklendi.
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
- Teklif kimliğini almak için
ProductDetails.SubscriptionOfferDetails.getOfferId()
yöntemi eklendi. - Temel plan kimliğini almak için
ProductDetails.SubscriptionOfferDetails.getBasePlanId()
yöntemi eklendi. targetSdkVersion
31 olarak güncellendi.
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()
yerineBillingClient.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ş 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ı satın alma işlemini Android cihazında 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 yönetmenize yardımcı olmak 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 istiyorsanız Ödeme reddedilmelerini ele alma 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
Gelecekteki bir sürümde kaldırılacak olan
BillingClient.queryPurchases()
yerineBillingClient.queryPurchasesAsync()
eklendi.Yeni abonelik değiştirme modu eklendi
IMMEDIATE_AND_CHARGE_FULL_PRICE
.Play Faturalandırma Kitaplığı'nın bağlantı durumunu almak için
BillingClient.getConnectionState()
yöntemi eklendi.Bir yöntemin hangi iş parçacığında çağrılabileceğini ve hangi iş parçacığı sonuçlarının yayınlandığını belirtmek için Javadoc ve uygulama güncellendi.
Abonelik güncellemelerini başlatmanın yeni bir yolu olarak
BillingFlowParams.Builder.setSubscriptionUpdateParams()
eklendi. Bu, kaldırılanBillingFlowParams#getReplaceSkusProrationMode
,BillingFlowParams#getOldSkuPurchaseToken
,BillingFlowParams#getOldSku
,BillingFlowParams.Builder#setReplaceSkusProrationMode
,BillingFlowParams.Builder#setOldSku
değerlerinin yerini alır.Purchase.getQuantity()
vePurchaseHistoryRecord.getQuantity()
eklendi.Purchase#getSkus()
vePurchaseHistoryRecord#getSkus()
eklendi. Bunlar, kaldırılanPurchase#getSku
vePurchaseHistoryRecord#getSku
parametrelerinin yerini alır.BillingFlowParams#getSku
,BillingFlowParams#getSkuDetails
veBillingFlowParams#getSkuType
kaldırıldı.
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 sorunu düzeltme 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ılıp geri yüklenmesiyle
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
veUnderAgeOfConsent
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()
veBillingFlowParams.setDeveloperId()
yöntemleri kaldırıldı. - Desteği sonlandırılan
BillingFlowParams.setOldSkus(String oldSku)
veBillingFlowParams.addOldSku(String oldSku)
yöntemleri kaldırıldı. - Boşluk kabul edilebilirliği ek açıklamaları eklendi.
Hata düzeltmeleri
SkuDetails.getIntroductoryPriceCycles()
şimdiString
yerineint
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ğ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'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 gelecekteki sürümlerine geçişi kolaylaştırmak için hemen yükseltme yapabilir.
Daha fazla bilgi edinmek için Google Play Faturalandırma'yı Unity ile kullanma başlıklı makaleyi inceleyin.
Değişiklik özeti
- Java Google Play Faturalandırma Kitaplığı
AcknowledgePurchaseParams
sürümünde,setDeveloperPayload()
vegetDeveloperPayload()
yöntemleri kullanımdan kaldırıldı.ConsumeParams
sürümünde,setDeveloperPayload()
vegetDeveloperPayload()
yöntemleri kullanımdan kaldırıldı.BillingFlowParams
sürümündesetAccountId()
olarak adlandırılan alan,setObfuscatedAccountId()
olarak yeniden adlandırıldı ve 64 karakterlik uzunluk kısıtlaması ve bu alanda kimliği tanımlayabilecek bilgilerin (PII) kullanılmasına izin verilmeyen kısıtlama belgelendi.setAccountId()
, kullanımdan kaldırıldı olarak işaretlendi ve gelecekteki bir kitaplık sürümünde kaldırılacak.BillingFlowParams
'tesetObfuscatedAccountId()
'e benzer şekilde çalışansetObfuscatedProfileId()
eklendi. Daha fazla bilgi için Geliştirici yükü güncellemeleri ve alternatifleri başlıklı makaleyi inceleyin.Purchase
sürümünde,BillingFlowParams
'de ayarlanan karartılmış hesap tanımlayıcılarını döndürmek içingetAccountIdentifiers()
yöntemi eklendi.BillingClient
sürümünde,loadRewardedSku()
yöntemi, ödüllü SKU'ların kullanımdan kaldırılması kapsamında kullanımdan kaldırıldı olarak işaretlendi. Desteği sonlandırılan özellikler hakkında daha fazla bilgiyi Play Console Yardım Merkezi'nde bulabilirsiniz.
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çinsetOldSku(String oldSku)
desteği sonlandırıldı vesetOldSku(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 yerineDEVELOPER_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
- 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ç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 nedenle, tüm ilk satın alma işlemlerinin, plan değişikliklerinin ve yeniden kayıt işlemlerinin onaylanması gerekir ancak sonraki yenileme işlemlerini onaylamanız gerekmez. 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:
getOriginalPriceAmountMicros()
- SKU'nun indirim öncesi biçimlendirilmemiş orijinal fiyatını döndürür.
getOriginalPrice()
- orijinal fiyatı ek para birimi biçimlendirmesiyle döndürür.
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
mı yoksa PENDING
mı olduğunu 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:
- 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. - Döndürülen her
Purchase
nesnesindePurchase.getPurchaseState()
işlevini çağırın. Purchase
nesnelerindeki değişikliklere yanıt vermek içinonPurchasesUpdated()
yöntemini uygulayın.
Ayrıca Google Play Developer API, Purchases.products
için bir PENDING
durumu içerir.
Beklemedeki işlemler aboneliklerde 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
SkuDetails.getIntroductoryPriceAmountMicros()
şimdiString
yerinelong
döndürüyor.
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 ileti dizisini 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
- Ödüllü ürünler için destek eklendi. Para kazanma seçenekleri hakkında daha fazla bilgi için Ödüllü ürünlere özel özellikler ekleme başlıklı makaleyi inceleyin.
Diğer değişiklikler
- Testi kolaylaştırmak için
PurchasesResult
veSkuDetailsResult
için herkese açık kurucular eklendi. SkuDetails
nesneleri yeni bir yöntem olangetOriginalJson()
'ü 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ındasetSku()
,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 yenilendiğinde 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çindekireplaceSkusProration
boole işareti artık desteklenmiyor. Bunun yerinereplaceSkusProrationMode
'ü kullanın.launchBillingFlow()
artık 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 kalan sürenin nasıl hesaplandığı hakkında daha fazla bilgi 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 aşağıdaki prorasyon modlarını destekler:
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 bir tutar tahsil etmek ü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ı tetikler.
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
- PURCHASES_UPDATED paketinde yanıt kodu yok
- Cihaz döndürme sırasında ProxyBillingActivity ve PurchasesUpdatedListener sorunlarını düzeltme
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 sayede geliştiriciler, uygulama mimari ve gezinme yapısı gibi Android uygulamasına özel mantığı uygulamaya odaklanabilir.
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 ekleyerek geliştiricilerin uygulama ile Google Play Faturalandırma API'si arasındaki arayüzü tanımlamasını kolaylaştırır.