Bu dokümanda, Google Play Faturalandırma Kitaplığı ile ilgili sürüm notları yer almaktadır.
Android becerileri
GitHub'da gösterGoogle Play 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 tercihi 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 çağırma işlevini almak için
BillingChoiceInfoResponseListenereklendi. - Kotlin uzantısı
BillingClient.getBillingChoiceInfo()askıya alma işlevi eklendi. - Faturalandırma programıyla ilgili bilgi iletişim kutusunu göstermek için
BillingClient.showBillingProgramInformationDialog()eklendi. - İletişim kutusunu yapılandırmak için
BillingProgramInformationDialogParamseklendi. - Geri çağırma işlevini almak için
BillingProgramInformationDialogListenereklendi. - Faturalandırma seçeneğinin kullanılabilirliği hakkında ayrıntılı bilgi sağlamak 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ığı'nın 9.0.0 sürümü ve Kotlin uzantıları kullanıma sunuldu. PBL'nin önceki sürümlerinden geçiş yapmak istiyorsanız PBL 9 geçiş rehberini inceleyin.
Değişiklik özeti
Engellenen Google Play Store etkinliği için hata kodları güncellendi: Engellenen Google Play Store uygulamaları için 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
ERRORyerineBILLING_UNAVAILABLEolarak değiştirildi. Ayrıca bu gibi durumlardaBillingResultartık Google Play Store engellendi hata ayıklama mesajını gösterir.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 yönetmek için entegrasyon kodunuzun, tarayıcı intent'lerini ayrıştırmadan veya başlatmadan önce
DeveloperProvidedBillingDetails.getLinkUri()yönteminden 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ıları yaklaşan fiyat artışı onayı hakkında bilgilendirebilirsiniz. Bu sayede kullanıcılar uygulamadan ayrılmadan fiyat artışını onaylayabilir. Onay bekleyen fiyat artışı mesajı, kullanıcının fiyat artışını kabul edebileceği ilk günden itibaren gösterilir ve mesaj en fazla 7 günde bir 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ışından ayrılma için hata kategorilendirmesi iyileştirildi:
- Kullanıcı, harici bir uygulamada (ör. e-cüzdan) ödemeyi tamamlamak için satın alma sürecinden ayrılır ve geri dönmeden işlemi iptal ederse istemciye döndürülen yanıt kodu artık
BILLING_ACTIVITY_PAUSEDhata ayıklama mesajıyla birlikteBillingResponseCode.USER_CANCELED(1) olur (önceden varsayılan olarakBillingResponseCode.ERROR(6) idi).
- Kullanıcı, harici bir uygulamada (ör. e-cüzdan) ödemeyi tamamlamak için satın alma sürecinden ayrılır ve geri dönmeden işlemi iptal ederse istemciye döndürülen yanıt kodu artık
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
isBillingProgramAvailableAsyncvecreateBillingProgramReportingDetailsAsyncişlevlerindeki 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
BillingClientkurulumunu 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 teklifine veya uygulama indirme işlemine harici bağlantı başlatmak için
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 sayfasına bakın. Yeni API'lerle dış kampanya akışlarını nasıl başlatacağınızı öğrenmek için entegrasyon kılavuzunu inceleyin.
BillingClient.Builder.enableExternalOfferAPI'sinin desteği sonlandırıldı.isExternalOfferAvailableAsyncAPI'sinin desteği sonlandırıldı.createExternalOfferReportingDetailsAsyncAPI'sinin desteği sonlandırıldı.showExternalOfferInformationDialogAPI'sinin 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
Abonelikleri sorgularken askıya alınmış abonelikleri de dahil etmek için
BillingClient.queryPurchasesAsync()yöntemine yeni bir parametre eklendi. Askıya alınmış abonelikler hâlâ kullanıcıyla ilişkilendirilir 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ış abonelikler içinisSuspended() = truedeğerini döndürür. Bu durumda, satın alınan aboneliğe erişim izni vermemeniz ve 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önlendirmeniz gerekir.Aboneliklerdeki güncellemeler:
BillingFlowParams.ProductDetailsParamsnesnesi artık ürün düzeyinde değiştirme bilgilerini belirtebileceğinizsetSubscriptionProductReplacementParams()yöntemine sahiptir.SubscriptionProductReplacementParamsnesnesinin iki ayarlayıcı yöntemi vardır:setOldProductId: MevcutProductDetailsiçindeki ü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şleme güncellenmiştir. Bir öğenin mevcut ödeme planını değiştirmeden korumanıza olanak tanıyan yeni bir değiştirme modu (KEEP_EXISTING) kullanıma sunuldu.
SubscriptionUpdateParams setSubscriptionReplacementMode desteği sonlandı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'si 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 kazanır ve ürünleri 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. Bu durum, ürünün bulunamaması veya kullanıcıya sunulan teklif olmaması gibi nedenlerden kaynaklanabilir. PBL 8.0.0 ile, alınmayan ürünler, alınmayan ü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 başlıklı makaleyi inceleyin.Hizmet bağlantısı otomatik olarak yeniden kurulur.
Yeni
BillingClient.Builder.enableAutoServiceReconnection()oluşturucu parametresi, geliştiricilerin otomatik hizmet yeniden bağlantısını etkinleştirmesine olanak tanır. Bu sayede, Google Play Faturalandırma Hizmeti'ne yeniden bağlantılar otomatik olarak gerçekleştirilir ve hizmet bağlantısının kesilmesi durumundastartConnection()yöntemini manuel olarak çağırma ihtiyacı ortadan kalkar. Böylece bağlantı yönetimi basitleşir. 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, yalnızca bazı durumlarda hatanın daha ayrıntılı bir nedenini belirtmek için doldurulur. Alt yanıt alanı aşağıdaki değerleri içerebilir:PAYMENT_DECLINED_DUE_TO_INSUFFICIENT_FUNDS: Kullanıcının bakiyesi, satın almaya çalıştığı öğenin fiyatından düşük olduğunda döndürülür.USER_INELIGIBLE: Kullanıcı, bir 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ıldı olarak işaretlenen
queryPurchaseHistory()yöntemi artık kaldırıldı. Bunun yerine hangi alternatif API'lerin kullanılacağıyla ilgili ayrıntılar için Satın Alma Geçmişini Sorgulama bölümüne bakın.querySkuDetailsAsync()yöntemi kaldırıldı.Daha önce desteği sonlandırıldı olarak işaretlenen
querySkuDetailsAsync()yöntemi artık kaldırıldı. Bunun yerine queryProductDetailsAsync yöntemini kullanmanız gerekir.BillingClient.Builder.enablePendingPurchases()yöntemi kaldırıldı.Daha önce kullanımdan kaldırıldı olarak işaretlenen ve parametre içermeyen
enablePendingPurchases()yöntemi artık kaldırıldı. Bunun yerineenablePendingPurchases(PendingPurchaseParams params)kullanmalısınız. Kullanımdan kaldırılanenablePendingPurchases(), işlevsel olarakenablePendingPurchases(PendingPurchasesParams.newBuilder().enableOneTimeProducts().build())ile aynıdır.skuType alan aşırı yüklenmiş
queryPurchasesAsync()yöntemi kaldırıldı.Daha önce desteği sonlandırıldı olarak işaretlenen
queryPurchasesAsync(String skuType, PurchasesResponseListener listener)yöntemi artık 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
- Google Play Faturalandırma Kitaplığı 7.1.0'da
BillingResultyanıt kodlarını test etme 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ığı'nın 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 iş parçacığı güvenliği iyileştirildi.
- Play Faturalandırma Kitaplığı 7.1.1'de tam olarak yayınlanan
BillingResultyanıt kodlarını test etmek için kısmi değişiklikler yapıldı. Bu özelliği kullanarak entegrasyonunuzu test etmek için Play Faturalandırma Kitaplığı 7.1.1 sürümüne yükseltmeniz gerekir. Yalnızca faturalandırma geçersiz kılma testinin etkin olduğu uygulamaları etkileyen ve normal kullanımı etkilemeyen bir hata var. Daha fazla bilgi içinBillingResultyanıt kodlarını test etme başlıklı makaleyi inceleyin.
Google Play Faturalandırma Kitaplığı 7.0.0 Sürümü (14.05.2024)
Google Play Faturalandırma Kitaplığı'nın 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 yükleme tabanı planları için
ProductDetails.InstallmentPlanDetailseklendi. Bu API, uygulamanızın taksit planını ve taahhüt ayarlarını tanımlayarak kullanıcıya ilgili bilgileri sunmasına yardımcı olur. Daha fazla bilgi için abonelik taksitleri kılavuzumuzu inceleyin.
- Kullanıcıların satın almaya uygun olduğu taksitli yükleme tabanı 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 eşdeğerdir.
- 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
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 bekleyen satın alma işlemleri kılavuzumuzu inceleyin. - Bekleyen ek ödemeyi veya mevcut bir aboneliğin yükseltme ya da düşürme işlemini 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
UserChoiceBillingListenerveUserChoiceDetailsileBillingClient.Builder.enableUserChoiceBilling()kullanmalı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.Builder#setSubscriptionReplacementMode(int)ileBillingFlowParams.SubscriptionUpdateParams.ReplacementModekullanmalı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:- Onaylanan ve bekleyen satın alma işlemleri: Etkin satın alma işlemlerini getirmek için
BillingClient.queryPurchasesAsync()yöntemini 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 İşlem Geçmişini Sorgulama başlıklı makaleyi inceleyin.
- Onaylanan ve bekleyen satın alma işlemleri: Etkin satın alma işlemlerini getirmek için
BillingFlowParams.ProductDetailsParams.setOfferToken(), geliştiriciler boş birofferTokenbelirttiğinde artık istisna oluşturuyor.minSdkVersion21,targetSdkVersionise 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()içinde, iletişim kutusu tamamlandığında belirli durumlardaAlternativeBillingOnlyInformationDialogListeneröğesinin ç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
- Dış kampanyaları desteklemek için API'ler eklendi
- Dış kampanyalar sunma özelliğini etkinleştirmek için
BillingClient.Builder.enableExternalOffer()eklendi. - Harici teklif sunma işlevinin kullanılabilirliğini kontrol etmek için
BillingClient.isExternalOfferAvailableAsync()eklendi. - Kullanıcıları uygulama dışına yönlendirmeden önce bilgi iletişim kutusu göstermek için
BillingClient.showExternalOfferInformationDialog()eklendi. - Dış teklifler aracılığıyla yapılan işlemleri bildirmek için gereken yükü oluşturmak üzere
BillingClient.createExternalOfferReportingDetailsAsync()eklendi.
- Dış kampanyalar 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) 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 imkanının kontrol edilmesi için
BillingClient.isAlternativeBillingOnlyAvailableAsync()eklendi. - Yalnızca alternatif faturalandırma kullanıldığında kullanıcıları bilgilendirmek için bilgi iletişim kutusu gösterecek
BillingClient.showAlternativeBillingOnlyInformationDialog()eklendi. - Yalnızca alternatif faturalandırma üzerinden yapılan işlemleri bildirmek için gereken 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ıldı olarak işaretlenen AlternativeBillingListener'ın yerine
UserChoiceBillingListenereklendi. - Kullanımdan kaldırıldı olarak işaretlenen
AlternativeChoiceDetailsyerineUserChoiceDetailseklendi. - Kullanımdan kaldırıldı olarak işaretlenen
BillingClient.Builder.enableAlternativeBilling()yerineBillingClient.Builder.enableUserChoiceBilling()eklendi.
- Kullanımdan kaldırıldı olarak işaretlenen AlternativeBillingListener'ın 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
Google 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 yeniReplacementModeenum eklendi.ProrationMode, geriye dönük uyumluluk nedeniyle hâlâ kullanılabilir.PENDINGsatı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şturuluyordu. 6.0.0 sürümünden itibaren, bekleyen satın alma işlemleri için sipariş kimliği oluşturulmayacak ve bu satın alma işlemleri için sipariş kimliği, satın alma işlemi
PURCHASEDdurumuna taşındıktan sonra doldurulacaktır.queryPurchasesvelaunchPriceConfirmationFlowyöntemleri kaldırıldı.Daha önce desteği sonlandırıldı olarak işaretlenen
queryPurchasesvelaunchPriceConfirmationFlowyöntemleri, Google Play Faturalandırma Kitaplığı 6.0.0 sürümünde kaldırıldı. GeliştiricilerqueryPurchasesyerinequeryPurchasesAsynckullanmalı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 bir hata oluştuğunda döndürülür. Bu ağ bağlantısı hataları daha önceSERVICE_UNAVAILABLEolarak bildiriliyordu.SERVICE_UNAVAILABLEveSERVICE_TIMEOUTgüncellendi.PBL 6.0.0 sürümünden itibaren, işlemedeki zaman aşımından kaynaklanan hatalar mevcut
SERVICE_TIMEOUTyerineSERVICE_UNAVAILABLEolarak döndürülecek.PBL'nin önceki sürümlerinde davranış 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 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, Google Play Faturalandırma Kitaplığı'nın 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ığı'nın 5.2.1 sürümü ve Kotlin uzantıları kullanıma sunuldu.
Değişiklik özeti
Google 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:
- 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ıyan
BillingClient.Builder.enableAlternativeBilling()yöntemi 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ı kullanıma sunuldu.
Bu sürümde aşağıdaki değişiklikler yapılmıştır.
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. targetSdkVersion31 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ümde aşağıdaki değişiklikler yapılmıştır.
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 geçiş rehberini inceleyin.
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ı. 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.- Daha önce satın alma süreci örneklendirilirken 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ümde aşağıdaki değişiklikler yapılmıştır.
Değişiklik özeti
- Abonelik ödemelerinin reddedilmesiyle ilgili sorunları çözmeye yardımcı olmak için
BillingClient.showInAppMessages()eklendi. Abonelik ödemelerinin reddedilmesiyle ilgili sorunları çözmek için uygulama içi mesajlaşmayı nasıl kullanacağınız hakkında daha fazla bilgi edinmek isterseniz Ödeme reddi sorunlarını çözme 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()politikasının yerineBillingClient.queryPurchasesAsync()politikası eklendi.Yeni abonelik değiştirme modu eklendi
IMMEDIATE_AND_CHARGE_FULL_PRICE.Google Play Faturalandırma Kitaplığı'nın bağlantı durumunu almak için
BillingClient.getConnectionState()yöntemi eklendi.Javadoc ve uygulama, bir yöntemin hangi iş parçacığında çağrılabileceğini ve hangi iş parçacığı sonuçlarının yayınlanacağını gösterecek şekilde 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#setOldSkuyerine geçer.Purchase.getQuantity()vePurchaseHistoryRecord.getQuantity()eklendi.Purchase#getSkus()vePurchaseHistoryRecord#getSkus()eklendi. Bunlar, kaldırılanPurchase#getSkuvePurchaseHistoryRecord#getSku'nin 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 hata düzeltmeleri
endConnection()çağrıldığında bellek sızıntısını düzeltin.- Tek görevli başlangıç modunu kullanan uygulamalar tarafından Google Play Faturalandırma Kitaplığı kullanıldığında ortaya çıkan sorun düzeltildi. Uygulama, Android başlatıcıdan devam ettirildiğinde ve faturalandırma iletişim kutusu askıya alınmadan önce görünür olduğunda bir
onPurchasesUpdated()geri çağırma 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 faturalandırma iletişim kutusu askıya alınmadan önce görünür olduğunda satın alma işlemlerini engelleyen sorunu çözmek için Java 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 3.0.2 sürümü ve Kotlin uzantısı kullanıma sunuldu.
Hata düzeltmeleri
- Kotlin uzantısında, eş yordamın "Zaten devam ettirildi" hatasıyla başarısız olmasına neden olan bir hata düzeltildi.
- Kotlin uzantısı, kotlinx.coroutines kitaplığının 1.4 ve sonraki sürümleriyle kullanıldığında ortaya çıkan çözümlenmemiş referanslar düzeltildi.
Google Play Faturalandırma Kitaplığı 3.0.1 Sürümü (30.09.2020)
Google Play Faturalandırma Kitaplığı'nın 3.0.1 sürümü ve Kotlin uzantısı kullanıma sunuldu.
Hata düzeltmeleri
- Faturalandırma akışı sırasında uygulama kapatılıp geri yüklendiğinde
PurchasesUpdatedListeneryönteminin satın alma sonucuyla çağrılmamasına neden olan bir hata 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ı.
ChildDirectedveUnderAgeOfConsentparametreleri 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ı. - Null değer alabilme ek açıklamaları eklendi.
Hata düzeltmeleri
SkuDetails.getIntroductoryPriceCycles()artıkStringyerineintdöndürüyor.- Ek parametreler ayarlanmamış olsa bile faturalandırma akışının ek parametreleri varmış 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şlemlerini doğru kullanıcıyla ilişkilendirmesine 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şlevi kullanımdan kaldırılmıştır ve gelecekteki bir sürümde kaldırılacaktır. Önerilen alternatifler de dahil olmak üzere daha fazla bilgi için Geliştirici yükü 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ılabilen bir sürümünü de 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 daha kolay yükseltme yapmak için hemen yükseltme yapabilirler.
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ığı
AcknowledgePurchaseParamssınıfında, desteği sonlandırılansetDeveloperPayload()vegetDeveloperPayload()yöntemleri.ConsumeParamssınıfında,setDeveloperPayload()vegetDeveloperPayload()yöntemlerinin desteği sonlandırıldı.BillingFlowParamstarihinde,setAccountId()alanısetObfuscatedAccountId()olarak yeniden adlandırıldı ve bu alanda 64 karakterlik uzunluk kısıtlaması ile kişisel verilerin (PII) kullanılmasına izin vermeyen kısıtlama belgelendi.setAccountId(), desteği sonlandırılmış olarak işaretlendi ve gelecekteki bir kitaplık sürümünde kaldırılacak.BillingFlowParamssürümünde,setObfuscatedAccountId()ile benzer şekilde çalışansetObfuscatedProfileId()eklendi. Daha fazla bilgi için Geliştirici yükü güncellemeleri ve alternatifleri başlıklı makaleyi inceleyin.Purchasesürümünde,BillingFlowParamsiçinde ayarlanan gizlenmiş hesap tanımlayıcılarını döndürmek içingetAccountIdentifiers()yöntemi eklendi.BillingClientsürümünde, ödüllü SKU'ların desteğinin sonlandırılması kapsamındaloadRewardedSku()yönteminin desteği sonlandırıldı olarak işaretlendi.
Google Play Faturalandırma Kitaplığı 2.1.0 Sürümü ve Kotlin Uzantısı 2.1.0 Sürümü (10.12.2019)
Google Play Faturalandırma Kitaplığı'nın 2.1.0 sürümü ve yeni Kotlin uzantısı kullanıma sunuldu. Play Faturalandırma Kitaplığı Kotlin uzantısı, Kotlin kullanımı için daha iyi boş değer güvenliği ve eş yordamlar içeren deyimsel API alternatifleri sunar. Kod örnekleri için Google Play Faturalandırma Kitaplığı'nı kullanma başlıklı makaleye bakın.
Bu sürümde aşağıdaki değişiklikler yapılmıştır.
Değişiklik özeti
BillingFlowParamssürümünde, cihazdaki birden fazla hesap aynı SKU'ya sahip olduğunda anlam belirsizliğini gidermek içinsetOldSku(String oldSku)kullanımdan kaldırıldı ve yerinesetOldSku(String oldSku, String purchaseToken)getirildi.
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()yönteminin başarılı bir sonuç döndürmek yerine bazenDEVELOPER_ERRORkoduyla başarısız olmasına neden olan bir 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ık işlevini değiştirmez.
Google Play Faturalandırma Kitaplığı 2.0.1 Sürümü (06.06.2019)
Google Play Faturalandırma Kitaplığı'nın 2.0.1 sürümü kullanıma sunuldu. Bu sürümde aşağıdaki değişiklikler yapılmıştır.
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ümde aşağıdaki değişiklikler yapılmıştır.
Satın alma işlemlerinin üç gün içinde onaylanması gerekir
Google Play, uygulamanızın içinden (uygulama içi) veya uygulamanızın 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 Google Play Faturalandırma Kitaplığı üzerinden yapılan tüm satın alma işlemlerini, kullanıcıya yararlanma hakkı verdikten sonra mümkün olan 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 Google Play satın alma işlemini iptal eder. Bekleyen 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.
Abonelikler için, yeni bir satın alma jetonu olan tüm satın alma işlemlerini onaylamanız gerekir. Bu, tüm ilk satın alma işlemlerinin, plan değişikliklerinin ve yeniden kaydolma işlemlerinin onaylanması gerektiği, ancak sonraki yenilemeleri onaylamanız gerekmediği anlamına gelir. Bir satın alma işleminin onaylanması gerekip gerekmediğini belirlemek için satın alma işlemindeki onay alanını kontrol edebilirsiniz.
Purchase nesnesi artık bir satın alma işleminin onaylanıp onaylanmadığını gösteren bir isAcknowledged() yöntemi içeriyor. Ayrıca Google Play Developer API, hem Purchases.products hem de Purchases.subscriptions için onay Boole değerleri içerir.
Bir satın alma işlemini onaylamadan önce, satın alma işleminin 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()yöntemini kullanın. - Tüketilmeyen ürünler için istemci API'sinde bulunan
acknowledgePurchase()yöntemini 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ı. Satın alma sürecinde ürünleri oluşturmadan önce BillingClient.querySkuDetailsAsync() yöntemini çağırıp elde edilen SkuDetails nesnesini BillingFlowParams.Builder.setSkuDetails() yöntemine 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ü, geliştirici yükü (satın alma işlemlerine eklenebilen rastgele dizeler) için destek ekler. Bir satın alma işlemine geliştirici yükü parametresi ekleyebilirsiniz ancak bu işlem yalnızca satın alma işlemi onaylandığında veya tüketildiğinde yapılabilir. Bu, 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 yük ekleme fırsatınız olmasını sağlar.
Yeni kitaplıktaki yüke erişmek için Purchase nesneleri artık bir getDeveloperPayload() yöntemi içerir.
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()- SKU'nun indirimden önceki biçimlendirilmemiş orijinal 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üyle, yararlanma hakkı verilmeden önce ek işlem yapılması gereken satın alma işlemlerini desteklemeniz gerekir. Örneğin, kullanıcılar uygulama içi ürününüzü fiziksel bir mağazadan nakit ödeme yaparak satın almayı tercih edebilir. Bu, işlemin uygulamanızın dışında tamamlandığı anlamına gelir. Bu senaryoda, yararlanma hakkını yalnızca kullanıcı işlemi tamamladıktan sonra vermeniz gerekir.
Bekleyen satın alma işlemlerini etkinleştirmek için uygulamanızı başlatırken enablePendingPurchases() yöntemini ç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 yararlanma hakkı vermeniz gerektiğini unutmayın. Purchase durum güncellemelerini kontrol etmek için aşağıdaki adımları uygulamanız gerekir:
- Uygulamanızı başlatırken kullanıcıyla ilişkili tüketilmemiş ürünlerin listesini almak için
BillingClient.queryPurchases()yöntemini çağırın. - Döndürülen her
PurchasenesnesindePurchase.getPurchaseState()yöntemini ç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 PENDING durumunu içerir.
Bekleyen işlemler abonelikler için desteklenmez.
Bu sürümde ayrıca yeni bir gerçek zamanlı geliştirici bildirimi türü olan OneTimeProductNotification 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.
Bekleyen satın alma işlemlerini onaylarken, yalnızca satın alma durumu PURCHASED olduğunda onayladığınızdan ve PENDING olmadığından 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ır. ConsumeParams, purchaseToken ve isteğe bağlı bir geliştirici yükü içerir.
consumeAsync() uygulamasının önceki sürümü bu sürümde kaldırıldı.
queryPurchaseHistoryAsync
Karışıklığı en aza indirmek için queryPurchaseHistoryAsync() artık Purchase nesnesi yerine PurchaseHistoryRecord nesnesi döndürüyor. PurchaseHistoryRecord nesnesi, yalnızca queryPurchaseHistoryAsync() tarafından döndürülen değerleri yansıtması ve autoRenewing, orderId ve packageName alanlarını içermemesi dışında Purchase nesnesiyle aynıdır. Döndürülen verilerde herhangi bir değişiklik yapılmadığını unutmayın. queryPurchaseHistoryAsync(), daha önce olduğu gibi 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 bir BillingResult nesnesi döndürüyor. BillingResult, BillingResponse tam sayısının yanı sıra hataları teşhis etmek için kullanabileceğiniz bir hata ayıklama dizesi içerir. Hata ayıklama dizesi en-US yerel ayarını kullanır ve son kullanıcılara gösterilmez.
Hata düzeltmeleri
SkuDetails.getIntroductoryPriceAmountMicros()artıkStringyerinelongdö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ümde aşağıdaki değişiklikler yapılmıştır.
Hata düzeltmeleri
- 1.2.1 sürümünde ortaya çıkan 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ı kullanmanız önerilse de artık Google Play Faturalandırma Kitaplığı'nı arka plan iş parçacığından örneklendirebilirsiniz.
- ANR'lere neden olma olasılığını azaltmak için örneklendirme 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ümde aşağıdaki değişiklikler yapılmıştır.
Ö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üne özel özellikler ekleme başlıklı makaleyi inceleyin.
Diğer değişiklikler
- Testi kolaylaştırmak için
PurchasesResultveSkuDetailsResultiçin herkese açık yapıcılar eklendi. SkuDetailsnesneleri yeni bir yöntem olangetOriginalJson()yöntemini kullanabilir.- Tüm AIDL hizmet çağrıları artık arka plan iş parçacıkları tarafından işlenir.
Hata düzeltmeleri
- Boş geri çağırma işleyicileri artık herkese açık API'lere iletilmez.
Google Play Faturalandırma Kitaplığı 1.2 Sürümü (18.10.2018)
Google Play Faturalandırma Kitaplığı'nın 1.2 sürümü kullanıma sunuldu. Bu sürümde aşağıdaki değişiklikler yapılmıştır.
Değişiklik özeti
- Google Play Faturalandırma Kitaplığı artık Android Yazılım Geliştirme Kiti Lisans Sözleşmesi kapsamında lisanslanmaktadır.
- Kullanıcılardan abonelik fiyatında bekleyen bir değişikliği incelemelerini isteyen
launchPriceChangeConfirmationFlowAPI'si eklendi. - Kullanıcının aboneliğini yükseltirken veya düşürürken yeni bir eşit oranda dağıtım 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ı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() yöntemini çağırı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 yöntemini 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ışı, yeni fiyatlandırma bilgilerini içeren bir iletişim kutusu göstererek kullanıcılardan yeni fiyatı kabul etmelerini ister. 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 eşit dağıtım modu olan DEFERRED kullanabilirsiniz. Bu mod, kullanıcının aboneliğini bir sonraki yenileme tarihinde günceller.
Bu eşit dağıtım modunu nasıl ayarlayacağınız hakkında daha fazla bilgi edinmek için Eşit dağıtım 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 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 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ü (07.05.2018)
Google Play Faturalandırma Kitaplığı'nın 1.1 sürümü kullanıma sunuldu. Bu sürümde aşağıdaki değişiklikler yapılmıştır.
Değişiklik özeti
- Mevcut bir aboneliği yükseltirken/düşürürken
BillingFlowParamsiçinde bir oranlama 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 çağırma tetikliyor.
Davranış değişiklikleri
Google Play Faturalandırma Kitaplığı'nın 1.1 sürümü, aşağıdaki davranış değişikliklerini içerir.
Geliştiriciler, BillingFlowParams sınıfında replaceSkusProrationMode değerini ayarlayabilir.
ProrationMode, bir kullanıcının aboneliğini yükseltirken veya düşürürken kullanılan eşit dağıtım türü hakkında daha fazla ayrıntı sağlar.
Kotlin
BillingFlowParams.newBuilder() .setSku(skuId) .setType(billingType) .setOldSku(oldSku) .setReplaceSkusProrationMode(replaceSkusProrationMode) .build()
Java
BillingFlowParams.newBuilder() .setSku(skuId) .setType(billingType) .setOldSku(oldSku) .setReplaceSkusProrationMode(replaceSkusProrationMode) .build();
Google Play, aşağıdaki orantılı hesaplama modlarını destekler:
IMMEDIATE_WITH_TIME_PRORATION |
Değişiklik hemen geçerli olur ve yeni sona erme zamanı, kullanım süresine göre hesaplanarak kullanıcıya kredi olarak verilir veya kullanıcıdan tahsil edilir. 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 zamanında tahsil edilir. Faturalandırma dönemi aynı kalır. |
replaceSkusProration artık BillingFlowParams sınıfında desteklenmiyor
Geliştiriciler daha önce, abonelik yükseltme isteği için eşit olarak dağıtılmış bir tutar ücretlendirmek üzere boole işareti ayarlayabiliyordu. Daha ayrıntılı orantılı hesaplama talimatı içeren ProrationMode desteklendiğinden bu boole işareti artık desteklenmiyor.
launchBillingFlow() artık başarısız yanıtlar için bir geri çağırma tetikliyor.
Faturalandırma Kitaplığı her zaman PurhcasesUpdatedListener geri çağırmasını tetikler ve eşzamansız olarak BillingResponse döndürür. BillingResponse
işlevinin eşzamanlı dönüş değeri de korunur.
Hata düzeltmeleri
- Hizmet bağlantısı kesildiğinde asenkron yöntemlerden erken çıkış yapar.
Builderparam nesneleri artık oluşturulan nesneleri değiştirmez.- Sorun 68087141:
launchBillingFlow()artık başarısız yanıtlar için geri çağırmayı tetikliyor.
Google Play Faturalandırma Kitaplığı 1.0 Sürümü (19.09.2017, Duyuru)
Google Play Faturalandırma Kitaplığı'nın 1.0 sürümü kullanıma sunuldu. Bu sürümde aşağıdaki değişiklikler yapılmıştır.
Önemli değişiklikler
- Kitaplığın manifest dosyasında yerleşik 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 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ırası).
Davranış değişiklikleri
Google Play Faturalandırma Kitaplığı'nın 1.0 sürümü aşağıdaki davranış değişikliklerini içerir.
BillingClient.Builder sınıfı
BillingClient.Builder
artık newBuilder kalıbı 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
Satın alma veya abonelik için faturalandırma akışını başlatmak üzere launchBillingFlow() yöntemi, isteğe özel parametrelerle başlatılan bir BillingFlowParams örneği alır:
Kotlin
BillingFlowParams.newBuilder().setSku(skuId) .setType(billingType) .setOldSku(oldSku) .build() // Then, use the BillingFlowParams to start the purchase flow val responseCode = billingClient.launchBillingFlow(builder.build())
Java
BillingFlowParams.newBuilder().setSku(skuId) .setType(billingType) .setOldSku(oldSku) .build(); // Then, use the BillingFlowParams to start the purchase flow int responseCode = billingClient.launchBillingFlow(builder.build());
Mevcut ürünleri sorgulamanın yeni yolu
queryPurchaseHistoryAsync() ve querySkuDetailsAsync() yö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 bir sonuç kodu ve SkuDetails nesnelerinin listesi aracılığıyla döndürülür. Bu değişiklik, kullanım kolaylığı sağlamak ve API'mizde tutarlılık sağlamak amacıyla önceki sarmalayıcı sınıfının yerine yapılmıştı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'miz genelinde tutarlı olacak şekilde değiştirildi:
Kotlin
fun onConsumeResponse(@BillingResponse responseCode: Int, outToken: String)
Java
public void onConsumeResponse(@BillingResponse int responseCode, String outToken)
Paketi açılmış PurchaseResult nesnesi
PurchaseResult,
API'mizde tutarlı olması için sarmalanmamış:
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)
Geliştirici önizlemesi kullanıma sunuldu. Bu önizleme, faturalandırma ile ilgili geliştirme sürecini basitleştirmeyi amaçlıyor. Böylece geliştiriciler, çalışmalarını Android uygulamasına özgü mantığı (ör. uygulama mimarisi ve gezinme yapısı) uygulamaya odaklayabilir.
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ğlayarak geliştiricilerin uygulama ile Google Play Faturalandırma API'si arasındaki arayüzü tanımlamasını kolaylaştırır.