Bu belgede, Google Play Faturalandırma Kitaplığı'nın sürüm notları yer almaktadır.
Android becerileri
GitHub'da görüntülePlay Faturalandırma Kitaplığı'nı yükseltme
android skills add play-billing-library-version-upgradeHelp me upgrade my Play Billing Library implementation.Google Play Faturalandırma Kitaplığı 9.1.0 sürümü (18.06.2026)
Google Play Faturalandırma Kitaplığı'nın 9.1.0 sürümü ve Kotlin uzantıları kullanıma sunuldu.
Değişiklik özeti
- Faturalandırma Seçimi için yeni API'ler:
- Kullanıcının kullanabileceği faturalandırma seçenekleri hakkında bilgi almak için
BillingClient.getBillingChoiceInfoAsync()eklendi. - Resim URL'leri ve bağlılık bilgileri de dahil olmak üzere yanıt ayrıntılarını içeren
BillingChoiceInfosınıfı eklendi. - İsteği yapılandırmak için
GetBillingChoiceInfoParamseklendi. - Geri arama almak için
BillingChoiceInfoResponseListenereklendi. BillingClient.getBillingChoiceInfo()Kotlin uzantısı askıya alma işlevi eklendi.- Fatura programı için bilgi iletişim kutusu göstermek üzere
BillingClient.showBillingProgramInformationDialog()eklendi. - İletişim kutusunu yapılandırmak için
BillingProgramInformationDialogParamseklendi. - Geri arama almak için
BillingProgramInformationDialogListenereklendi. - Faturalandırma tercihi kullanılabilirliği hakkında ayrıntılı bilgi vermek için
BillingProgramAvailabilityDetails.BillingChoiceAvailabilityDetailseklendi. - Seçim ekranının türünü belirtmek için
ChoiceScreenTypeeklendi.
- Kullanıcının kullanabileceği faturalandırma seçenekleri hakkında bilgi almak için
Google Play Faturalandırma Kitaplığı 9.0.0 sürümü (19.05.2026)
Google Play Faturalandırma Kitaplığı ve Kotlin uzantılarının 9.0.0 sürümü kullanıma sunuldu. PBL'nin önceki sürümlerinden geçiş yapmak istiyorsanız PBL 9 taşıma rehberine bakın.
Değişiklik özeti
Engellenen Play Store etkinliği için güncellenen hata kodları: Engellenen Play Store uygulamalarıyla ilgili hata kodları güncellendi. Play Store uygulamasının sistem tarafından engellendiği durumlarda (ör. OEM tarafından özelleştirilmiş çocuk modunda) yanıt kodu
ERRORolarak değiştirildi.BILLING_UNAVAILABLEAyrıca, bu tür durumlardaBillingResultartık Play Store engellendi hata ayıklama mesajı gösteriyor.Geliştirici tarafından sağlanan faturalandırma için null değer alabilme güncellemesi:
DeveloperProvidedBillingDetails.getLinkUri()yöntemi@Nullableolacak şekilde güncellendi. Bu değişiklik, ödeme seçimi aşamasında harici ödemeler için doğrudan bağlantı URI'sinin kullanılamadığı senaryoları destekler.Bu değişikliği güvenli bir şekilde ele almak için entegrasyon kodunuzun, ayrıştırma veya tarayıcı amaçlarını başlatmadan önce
DeveloperProvidedBillingDetails.getLinkUri()yönteminden gelen hemnullhem de boş dize ("") değerlerini işlediğinden emin olun.targetSdkVersion, 35 olarak güncellendi.Artık uygulama içi mesajlaşmayı kullanarak kullanıcılara yaklaşan bir kullanıcı onayı istenen fiyat artışı hakkında bildirim gönderebilirsiniz. Bu sayede kullanıcılar uygulamadan çıkmadan fiyat artışı onayını onaylayabilir. Kullanıcı onayı istenen bekleyen fiyat artışı onayıyla ilgili mesaj, kullanıcının fiyat artışı onayını kabul edebileceği ilk günden itibaren gösterilir ve en fazla 7 günde bir kez gösterilir.
Google Play Faturalandırma Kitaplığı 8.3.0 sürümü (23.12.2025)
Google Play Faturalandırma Kitaplığı'nın 8.3.0 sürümü ve Kotlin uzantıları kullanıma sunuldu.
Değişiklik özeti
Harici ödemeler için yeni API'ler:
- Harici ödeme akışını desteklemek için sınıflar eklendi:
- Harici ödemeleri etkinleştirmek için
enableBillingProgram(EnableBillingProgramParams)eklendi. - Harici ödeme akışını başlatmak için
BillingFlowParams.Builder.enableDeveloperBillingOptioneklendi.
Harici ödeme akışında yaşanan kesintiler için hata kategorilendirmesi iyileştirildi:
- Kullanıcı, ödemeyi harici
bir uygulamada (ör. e-cüzdan) tamamlamak için satın alma sürecinden ayrılır ve geri dönmeden
işlemi terk ederse istemciye döndürülen yanıt kodu artık hata ayıklama mesajıyla
BILLING_ACTIVITY_PAUSEDbirlikteBillingResponseCode.USER_CANCELED(1) olur (önceden varsayılan olarakBillingResponseCode.ERROR(6) döndürülüyordu).
- Kullanıcı, ödemeyi harici
bir uygulamada (ör. e-cüzdan) tamamlamak için satın alma sürecinden ayrılır ve geri dönmeden
işlemi terk ederse istemciye döndürülen yanıt kodu artık hata ayıklama mesajıyla
Google Play Faturalandırma Kitaplığı 8.2.1 sürümü (15.12.2025)
Google Play Faturalandırma Kitaplığı'nın 8.2.1 sürümü ve Kotlin uzantıları kullanıma sunuldu.
Hata düzeltmeleri
isBillingProgramAvailableAsyncvecreateBillingProgramReportingDetailsAsyncuygulamalarındaki bir hata düzeltildi. 8.2.0 sürümünde kullanıma sunulan bu API'leri kullanmak için 8.2.1 sürümüne güncelleyin.
Google Play Faturalandırma Kitaplığı 8.2.0 sürümü (09.12.2025)
Google Play Faturalandırma Kitaplığı'nın 8.2.0 sürümü ve Kotlin uzantıları kullanıma sunuldu.
Değişiklik özeti
Harici içerik bağlantıları ve dış kampanyalar için yeni API'ler:
- Bu programlar için
BillingClientkurulumu yapmak üzereenableBillingProgrameklendi. - Kullanıcı uygunluğunu belirlemek için
isBillingProgramAvailableAsynceklendi. - Raporlama için kullanılması gereken harici işlem jetonunu oluşturmak üzere
createBillingProgramReportingDetailsAsynceklendi. - Dijital içerik teklifi veya uygulama indirme için harici bağlantıyı başlatmak üzere
launchExternalLinkeklendi.
- Bu programlar için
Dış kampanya programında yapılan değişiklikler:
- Dış kampanya programında politika değişiklikleri yapıldı. Ayrıntılar için program değişiklikleri başlıklı makaleyi inceleyin. Yeni API'lerle dış kampanya akışlarını nasıl başlatacağınızı öğrenmek için entegrasyon kılavuzuna bakın.
BillingClient.Builder.enableExternalOfferAPI'nin desteği sonlandırıldı.isExternalOfferAvailableAsyncAPI'nin desteği sonlandırıldı.createExternalOfferReportingDetailsAsyncAPI'nin desteği sonlandırıldı.showExternalOfferInformationDialogAPI'nin desteği sonlandırıldı.
Google Play Faturalandırma Kitaplığı 8.1.0 sürümü (06.11.2025)
Google Play Faturalandırma Kitaplığı'nın 8.1.0 sürümü ve Kotlin uzantıları kullanıma sunuldu.
Değişiklik özeti
Askıya alınmış abonelikler
Abonelikler için sorgu oluştururken askıya alınmış abonelikleri dahil etmek amacıyla
BillingClient.queryPurchasesAsync()yöntemine yeni bir parametre eklendi. Askıya alınmış abonelikler kullanıcıya atfedilmeye devam eder ancak kullanıcı aboneliği duraklattığı veya yenileme ödeme yöntemi reddedildiği için etkin değildir.Dinleyicide döndürülen
Purchasenesnesi, askıya alınmış tüm abonelikler içinisSuspended() = truedeğerini döndürür. Bu durumda, satın alınan aboneliğe erişim izni vermemeli ve bunun yerine kullanıcıyı, ödeme yöntemlerini yönetebileceği veya aboneliğini yeniden etkinleştirmek için duraklatma durumunu değiştirebileceği abonelik merkezine yönlendirmelisiniz.Aboneliklerle ilgili güncellemeler:
BillingFlowParams.ProductDetailsParamsnesnesi artık ürün düzeyinde değiştirme bilgileri belirtebileceğinizsetSubscriptionProductReplacementParams()yöntemine sahip.SubscriptionProductReplacementParamsnesnesinin iki ayarlayıcı yöntemi vardır:setOldProductId: MevcutProductDetails'deki ürünle değiştirilmesi gereken eski ürün.setReplacementMode: Bu, öğe düzeyinde değiştirme modudur. Modlar temelde SubscriptionUpdateParams ile aynıdır ancak değer eşlemesi güncellenmiştir. Bir öğenin mevcut ödeme planını değiştirmeden tutmanıza olanak tanıyan yeni bir değişim moduKEEP_EXISTINGkullanıma sunuldu.
SubscriptionUpdateParams setSubscriptionReplacementMode kullanımdan kaldırılacak. Bunun yerine
SubscriptionProductReplacementParams.setReplacementModekullanmalısınız.
minSdkVersion, 23 olarak güncellendi.Tek seferlik ürünler için ön sipariş API'leri etkinleştirildi.
Ön sipariş ayrıntılarını alan
ProductDetails.oneTimePurchaseOfferDetails.getPreorderDetails()API artık kullanılabilir.Google Play Faturalandırma Kitaplığı artık Kotlin 2.2.0 sürümünü destekliyor.
Google Play Faturalandırma Kitaplığı 8.0.0 sürümü (30.06.2025)
Google Play Faturalandırma Kitaplığı'nın 8.0.0 sürümü ve Kotlin uzantıları 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 satma konusunda esneklik elde eder ve ürünlerinizi yönetirken yaşanan karmaşayı 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 birlikte, getirilmemiş ürünler, getirilmemiş ürünler hakkında bilgi sağlayan yeni bir ürün düzeyinde durum koduyla döndürülür.ProductDetailsResponseListener.onProductDetailsResponse()imzasında değişiklik yapıldığını ve bu nedenle uygulamanızda değişiklik yapmanız gerektiğini unutmayın. Daha fazla bilgi için sonucu işleme başlıklı makaleyi inceleyin.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 parametre, Play Faturalandırma Hizmeti'ne yeniden bağlantıları otomatik olarak işleyerek bağlantı yönetimini basitleştirir ve hizmet bağlantısı kesilmesi durumundastartConnection()'ı manuel olarak çağırma ihtiyacını ortadan kaldırır. 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()tarafından döndürülen BillingResult artık bir alt yanıt kodu alanı içerecek. Bu alan, hatanın daha ayrıntılı nedenini belirtmek için yalnızca bazı durumlarda doldurulur. Alt yanıt alanı aşağıdaki değerleri içerebilir:PAYMENT_DECLINED_DUE_TO_INSUFFICIENT_FUNDS- Kullanıcının fonları, satın almaya çalıştığı öğenin fiyatından düşük olduğunda döndürülür.USER_INELIGIBLE- Kullanıcı, abonelik teklifi için yapılandırılmış uygunluk koşullarını karşılamadığında döndürülür.NO_APPLICABLE_SUB_RESPONSE_CODE: Başka bir alt yanıt kodu geçerli olmadığında döndürülen varsayılan değer.
queryPurchaseHistory()yöntemi kaldırıldı.Daha önce desteği sonlandırılan olarak işaretlenen
queryPurchaseHistory()yöntemi kaldırıldı. Bunun yerine hangi alternatif API'lerin kullanılacağıyla ilgili ayrıntılar için Sorgu Satın Alma Geçmişi'ne bakın.querySkuDetailsAsync()yöntemi kaldırıldı.Daha önce desteği sonlandırılan olarak işaretlenen
querySkuDetailsAsync()yöntemi artık 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ı olarak işaretlenen parametresiz
enablePendingPurchases()yöntemi artık kaldırıldı. Bunun yerineenablePendingPurchases(PendingPurchaseParams params)kullanmalısınız. Kullanımdan kaldırılanenablePendingPurchases()işlevinin,enablePendingPurchases(PendingPurchasesParams.newBuilder().enableOneTimeProducts().build())işleviyle aynı olduğunu unutmayın.skuType alanını alan aşırı yüklenmiş
queryPurchasesAsync()yöntemi kaldırıldı.Daha önce desteği sonlandırılan olarak işaretlenen
queryPurchasesAsync(String skuType, PurchasesResponseListener listener)yöntemi kaldırıldı. Alternatif olarakqueryPurchasesAsync(QueryPurchasesParams queryPurchasesParams, PurchasesResponseListener listener)kullanın.
Google Play Faturalandırma Kitaplığı 7.1.1 sürümü (03.10.2024)
Google Play Faturalandırma Kitaplığı'nın 7.1.1 sürümü ve Kotlin uzantıları kullanıma sunuldu.
Hata düzeltmeleri
- Play Faturalandırma Kitaplığı 7.1.0'da test
BillingResultyanıt kodlarıyla ilgili bir hata düzeltildi.
Google Play Faturalandırma Kitaplığı 7.1.0 sürümü (19.09.2024)
Google Play Faturalandırma Kitaplığı'nın 7.1.0 sürümü ve Kotlin uzantıları kullanıma sunuldu.
Değişiklik özeti
- Bağlantı durumu ve yönetimiyle ilgili iş parçacığı güvenliği iyileştirildi.
- Play Faturalandırma Kitaplığı 7.1.1'de tamamen yayınlanan
BillingResultyanı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 faturalandırma geçersiz kılma testi etkinleştirilmiş uygulamaları etkileyen ve normal kullanımı etkilemeyen bir hata var. Daha fazla bilgi için YanıtBillingResultkodları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 7.0.0 sürümü ve Kotlin uzantıları kullanıma sunuldu.
Değişiklik özeti
Taksitli abonelikleri desteklemek için API'ler eklendi.
- Kullanıcıların satın almaya uygun olduğu taksitli temel planlar için
ProductDetails.InstallmentPlanDetailseklendi. Bu API, uygulamanızın taksit planını ve taahhüt kurulumunu belirleyerek kullanıcıya ilgili bilgileri sağlamasına yardımcı olur. Daha fazla bilgi edinmek için abonelik taksitleri kılavuzumuzu inceleyin.
- 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()yerinePendingPurchasesParamsveBillingClient.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
Abonelik ön ödemeli planları için bekleyen işlemleri destekleyen API'ler eklendi:
- Abonelik ön ödemeli planları için bekleyen işlemleri etkinleştirmek üzere
PendingPurchasesParams.Builder.enablePrepaidPlans()ile birlikteBillingClient.Builder.enablePendingPurchases(PendingPurchaseParams)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 beklemede olan satın alma işlemleriyle ilgili kılavuzumuzu inceleyin. - Bekleyen yükleme veya yükseltme işlemlerini ya da mevcut bir aboneliği düşürme işlemlerini almak için
Purchase.PendingPurchaseUpdatevePurchase.getPendingPurchaseUpdate()eklendi.
- Abonelik ön ödemeli planları için bekleyen işlemleri etkinleştirmek üzere
BillingClient.Builder.enableAlternativeBilling(),AlternativeBillingListenerveAlternativeChoiceDetailskaldırıldı.- Geliştiriciler, bunun yerine dinleyici geri çağırmasında
BillingClient.Builder.enableUserChoiceBilling()ileUserChoiceBillingListenerveUserChoiceDetailskullanmalıdır.
- Geliştiriciler, bunun yerine dinleyici geri çağırmasında
BillingFlowParams.ProrationMode,BillingFlowParams.SubscriptionUpdateParams.Builder.setReplaceProrationMode(), veBillingFlowParams.SubscriptionUpdateParams.Builder.setReplaceSkusProrationMode()kaldırıldı.- Geliştiriciler bunun yerine
BillingFlowParams.SubscriptionUpdateParams.ReplacementModeileBillingFlowParams.SubscriptionUpdateParams.Builder#setSubscriptionReplacementMode(int)kullanmalıdır.
- Geliştiriciler bunun yerine
BillingFlowParams.SubscriptionUpdateParams.Builder#setOldSkuPurchaseToken()kaldırıldı.- Geliştiriciler bunun yerine
BillingFlowParams.SubscriptionUpdateParams.Builder#setOldPurchaseToken(java.lang.String)kullanmalıdır.
- Geliştiriciler bunun yerine
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 bekleyen satın alma işlemleri: Etkin satın alma işlemlerini getirmek için
BillingClient.queryPurchasesAsync()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 Query Purchase History başlıklı makaleyi inceleyin.
- Onaylanmış ve bekleyen satın alma işlemleri: Etkin satın alma işlemlerini getirmek için
BillingFlowParams.ProductDetailsParams.setOfferToken()artık geliştiriciler boş birofferTokenbelirttiğinde istisna oluşturuyor.minSdkVersiondeğeri 21,targetSdkVersiondeğeri 34 olarak güncellendi.
Google Play Faturalandırma Kitaplığı 6.2.1 sürümü (16.04.2024)
Google Play Faturalandırma Kitaplığı'nın 6.2.1 sürümü ve Kotlin uzantıları kullanıma sunuldu.
Değişiklik özeti
BillingClient.showAlternativeBillingOnlyInformationDialog()'daki bir hata düzeltildi. Bu hataya göre, iletişim kutusu tamamlandığındaAlternativeBillingOnlyInformationDialogListenerbelirli durumlarda çağrılmayabiliyordu.
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 kampanyaları desteklemek için API'ler eklendi.
- Harici teklifler sunma özelliğini etkinleştirmek için
BillingClient.Builder.enableExternalOffer()eklendi. - Harici teklifler işlevinin sunulup sunulmadığını kontrol etmek için
BillingClient.isExternalOfferAvailableAsync()eklendi. - Kullanıcıları uygulamanın dışına yönlendirmeden önce kullanıcılara bilgi iletişim kutusu göstermek için
BillingClient.showExternalOfferInformationDialog()eklendi. - Harici teklifler aracılığıyla yapılan işlemleri bildirmek için gereken bir yük oluşturmak üzere
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ığı'nın 6.1.0 sürümü ve Kotlin uzantıları kullanıma sunuldu.
Değişiklik özeti
- Yalnızca alternatif faturalandırmayı (kullanıcıya tercih seçeneği sunulmayan) desteklemek için 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 durumunu kontrol etmek için
BillingClient.isAlternativeBillingOnlyAvailableAsync()eklendi. - Yalnızca alternatif faturalandırma kullanıldığında kullanıcıları bilgilendirmek için bilgi iletişim kutusu gösteren
BillingClient.showAlternativeBillingOnlyInformationDialog()eklendi. - Yalnızca alternatif faturalandırma üzerinden yapılan işlemleri bildirmek için gereken bir yük oluşturmak üzere
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.
- Kullanımdan kaldırılan AlternativeBillingListener yerine
UserChoiceBillingListenereklendi. - Kullanımdan kaldırıldı olarak işaretlenen
AlternativeChoiceDetailsyerineUserChoiceDetailseklendi. - Kullanımdan kaldırıldığı belirtilen
BillingClient.Builder.enableAlternativeBilling()metriğinin yerineBillingClient.Builder.enableUserChoiceBilling()metriği eklendi.
- Kullanımdan kaldırılan AlternativeBillingListener yerine
- Google Play ülke bilgisini 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ığı'nın 6.0.1 sürümü ve Kotlin uzantıları 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ığı'nın 6.0.0 sürümü ve Kotlin uzantıları kullanıma sunuldu.
Değişiklik özeti
ProrationModeyerine kullanılacak yeniReplacementModeenum'ı eklendi.ProrationModeöğesinin, geriye dönük uyumluluk nedeniyle hâlâ kullanılabildiğini unutmayın.PENDINGsatın alma işlemleri için sipariş kimliği kaldırıldı.Daha önce, satın alma işlemi beklemede olsa bile sipariş kimliği her zaman oluşturuluyordu. 6.0.0 sürümünden itibaren, bekleyen satın alma işlemleri için sipariş kimliği oluşturulmayacak. Bu satın alma işlemlerinde sipariş kimliği, satın alma işlemi
PURCHASEDdurumuna taşındıktan sonra doldurulacak.queryPurchasesvelaunchPriceConfirmationFlowyöntemleri kaldırıldı.Daha önce desteği sonlandırılan
queryPurchasesvelaunchPriceConfirmationFlowyöntemleri, Play Billing Library 6.0.0'da kaldırıldı. Geliştiriciler,queryPurchasesyerinequeryPurchasesAsynckullanmalıdır.launchPriceConfirmationFlowalternatifleri için Fiyat değişiklikleri başlıklı makaleyi 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 önceSERVICE_UNAVAILABLEolarak bildirildi.SERVICE_UNAVAILABLEveSERVICE_TIMEOUTgüncellendi.PBL 6.0.0 sürümünden itibaren, işlemede zaman aşımı nedeniyle oluşan hatalar mevcut
SERVICE_TIMEOUTyerineSERVICE_UNAVAILABLEolarak döndürülecektir.Bu davranış, PBL'nin önceki sürümlerinde değişmez.
SERVICE_TIMEOUTkaldırıldı.PBL 6.0.0 sürümünden itibaren
SERVICE_TIMEOUTartık döndürülmeyecek. PBL'nin önceki sürümleri bu kodu döndürmeye devam edecektir.Ek günlük kaydı eklendi.
Play Faturalandırma Kitaplığı 6 sürümünde, API kullanımı (ör. başarı ve başarısızlık) ve hizmet bağlantısı sorunları hakkında bilgi sağlayan ek günlük kaydı özelliği bulunur. Bu bilgiler, Play Faturalandırma Kitaplığı'nın performansını artırmak 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ığı'nın 5.2.1 sürümü ve Kotlin uzantıları 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ığı'nın 5.2.0 sürümü ve Kotlin uzantıları kullanıma sunuldu.
Değişiklik özeti
- Güney Kore'deki kullanıcılar için mobil cihazlarda/tabletlerde alternatif faturalandırma akışlarını destekleyen sınıflar eklendi:
- Başlangıç aboneliğinin harici işlem kimliğini belirtmek için
BillingFlowParams.SubscriptionUpdateParams.Builder.setOriginalExternalTransactionId()yöntemi eklendi. BillingClient.Builder.enableAlternativeBilling()Güney Kore'deki kullanıcıların alternatif faturalandırma seçeneği belirlemesine olanak tanıyan yöntem eklendi.
Google Play Faturalandırma Kitaplığı 5.1 sürümü (31.10.2022)
Google Play Faturalandırma Kitaplığı'nın 5.1.0 sürümü ve Kotlin uzantıları artık 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. targetSdkVersiondeğeri 31 olarak güncellendi.
Google Play Faturalandırma Kitaplığı 5.0 sürümü (11.05.2022)
Google Play Faturalandırma Kitaplığı'nın 5.0.0 sürümü ve Kotlin uzantıları 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 öğeler de 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'deki kişiselleştirilmiş fiyatlandırma ile ilgili
setIsOfferPersonalized()açıklama koşulları için yöntem eklendi. Bu yöntemi kullanma hakkında daha fazla bilgi edinmek için Kişiselleştirilmiş fiyat belirtme başlıklı makaleyi inceleyin. - 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ı. launchPriceChangeFlowdesteği sonlandırıldı ve gelecekteki bir sürümde kaldırılacak. Alternatifler hakkında daha fazla bilgi edinmek için Fiyat değişikliği onay akışı başlatma başlıklı makaleyi inceleyin.- Satın alma süreci başlatılırken daha önce kullanılan
setVrPurchaseFlow()kaldırıldı. Önceki sürümlerde bu yöntem, kullanıcıyı satın alma işlemini Android destekli cihazında tamamlamaya yönlendiriyordu. Bu yöntemi kaldırdığınızda kullanıcılar satın alma işlemini standart satın alma süreci üzerinden tamamlar.
Google Play Faturalandırma Kitaplığı 4.1 sürümü (23.02.2022)
Google Play Faturalandırma Kitaplığı'nın 4.1.0 sürümü ve Kotlin uzantıları kullanıma sunuldu.
Bu sürüm aşağıdaki değişiklikleri içerir.
Değişiklik özeti
- Abonelik ödemelerinin reddedilmesiyle ilgili sorunların çözülmesine yardımcı olmak için
BillingClient.showInAppMessages()eklendi. Abonelik ödemelerinin reddedilmesini ele almak için uygulama içi mesajlaşmayı kullanma hakkında daha fazla bilgi edinmek istiyorsanız Ödemelerin reddedilmesini 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ığı'nın 4.0.0 sürümü ve Kotlin uzantıları 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 sonuçların hangi iş parçacığında yayınlanacağı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öğelerinin yerini alır.Purchase.getQuantity()vePurchaseHistoryRecord.getQuantity()eklendi.Purchase#getSkus()vePurchaseHistoryRecord#getSkus()eklendi. Bu işlevler, kaldırılanPurchase#getSkuvePurchaseHistoryRecord#getSkuişlevlerinin yerini alır.BillingFlowParams#getSku,BillingFlowParams#getSkuDetailsveBillingFlowParams#getSkuTypekaldı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'de hata düzeltmeleri
endConnection()çağrıldığında bellek sızıntısını düzeltir.- Google Play Faturalandırma Kitaplığı'nın, tek görev başlangıç modunu kullanan uygulamalar tarafından kullanılmasıyla ilgili sorunu düzeltir. 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 bir
onPurchasesUpdated()geri çağırma tetiklenir.
Unity'deki 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ığı'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 "Already resumed" (Zaten devam ettirildi) hatasıyla başarısız olmasına neden olan hata düzeltildi.
- Kotlin uzantısı, kotlinx.coroutines kitaplığının 1.4 veya sonraki sürümleriyle kullanıldığında çözümlenmemiş referanslar sorunu 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 uygulama kapatılıp geri yüklendiğinde
PurchasesUpdatedListenerişlevinin satın alma sonucuyla birlikte çağrılmamasına neden olan hata düzeltildi.
Google Play Faturalandırma Kitaplığı 3.0 sürümü (2020-06-08)
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ı.
ChildDirectedveUnderAgeOfConsentparametreleri kaldırıldı.- Kullanımdan kaldı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ı. - Nullability ek açıklamaları eklendi.
Hata düzeltmeleri
SkuDetails.getIntroductoryPriceCycles()artıkStringyerineintdöndürüyor.- Ek parametre ayarlanmamış olsa bile faturalandırma akışının ek parametreler içeriyormuş 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 Kitaplığı'nın 2.2.0 sürümü, geliştiricilerin satın alma işlemlerinin doğru kullanıcıya atfedilmesini sağlamasına yardımcı olan işlevler sunar. Bu değişiklikler, geliştirici yüküne dayalı ö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.
Google Play Faturalandırma Kitaplığı 2 for Unity
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ü yayınladık. Unity uygulama içi satın alma API'sini kullanan oyun geliştiriciler, Google Play Faturalandırma Kitaplığı 2'nin tüm özelliklerinden yararlanmak ve Google Play Faturalandırma Kitaplığı'nın gelecekteki sürümlerine yükseltme işlemlerini 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ığı
AcknowledgePurchaseParamsiçinde, desteği sonlandırılansetDeveloperPayload()vegetDeveloperPayload()yöntemleri.ConsumeParamsiçinde, desteği sonlandırılansetDeveloperPayload()vegetDeveloperPayload()yöntemleri.BillingFlowParams,setAccountId()olarak yeniden adlandırıldı vesetObfuscatedAccountId()olarak değiştirildi. Ayrıca, 64 karakterlik uzunluk sınırlaması ve bu alanda kişisel verilere (PII) izin verilmeyen sınırlama belgelendi.setAccountId()kullanımdan kaldırıldı olarak işaretlendi ve gelecekteki bir kitaplık sürümünde kaldırılacak.BillingFlowParams'da,setObfuscatedAccountId()'a benzer şekilde çalışansetObfuscatedProfileId()eklendi. Daha fazla bilgi için Geliştirici yükü güncellemeleri ve alternatifleri başlıklı makaleyi inceleyin.Purchaseiçinde,BillingFlowParamsiçinde ayarlanan karartılmış hesap tanımlayıcılarını döndürmek içingetAccountIdentifiers()yöntemi eklendi.BillingClientiçinde,loadRewardedSku()yöntemi, ödüllü SKU'ların desteği sonlandırılırken artık kullanılmıyor olarak işaretlendi. Kullanımdan kaldırma 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ı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 Billing Library Kotlin uzantısı, Kotlin tüketimi için deyimsel API alternatifleri sunar. Bu alternatifler, daha iyi null güvenliği ve coroutine'ler içerir. 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
- Cihazda aynı SKU'ya sahip birden fazla hesap olduğunda belirsizliği gidermek için
BillingFlowParams'dasetOldSku(String oldSku)kullanımdan kaldırıldı vesetOldSku(String oldSku, String purchaseToken)ile değiştirildi.
Google Play Faturalandırma Kitaplığı 2.0.3 Sürümü (2019-08-05)
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_ERRORkoduyla başarısız olmasına neden olan hata düzeltildi.
Google Play Faturalandırma Kitaplığı 2.0.2 Sürümü (2019-07-08)
Google Play Faturalandırma Kitaplığı'nın 2.0.2 sürümü kullanıma sunuldu. Bu sürümde referans belgelerinde güncellemeler yapılmıştır ve kitaplık işlevselliği değiştirilmemiştir.
Google Play Faturalandırma Kitaplığı 2.0.1 Sürümü (2019-06-06)
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
nullolarak 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, ürünlerin uygulamanızın içinden (uygulama içi) veya dışından (uygulama dışı) satın alınmasını 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 sağlaması için, Google Play Faturalandırma Kitaplığı üzerinden alınan tüm satın alma işlemlerini, kullanıcıya hak verdikten sonra mümkün olan en kısa sürede onaylamanız gerekir. Satın alma işlemini üç gün içinde onaylamazsanız kullanıcıya otomatik olarak geri ödeme yapılır ve Google Play satın alma işlemini iptal eder. 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 değildir.
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 kaydolma işlemlerinin onaylanması gerekir ancak sonraki yenileme işlemlerini onaylamanız gerekmez. 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 onaylama Boole değerlerini içerir.
Satın alma işlemini onaylamadan önce, işlemin daha önce onaylanıp onaylanmadığını belirlemek için bu yöntemleri kullandığınızdan emin olun.
Satın alma işlemini aşağıdaki yöntemlerden birini kullanarak onaylayabilirsiniz:
- Tüketilebilir ürünler için istemci API'sinde bulunan
consumeAsync()simgesini kullanın. - Tüketilmeyen ürünler için istemci API'sinde bulunan
acknowledgePurchase()değerini kullanın. - Sunucu API'sinde yeni bir
acknowledge()yöntemi de kullanılabilir.
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 ürünleri satın alma sürecinde oluşturmadan önce BillingClient.querySkuDetailsAsync() işlevini çağırıp sonuçtaki 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 eklenebilen rastgele dizeler olan developer payload desteği ekler. Satın alma işlemine geliştirici yükü parametresi ekleyebilirsiniz ancak yalnızca satın alma işlemi onaylandığında veya kullanıldığında. Bu durum, satın alma süreci başlatılırken yükün belirtilebildiği AIDL'deki geliştirici yükünden farklıdır. Satın alma işlemleri artık uygulamanızın dışından başlatılabildiğinden bu değişiklik, satın alma işlemlerine her zaman bir yük ekleme fırsatınız olmasını sağlar.
Yeni kitaplıktaki yük verilerine 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ür. 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:
getOriginalPriceAmountMicros()- İndirimden önceki, biçimlendirilmemiş orijinal SKU fiyatını döndürür.
getOriginalPrice()- Orijinal fiyatı ek para birimi biçimlendirmesiyle döndürür.
Beklemedeki işlemler
Google Play Faturalandırma Kitaplığı'nın 2.0 sürümünde, hak verilmeden ö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ü nakit kullanarak fiziksel bir mağazada satın almayı tercih edebilir. Bu durumda, işlem uygulamanızın dışında tamamlanır. Bu senaryoda, yetkiyi yalnızca kullanıcı işlemi tamamladıktan sonra vermelisiniz.
Bekleyen 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()
kullanın. Yalnızca durum PURCHASED olduğunda hak vermeniz gerektiğini unutmayın. Aşağıdaki adımları uygulayarak Purchase durum güncellemelerini 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. - İade edilen her
PurchasenesnesindePurchase.getPurchaseState()işlevini çağırın. Purchasenesnelerindeki 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 yeni bir gerçek zamanlı geliştirici bildirimi türü olan OneTimeProductNotification de 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 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 PURCHASED olduğunda onayladığınızdan emin olun. PENDING olduğunda onaylamayın.
API değişiklikleri
Google Play Faturalandırma Kitaplığı'nın 2.0 sürümünde, yeni özellikleri desteklemek ve mevcut işlevleri netleştirmek için çeşitli API değişiklikleri yapıldı.
consumeAsync
consumeAsync()
artık purchaseToken yerine
ConsumeParams nesnesi
alıyor. ConsumeParams, purchaseToken ve isteğe bağlı bir geliştirici yükü içerir.
consumeAsync()'nın önceki sürümü bu yayında 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 nesnesiyle aynıdır. Döndürülen verilerde hiçbir değişiklik olmadığını unutmayın. queryPurchaseHistoryAsync(), daha önce olduğu gibi aynı verileri döndürür.
BillingResult döndürülen 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ının yanı sıra hataları teşhis etmek için kullanabileceğiniz bir hata ayıklama dizesi içerir. Hata ayıklama dizesi, en-US yerel ayarını kullanır ve son kullanıcılara gösterilmesi amaçlanmamıştır.
Hata düzeltmeleri
SkuDetails.getIntroductoryPriceAmountMicros()artıkStringyerinelongdöndürüyor.
Google Play Faturalandırma Kitaplığı 1.2.2 Sürümü (2019-03-07)
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 kullanıma sunulan mesaj dizisi sorunu 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ı kullanmaya devam etmeniz önerilse de artık Google Play Faturalandırma Kitaplığı'nı arka plan iş parçacığından başlatabilirsiniz.
- ANR'lere neden olma olasılığını azaltmak için örnek oluşturma işlemi tamamen arka plan iş parçacığına taşındı.
Play Faturalandırma Kitaplığı 1.2.1 sürümü (2019-03-04)
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
PurchasesResultveSkuDetailsResultiçin herkese açık oluşturucular eklendi. SkuDetailsnesneleri yeni bir yöntem olangetOriginalJson()'i kullanabilir.- Tüm AIDL hizmeti çağrıları artık arka plan iş parçacıkları tarafından işleniyor.
Hata düzeltmeleri
- Boş geri çağırma işleyicileri artık herkese açık API'lere iletilmiyor.
Google Play Faturalandırma Kitaplığı 1.2 Sürümü (2018-10-18)
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ılardan abonelik fiyatında bekleyen bir değişikliği incelemelerini isteyen
launchPriceChangeConfirmationFlowAPI'si eklendi. - Kullanıcının aboneliği yükseltilirken veya düşürülürken yeni bir orantılı ödeme modu olan
DEFERREDiçin destek eklendi. BillingFlowParamssı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 abonelik fiyatını değiştirebilir ve kullanıcılar uygulamanıza girdiğinde yeni fiyatı inceleyip kabul etmelerini isteyebilirsiniz.
Bu API'yi kullanmak için abonelik ürününün PriceChangeFlowParams kullanarak bir skuDetails nesnesi oluşturun ve ardından 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 öğ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 fiyatlandırma bilgilerini içeren bir iletişim kutusu gösterilir ve kullanıcılardan yeni fiyatı kabul etmeleri istenir. Bu akış, BillingClient.BillingResponse türünde bir yanıt kodu döndürür.
Yeni kullanım kadar ödeme modu
Bir kullanıcının aboneliğini yükseltirken veya düşürürken yeni bir orantılı ödeme modu olan DEFERRED'yı kullanabilirsiniz. Bu mod, kullanıcının aboneliğini bir sonraki yenileme tarihinde günceller.
Bu orantılı ödeme modunu ayarlama hakkında daha fazla bilgi edinmek için Orantılı ödeme modunu ayarlama başlıklı makaleyi inceleyin.
SKU ayrıntılarını ayarlamak için yeni yöntem
BillingFlowParams sınıfında setSku() yönteminin desteği sonlandırıldı.
Bu değişiklik, Google Play Faturalandırma akışını optimize etmeye yöneliktir.
Uygulama içi faturalandırma istemcinizde BillingFlowParams öğesinin yeni bir örneğini oluştururken aşağıdaki kod snippet'inde gösterildiği gibi setSkuDetails() kullanarak doğrudan JSON nesnesiyle çalışmanızı öneririz:
BillingFlowParams Builder sınıfında setSku() yönteminin desteği sonlandı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ü (2018-05-07)
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
BillingFlowParamsiçinde orantılı ödeme modu belirtme desteği eklendi. BillingFlowParamsiçindekireplaceSkusProrationboole işareti artık desteklenmiyor. Bunun yerinereplaceSkusProrationModepolitikasını kullanın.launchBillingFlow()artık başarısız yanıtlar için geri arama tetikliyor.
Davranış değişiklikleri
Google Play Faturalandırma Kitaplığı'nın 1.1 sürümünde aşağıdaki davranış değişiklikleri yer alır.
Geliştiriciler, BillingFlowParams sınıfında replaceSkusProrationMode ayarlayabilir.
ProrationMode, kullanıcının aboneliği yükseltilirken veya düşürülürken yapılan orantılı ödeme türü 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 orantılı ödeme modlarını destekler:
IMMEDIATE_WITH_TIME_PRORATION |
Değişiklik hemen geçerli olur ve yeni son kullanma zamanı, kullanım süresine göre hesaplanarak kullanıcıya yansıtılır. Bu, mevcut varsayılan davranıştır. |
IMMEDIATE_AND_CHARGE_PRORATED_PRICE |
Değişiklik hemen geçerli olur ve faturalandırma dönemi aynı kalır. Kalan süre için ücret alınır.
Not: Bu seçenek yalnızca abonelik yükseltme için kullanılabilir. |
IMMEDIATE_WITHOUT_PRORATION |
Değişiklik hemen geçerli olur ve yeni fiyat, bir sonraki yinelenme tarihinde tahsil edilir. Faturalandırma dönemi aynı kalır. |
replaceSkusProration artık BillingFlowParams sınıfında desteklenmiyor
Geliştiriciler, abonelik yükseltme isteği için orantılı tutarda ödeme alınmasını sağlamak üzere bir boole işareti ayarlayabiliyordu. Daha ayrıntılı orantılı ödeme talimatı içeren ProrationMode desteklendiğinden bu boole işareti artık desteklenmemektedir.
launchBillingFlow() artık başarısız yanıtlar için geri çağırma tetikliyor
Faturalandırma Kitaplığı her zaman PurhcasesUpdatedListener geri çağırmasını tetikler ve BillingResponse değerini eşzamansız olarak döndürür. BillingResponse
işlevinin senkron dönüş değeri de korunur.
Hata düzeltmeleri
- Hizmet bağlantısı kesildiğinde eşzamansız yöntemlerde düzgün şekilde erken çıkış yapılır.
BuilderParametre nesneleri artık oluşturulan nesneleri değiştirmiyor.- Sorun 68087141:
launchBillingFlow()artık başarısız yanıtlar için geri çağırmayı tetikleyin.
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ında yerleştirilmiş faturalandırma izni. Artık Android manifest dosyasına
com.android.vending.BILLINGiznini eklemeniz gerekmez. BillingClient.Buildersınıfına yeni oluşturucu eklendi.- SKU'ları sorgulamak için kullanılan yöntemlerde kullanılacak
SkuDetailsParamssınıfı için oluşturucu kalıbı kullanıma sunuldu. - Tutarlılık için çeşitli API yöntemleri güncellendi (aynı dönüş bağımsız değişkeni adları ve sıra).
Davranış değişiklikleri
Google Play Faturalandırma Kitaplığı'nın 1.0 sürümünde aşağıdaki davranış değişiklikleri yer alır.
BillingClient.Builder sınıfı
BillingClient.Builder
artık newBuilder kalıbı kullanılarak 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 özel 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, oluşturucu kalıbı içine yerleştirildi:
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ılık oluşturmak için önceki sarmalayıcı sınıf yerine sonuç kodu ve SkuDetails nesnelerinin listesi aracılığıyla döndürülüyor:
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
onConsumeResponse için ConsumeResponseListener arayüzündeki bağımsız değişkenlerin sırası, API'mizde tutarlılık sağlamak amacıyla değiştirildi:
Kotlin
fun onConsumeResponse(@BillingResponse responseCode: Int, outToken: String)
Java
public void onConsumeResponse(@BillingResponse int responseCode, String outToken)
Sarmalanmamış PurchaseResult nesnesi
PurchaseResult
API'mizde tutarlılık sağlamak için sarmalandı:
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ü (2017-06-12, Duyuru)
Faturalandırma konusunda geliştirme sürecini basitleştirmeyi amaçlayan geliştirici önizlemesi kullanıma sunuldu. Bu sayede geliştiriciler, uygulama mimarisi ve gezinme yapısı gibi Android uygulamasına özgü 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 üzerinde bir soyutlama katmanı da sağlar. Bu sayede geliştiriciler, uygulama ile Google Play Faturalandırma API'si arasındaki arayüzü daha kolay tanımlayabilir.