Bu konu, Google Play Faturalandırma Kitaplığı ile ilgili sürüm notlarını içerir.
Google Play Faturalandırma Kitaplığı 7.0.0 Sürümü (14.05.2024)
Google Play Faturalandırma Kitaplığı ve Kotlin uzantılarının 7.0.0 sürümü kullanılabilir.
Değişiklik özeti
Taksitli abonelikleri desteklemek için API'ler eklendi.
ProductDetails.InstallmentPlanDetails
eklendi . Bu API Uygulamanızın taksit planını ve taahhüt ayarlarını tanımlamasına yardımcı olur kullanıcıya ilgili bilgiler sağlamak için kullanılır. Daha fazla bilgi edinmek için abonelik taksit rehberini inceleyin.
PendingPurchasesParams
eklendi veBillingClient.Builder.enablePendingPurchases(PendingPurchaseParams)
yerineBillingClient.Builder.enablePendingPurchases()
, Bu sürümle birlikte desteği sonlandırılmıştır.- Desteği sonlandırılmış
enablePendingPurchases()
, işlevsel olarak şuna eşdeğerdir:enablePendingPurchases(PendingPurchasesParams.newBuilder().enableOneTimeProducts().build())
.
- Desteği sonlandırılmış
Ön ödemeli abonelik planları için bekleyen işlemleri desteklemek üzere API'ler eklendi:
PendingPurchasesParams.Builder.enablePrepaidPlans()
kullanınBillingClient.Builder.enablePendingPurchases(PendingPurchaseParams)
ile birlikte seçeneğini tıklayarak ön ödemeli abonelik planları için bekleyen işlemleri etkinleştirin. Eklerken destek, uygulamanızın da aboneliği doğru şekilde yönettiğinden emin olun yaşam döngüleridir. Daha fazla bilgi edinmek için bekleyen satın alma rehberi'ni inceleyin.Purchase.PendingPurchaseUpdate
eklendi vePurchase.getPendingPurchaseUpdate()
için bekleyen para ekleme veya mevcut bir sürüme geçme ya da abonelik.
BillingClient.Builder.enableAlternativeBilling()
kaldırıldı,AlternativeBillingListener
, veAlternativeChoiceDetails
.- Geliştiriciler
BillingClient.Builder.enableUserChoiceBilling()
UserChoiceBillingListener
ile veUserChoiceDetails
dinleyici geri çağırmasına göre ekleyebilirsiniz.
- Geliştiriciler
BillingFlowParams.ProrationMode
kaldırıldı,BillingFlowParams.SubscriptionUpdateParams.Builder.setReplaceProrationMode()
, veBillingFlowParams.SubscriptionUpdateParams.Builder.setReplaceSkusProrationMode()
.- Geliştiriciler
BillingFlowParams.SubscriptionUpdateParams.ReplacementMode
BillingFlowParams.SubscriptionUpdateParams.Builder#setSubscriptionReplacementMode(int)
ile . BillingFlowParams.SubscriptionUpdateParams.Builder.setReplaceProrationMode()
.BillingFlowParams.SubscriptionUpdateParams.Builder.setReplaceSkusProrationMode()
.
- Geliştiriciler
BillingFlowParams.SubscriptionUpdateParams.Builder#setOldSkuPurchaseToken()
kaldırıldı.- Geliştiriciler şunu kullanmalıdır:
BillingFlowParams.SubscriptionUpdateParams.Builder#setOldPurchaseToken(java.lang.String)
.
- Geliştiriciler şunu kullanmalıdır:
BillingClient.queryPurchaseHistoryAsync()
desteği sonlandırılmış olup gelecekteki bir sürümde kaldırılacaktır. Geliştiriciler şunu yapmalıdır: bunun yerine aşağıdaki alternatifleri kullanın:- Onaylanan ve bekleyen satın alma işlemleri:
BillingClient.queryPurchasesAsync()
değerini girin. - Harcanan satın alma işlemleri: Geliştiriciler satın alma işlemlerinin takibini kendi sunucularına ekleyebilir.
- İptal edilen satın alma işlemleri: geçersiz-satın-almalar geliştirici API'si.
- Daha fazla bilgi için bkz. İşlem Geçmişi Sorgulaması
- Onaylanan ve bekleyen satın alma işlemleri:
BillingFlowParams.ProductDetailsParams.setOfferToken()
artık geliştiriciler boş birofferToken
belirttiğinde bir istisna oluşturuyor.minSdkVersion
değeri 21,targetSdkVersion
değeri 34 olarak güncellendi.
Google Play Faturalandırma Kitaplığı 6.2.1 Sürümü (16.04.2024)
Google Play Faturalandırma Kitaplığı ve Kotlin uzantılarının 6.2.1 sürümü kullanılabilir.
Değişiklik özeti
BillingClient.showAlternativeBillingOnlyInformationDialog()
ürününde, iletişim kutusunun tamamlandığı belirli durumlardaAlternativeBillingOnlyInformationDialogListener
öğesinin çağrılmamasına yol açan hata düzeltildi.
Google Play Faturalandırma Kitaplığı 6.2.0 Sürümü (06.03.2024)
Google Play Faturalandırma Kitaplığı ve Kotlin uzantılarının 6.2.0 sürümü kullanılabilir.
Değişiklik özeti
- Harici teklifleri desteklemek için API'ler eklendi
BillingClient.Builder.enableExternalOffer()
eklendi seçeneğini tıklayın.BillingClient.isExternalOfferAvailableAsync()
eklendi kontrol edin.BillingClient.showExternalOfferInformationDialog()
eklendi göstermeden önce kullanıcılara bir bilgi iletişim kutusu gösterme.- Harici teklifler aracılığıyla yapılan işlemleri raporlamak amacıyla gereken bir yük oluşturmak için
BillingClient.createExternalOfferReportingDetailsAsync()
eklendi.
Google Play Faturalandırma Kitaplığı 6.1.0 Sürümü (14.11.2023)
Google Play Faturalandırma Kitaplığı ve Kotlin uzantılarının 6.1.0 sürümü kullanılabilir.
Değişiklik özeti
- Yalnızca alternatif faturalandırmayı (kullanıcıya tercih seçeneği sunulmayan) desteklemek için API'ler eklendi
BillingClient.Builder.enableAlternativeBillingOnly()
eklendi yalnızca alternatif faturalandırma sunma işlevini işlevsel olarak etkinleştirmek için.BillingClient.isAlternativeBillingOnlyAvailableAsync()
eklendi seçeneğini tıklayın.BillingClient.showAlternativeBillingOnlyInformationDialog()
eklendi Kullanıcıları yalnızca alternatif faturalandırma ile ilgili bilgilendirecek bir bilgi iletişim kutusu gösterme yardımcı oluyorum.- Gerekli yük oluşturmak için
BillingClient.createAlternativeBillingOnlyReportingDetailsAsync()
eklendi yalnızca alternatif faturalandırma kullanılarak yapılan işlemleri bildirmesini isteyin.
- Kullanıcı tercihine göre faturalandırma API'leri güncellendi
UserChoiceBillingListener
eklendi AlternativeBillingListener'ın yerine geçin. Bu reklam artık desteği sonlandırıldı.UserChoiceDetails
eklendiAlternativeChoiceDetails
değerini değiştirin Bu reklam artık desteği sonlandırıldı.BillingClient.Builder.enableUserChoiceBilling()
eklendiBillingClient.Builder.enableAlternativeBilling()
değerini değiştirin Bu reklam artık desteği sonlandırıldı.
- 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ığı ve Kotlin uzantılarının 6.0.1 sürümü kullanılabilir.
Değişiklik özeti
Play Faturalandırma Kitaplığı'nı Android 14 ile uyumlu olacak şekilde güncelleyin.
Google Play Faturalandırma Kitaplığı 6.0 Sürümü (10.05.2023)
Google Play Faturalandırma Kitaplığı ve Kotlin uzantılarının 6.0.0 sürümü kullanılabilir.
Değişiklik özeti
Yeni eklendi
ReplacementMode
değiştirmek için enumProrationMode
.ProrationMode
sürümünün geriye dönük uyumluluk için hâlâ kullanılabilir olduğunu lütfen unutmayın neden.Şu öğenin sipariş kimliği kaldırıldı:
PENDING
değeri için teklif verirsiniz.Önceden, satın alma işleminin gerçekleştirildiği durumlarda bile her zaman sipariş kimliği oluşturuluyordu. beklemede. 6.0.0 sürümünden itibaren, (beklemede olan satın alma işlemleri) ve bu satın alma işlemleri için sipariş kimliği taşındıktan sonra da
PURCHASED
durumu.queryPurchases
velaunchPriceConfirmationFlow
yöntemleri kaldırıldı.Aşağıdakileri içeren
queryPurchases
velaunchPriceConfirmationFlow
yöntemleri: Önceden desteği sonlandırıldı olarak işaretlenen artık Play Faturalandırma'dan kaldırıldı Kitaplık 6.0.0. GeliştiricilerqueryPurchasesAsync
(queryPurchases
yerine)launchPriceConfirmationFlow
alternatif için, Fiyat değişiklikleri adlı makaleyi inceleyin.Yeni ağ hatası yanıt kodu eklendi.
Yeni bir ağ hatası yanıt kodu,
NETWORK_ERROR
PBL sürüm 6.0.0 ile başlayarak eklenmiştir. Bu kod, hatası, ağ bağlantısı sorunu nedeniyle oluşur. Bu ağ bağlantıları hata daha önceSERVICE_UNAVAILABLE
olarak bildirilmişti.Güncellendi
SERVICE_UNAVAILABLE
veSERVICE_TIMEOUT
.PBL 6.0.0 sürümünden itibaren, işlemede zaman aşımından kaynaklanan hatalar mevcut
SERVICE_TIMEOUT
yerineSERVICE_UNAVAILABLE
olarak döndürüldü.Bu davranış, PBL'nin önceki sürümlerinde değişmez.
Kaldırıldı
SERVICE_TIMEOUT
.PBL 6.0.0 sürümünden itibaren
SERVICE_TIMEOUT
artık döndürülmeyecektir. PBL'nin önceki sürümlerinde bu kod döndürülmeye devam edecektir.Ek günlük kaydı eklendi.
Play Faturalandırma Kitaplığı 6 sürümü, aşağıdakileri sağlayan ek günlük kaydı içerir: API kullanımı (başarı ve hata gibi) ve hizmet bağlantısı hakkında bilgiler sorunları. Bu bilgiler Play'in performansını iyileştirmek için kullanılacaktır Faturalandırma Kitaplığı ve hatalar için daha iyi destek sağlayın.
Google Play Faturalandırma Kitaplığı 5.2.1 Sürümü (22.06.2023)
Google Play Faturalandırma Kitaplığı ve Kotlin uzantılarının 5.2.1 sürümü kullanılabilir.
Değişiklik özeti
Play Faturalandırma Kitaplığı'nı Android 14 ile uyumlu olacak şekilde güncelleyin.
Google Play Faturalandırma Kitaplığı 5.2 Sürümü (06.04.2023)
Google Play Faturalandırma Kitaplığı ve Kotlin uzantılarının 5.2.0 sürümü kullanılabilir.
Değişiklik özeti
- Mobil cihazlarda/tabletlerde alternatif faturalandırma akışlarını desteklemek üzere Güney Kore'deki kullanıcılar:
- Eklenme zamanı
BillingFlowParams.SubscriptionUpdateParams.Builder.setOriginalExternalTransactionId()
yöntemini kullanın. BillingClient.Builder.enableAlternativeBilling()
eklendi yöntemini kullanan Güney Kore'deki kullanıcıların alternatif bir faturalandırma seçeneği belirlemelerine olanak tanımalıdır.
Google Play Faturalandırma Kitaplığı 5.1 Sürümü (31.10.2022)
Google Play Faturalandırma Kitaplığı ve Kotlin uzantılarının 5.1.0 sürümü kullanılabilir.
Bu sürüm aşağıdaki değişiklikleri içerir.
Değişiklik özeti
- Teklif kimliğini almak için
ProductDetails.SubscriptionOfferDetails.getOfferId()
yöntemi eklendi. - Temel plan kimliğini almak için
ProductDetails.SubscriptionOfferDetails.getBasePlanId()
yöntemi eklendi. targetSdkVersion
, 31 olarak güncellendi.
Google Play Faturalandırma Kitaplığı 5.0 Sürümü (11.05.2022)
Google Play Faturalandırma Kitaplığı ve Kotlin uzantılarının 5.0.0 sürümü kullanılabilir.
Bu sürüm aşağıdaki değişiklikleri içerir.
Değişiklik özeti
- Abonelikler için yeni varlıklar dahil olmak üzere yeni bir model kullanıma sunuldu: tek bir teklif için birden fazla fırsat oluşturmanızı sağlar. abonelik ürünü gibi. Daha fazla bilgi için taşıma rehberini inceleyin.
- Eklenme zamanı
BillingClient.queryProductDetailsAsync()
(BillingClient.querySkuDetailsAsync()
) değerini değiştirin. - AB kişiselleştirilmiş fiyatlandırma için
setIsOfferPersonalized()
yöntemi eklendi ifşa etme zorunluluğu vardır. Bu yöntemi nasıl kullanacağınızla ilgili daha fazla bilgi edinmek için Kişiselleştirilmiş bir fiyat belirtin. - Daha önce desteği sonlandırılan
queryPurchases()
kaldırıldı ve yerine queryPurchasesAsync, Google Play Faturalandırma Kitaplığı 4.0.0'da kullanıma sunuldu. launchPriceChangeFlow
desteği sonlandırıldı ve gelecekte silinecek kullanabilirsiniz. Alternatifler hakkında daha fazla bilgi edinmek için şuraya bakın: Fiyat değişikliği onay akışı başlatın.- Kaldırıldı
setVrPurchaseFlow()
Bu, daha önce satın alma akışını örneklendirmek için kullanılıyordu. Önceki sürümlerde, bu yöntem kullanıcıyı Android cihazında tamamlaması gerekir. Kaldırdıktan sonra bu yöntemle kullanıcılar satın alma işlemini adımları uygulayın.
Google Play Faturalandırma Kitaplığı 4.1 sürümü (23.02.2022)
Google Play Faturalandırma Kitaplığı ve Kotlin uzantılarının 4.1.0 sürümü kullanılabilir.
Bu sürüm aşağıdaki değişiklikleri içerir.
Değişiklik özeti
BillingClient.showInAppMessages()
eklendi 'ni kullanmaya başlayabilirsiniz. Google Cloud'un uygulama içi mesajlaşmayı kullanmak için bkz. Reddedilen ödeme işlemlerini ele alma.
Google Play Faturalandırma Kitaplığı 4.0 Sürümü (18.05.2021)
Google Play Faturalandırma Kitaplığı ve Kotlin uzantılarının 4.0.0 sürümü kullanılabilir.
Değişiklik özeti
BillingClient.queryPurchasesAsync()
, gelecekteki sürümlerden birinde kaldırılacak olanBillingClient.queryPurchases()
öğesinin yerini alacak.Yeni abonelik değişim modu
IMMEDIATE_AND_CHARGE_FULL_PRICE
eklendi.Play Faturalandırma Kitaplığı'nın bağlantı durumunu almak için
BillingClient.getConnectionState()
yöntemi eklendi.Bir yöntemin hangi iş parçacığında çağrılabileceğini ve hangi iş parçacığı sonuçlarının yayı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
veBillingFlowParams.Builder#setOldSku
öğelerinin yerini alır.Purchase.getQuantity()
vePurchaseHistoryRecord.getQuantity()
eklendi.Purchase#getSkus()
vePurchaseHistoryRecord#getSkus()
eklendi. Bunlar, kaldırılmış olanPurchase#getSku
vePurchaseHistoryRecord#getSku
ile değiştirilmiştir.BillingFlowParams#getSku
,BillingFlowParams#getSkuDetails
veBillingFlowParams#getSkuType
kaldırıldı.
Google Play Faturalandırma Kitaplığı 3.0.3 Sürümü (12.03.2021)
Google Play Faturalandırma Kitaplığı 3.0.3 sürümü, Kotlin uzantısı ve Unity eklentisi kullanılabilir.
Java ve Kotlin ile ilgili hata düzeltmeleri
- Şu durumlarda bellek sızıntısını düzelt:
endConnection()
çağrılır. - Google Play Faturalandırma Kitaplığı,
tek görev başlatma modudur. CEVAP
onPurchasesUpdated()
Android başlatıcıdan bir uygulama devam ettirildiğinde geri çağırma tetiklenir Ayrıca, faturalandırma iletişim kutusu askıya alınmadan önce görünürdü.
Unity hata düzeltmeleri
- Bellek sızıntısını düzeltmek ve önleyen sorunu gidermek için Java sürüm 3.0.3'e güncelleme yapın Bir uygulama Android başlatıcıdan ve faturalandırma bölümünden devam ettirildiğinde satın alma işlemleri iletişim kutusu askıya alınmadan önce görünürdü.
Google Play Faturalandırma Kitaplığı 3.0.2 Sürümü (24.11.2020)
Google Play Faturalandırma Kitaplığı ve Kotlin uzantısının 3.0.2 sürümü kullanıma sunuldu.
Hata düzeltmeleri
- Kotlin uzantısında bulunan, eş yordamın "Zaten devam ettirildi" hatasıyla başarısız olmasına neden olan hata düzeltildi.
- Kotlinx.coroutines kitaplığının 1.4 ve sonraki sürümleriyle birlikte kullanıldığında Kotlin uzantısı kullanıldığında ortaya çıkan çözülmemiş referanslar düzeltildi.
Google Play Faturalandırma Kitaplığı 3.0.1 Sürümü (30.09.2020)
Google Play Faturalandırma Kitaplığı ve Kotlin uzantısının 3.0.1 sürümü artık kullanılabilir.
Hata düzeltmeleri
- Faturalandırma akışı sırasında uygulamanın sonlandırılıp geri yüklenmesiyle ilgili hata düzeltildi.
PurchasesUpdatedListener
, satın alma sonucuyla birlikte çağrılamayabilir.
Google Play Faturalandırma Kitaplığı 3.0 Sürümü (08.06.2020)
Google Play Faturalandırma Kitaplığı'nın 3.0.0 sürümü, Kotlin uzantısı, ve Unity eklentisi kullanıma sunuldu.
Değişiklik özeti
- Ödüllü SKU desteği kaldırıldı.
ChildDirected
veUnderAgeOfConsent
parametreleri kaldırıldı.- Desteği sonlandırılan geliştirici yük yöntemleri kaldırıldı.
- Desteği sonlandırılan
BillingFlowParams.setAccountId()
yöntemleri kaldırıldı veBillingFlowParams.setDeveloperId()
. - Desteği sonlandırılan
BillingFlowParams.setOldSkus(String oldSku)
yöntemleri kaldırıldı veBillingFlowParams.addOldSku(String oldSku)
. - Boş değer atanabilirlik ek açıklamaları eklendi.
Hata düzeltmeleri
SkuDetails.getIntroductoryPriceCycles()
artıkString
yerineint
değerini döndürüyor.- Faturalandırma akışının ek parametreler içermesine neden olan hata düzeltildi ek parametre ayarlanmamış olsa bile
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
- Java Play Faturalandırma kitaplığının varsayılan sürümünü güncelleyerek Kotlin uzantısı bağlıdır.
Google Play Faturalandırma Kitaplığı 2.2.0 sürümü ve Unity desteği (23.03.2020)
Google Play Faturalandırma Sürüm 2.2.0, geliştiriciler satın alma işlemlerinin doğru kullanıcıyla ilişkilendirildiğinden emin olur. Bu değişiklikler geliştiricilerin yüküne dayalı özel çözümler oluşturma ihtiyacını ortadan kaldırabilir. Farklı Bu güncellemenin bir parçası olarak, geliştirici yük işlevi kullanımdan kaldırılmıştır. ve daha sonraki bir sürümde kaldırılacaktır. Daha fazla bilgi için önerilen alternatifler için Geliştirici yükü.
Unity için Google Play Faturalandırma Faturalandırma Kitaplığı 2
Google Play Faturalandırma'nın mevcut Java ve Kotlin sürümlerine ek olarak 2. kitaplık sürümünü yayınladık. Unity ile kullanılmak üzere kitaplığın bir sürümünü yayınladık. Oyun kullanan geliştiriciler, Unity in-app purchase API'sini kullanan özelliklerinden yararlanmasını sağlamak ve Google Play Faturalandırma Kitaplığı'nın gelecekteki sürümlerine yapılan sonraki yükseltmeler daha kolay olur.
Daha fazla bilgi edinmek için bkz. Google Play Faturalandırma'yı Unity ile kullanma
Değişiklik özeti
- Java Google Play Faturalandırma Kitaplığı
- İçinde
AcknowledgePurchaseParams
desteği sonlandırıldısetDeveloperPayload()
vegetDeveloperPayload()
yöntemlerine göz atın. - İçinde
ConsumeParams
desteği sonlandırıldısetDeveloperPayload()
vegetDeveloperPayload()
yöntemlerine göz atın. - İçinde
BillingFlowParams
yeniden adlandırdısetAccountId()
-setObfuscatedAccountId()
, ve 64 karakterlik uzunluk kısıtlaması ve böyle bir kısıtlama Bu alanda kimliği tanımlayabilecek bilgilere (PII) izin verilmez.setAccountId()
desteği sonlandırıldı olarak işaretlendi ve kısa süre içinde kaldırılacak sonraki kitaplık sürümü. BillingFlowParams
konumunda, eklendisetObfuscatedProfileId()
Bu dasetObfuscatedAccountId()
. Daha fazla bilgi için bkz. Geliştirici yükü güncellemeleri ve alternatifleri.Purchase
adlı topluluktagetAccountIdentifiers()
kodu karartılmış hesap tanımlayıcılarını döndürme yönteminiBillingFlowParams
.BillingClient
bölgesinde,loadRewardedSku()
yöntemi, ödüllü SKU'ların kullanımdan kaldırılması kapsamında kullanımdan kaldırıldı. Desteği sonlandırmayla ilgili daha fazla bilgiyi Play Console Yardım Merkezi.
- İçinde
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ı hazır. Play Faturalandırma Kitaplığı Kotlin uzantısı, Kotlin kullanımı için daha iyi geçersiz güvenlik ve eş yordamlar. Kod örnekleri için bkz. Google Play Faturalandırma Kitaplığı'nı kullanın.
Bu sürüm aşağıdaki değişiklikleri içerir.
Değişiklik özeti
BillingFlowParams
bölgesinde,setOldSku(String oldSku)
desteği sonlandırıldı ve şununla değiştirildi:setOldSku(String oldSku, String purchaseToken)
, ne zaman Cihazdaki birden fazla hesap aynı SKU'ya sahip olabilir.
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ü artık kullanımda.
Hata düzeltmeleri
querySkuDetailsAsync()
işlevinin kod kullanıldığında bazen başarısız olmasına yol açan hata düzeltildiDEVELOPER_ERROR
hatası verir.
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 belgelerde yapılan güncellemeleri içerir ve kitaplığı değiştirmez işlevi görür.
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ü artık kullanımda. Bu sürüm aşağıdaki değişiklikleri içerir.
Hata düzeltmeleri
- Hata ayıklama mesajlarının bazı durumlarda
null
olarak döndürülmesine neden olan hata düzeltildi. - Olası bellek sızıntısı sorunu düzeltildi.
Google Play Faturalandırma Kitaplığı 2.0 Sürümü (07.05.2019)
Google Play Faturalandırma kitaplığının 2.0 sürümü artık kullanımda. Bu sürüm aşağıdaki değişiklikleri içerir.
Satın alma işlemleri üç gün içinde onaylanmalıdır
Google Play, uygulamanızın içinden (uygulama içi) ürün satın almayı destekler veya
uygulamanızın dışında (uygulama dışı). 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
Google Play üzerinden yapılan tüm satın alma işlemlerini kabul etmeniz gerekir.
Faturalandırma Kitaplığı'nı yüklemeniz gerekir. Eğer
üç gün içinde bir satın alma işlemini onaylamazsanız kullanıcı otomatik olarak
Geri ödeme alır ve Google Play satın alma işlemini iptal eder. Örneğin,
bekleyen işlemler (2.0 sürümünde yeni olan), üç günlük zaman aralığı
Satın alma işlemi PURCHASED
durumuna geçtiğinde başlar ve geçerli değildir
satın alma işlemi PENDING
durumundayken.
Aboneliklerde, yeni bir satın alma işlemi olan tüm satın alma işlemlerini onaylamanız gerekir. jeton. Bu, tüm ilk satın alma işlemleri, plan değişiklikleri ve yeniden kayıtlar için onaylanacaktır, ancak sonraki yenilemeleri onaylamanız gerekmez. Alıcı: onaya ihtiyaç olup olmadığını belirlemek için onayı kontrol edebilirsiniz. alanına girmelisiniz.
Purchase
nesnesi artık bir
isAcknowledged()
onaylanıp onaylanmadığını gösteren bir kontrol yöntemidir. Ayrıca,
Google Play Developer API, her ikisi için de onay boole değerlerini içerir
Purchases.products
ve Purchases.subscriptions
.
Bir satın alma işlemini onaylamadan önce,
satın alma işlemi zaten onaylandı.
Aşağıdaki yöntemlerden birini kullanarak bir satın alma işlemini onaylayabilirsiniz:
- Tüketim ürünleri için istemci API'sinde bulunan
consumeAsync()
değerini kullanın. - Tüketilmeyen ürünler için şurada bulunan
acknowledgePurchase()
kullanın: istemci API'sidir. - Server API'de yeni bir
acknowledge()
yöntemi de mevcuttur.
BillingFlowParams.setSku() kaldırıldı
Daha önce kullanımdan kaldırılan BillingFlowParams#setSku()
yöntemi kaldırıldı
kullanıma sunuyoruz. Ürünleri satın alma akışında oluşturmadan önce şimdi şu işlemi yapmanız gerekir:
BillingClient.querySkuDetailsAsync()
sonuç olarak
SkuDetails
nesne
BillingFlowParams.Builder.setSkuDetails()
.
Kod örnekleri için bkz. Google Play Faturalandırma Kitaplığı'nı kullanın.
Geliştirici yükü destekleniyor
Google Play Faturalandırma kitaplığının 2.0 sürümünde geliştiriciler payload: Satın alma işlemlerine eklenebilecek rastgele dizeler. Şunları yapabilirsiniz: bir geliştirici yük parametresi ekler. Ancak bu, yalnızca satın alma onaylandığı veya tüketildiği içeriklerdir. Bu, AIDL'deki geliştirici yükünden farklıdır. satın alma akışı başlatılırken yük belirtilebilir. Çünkü satın alma işlemleri Artık uygulamanızın dışından başlatılabilir. Bu değişiklik her zaman satın alma işlemlerine yük ekleme fırsatınızın olmasını sağlar.
Yeni kitaplıktaki yüke erişmek için Purchase
nesneleri artık bir
getDeveloperPayload()
yöntemidir.
Tutarlı teklifler
İndirimli bir SKU sunduğunuzda Google Play artık şu ürünün orijinal fiyatını iade ediyor: SKU'yu kullanabilirsiniz.
SkuDetails
iki içeriyor
orijinal SKU fiyatını almanın yeni yöntemleri:
getOriginalPriceAmountMicros()
- SKU'nun indirimden önceki biçimlendirilmemiş orijinal fiyatını döndürür.getOriginalPrice()
- ek para birimi biçimlendirmesiyle orijinal fiyatı döndürür.
Beklemede olan işlemler
Google Play Faturalandırma kitaplığının 2.0 sürümüyle birlikte aşağıdakileri desteklemeniz gerekir: yararlanma hakkı verilmeden önce ek işlemin gerekli olduğu satın alma işlemleri. Örneğin, Örneğin, bir kullanıcı uygulama içi ürününüzü fiziksel bir mağazadan satın almayı tercih edebilir yardımcı olur. Bu, işlemin uygulamanızın dışında tamamlandığı anlamına gelir. İçinde Bu senaryoya göre, yalnızca kullanıcı işlemi tamamladıktan sonra takip eder.
Bekleyen satın alma işlemlerini etkinleştirmek için şunu arayın:
enablePendingPurchases()
şu adımları izleyin:
Purchase.getPurchaseState()
kullanın
kullanarak, satın alma durumunun PURCHASED
mu yoksa PENDING
mü olduğunu belirleyin. Lütfen
yalnızca eyalet PURCHASED
olduğunda yararlanma hakkı vermelisiniz. Şunları yapmalısınız:
Aşağıdakileri yaparak Purchase
durum güncellemelerini kontrol edin:
- Uygulamanızı başlatırken
BillingClient.queryPurchases()
tüketiciyle ilişkili tüketilmemiş ürünlerin listesini almak için kullanılır. - Döndürülen her
Purchase
nesne içinPurchase.getPurchaseState()
çağrısı yapın. onPurchasesUpdated()
'nu uygulama yöntemini kullanın.Purchase
Ayrıca Google Play Developer API, bir PENDING
durumu da içerir.
Purchases.products
için.
Beklemedeki işlemler aşağıdakiler için desteklenmez
aboneliklerdir.
Bu sürümde ayrıca, yeni bir gerçek zamanlı geliştirici bildirim türü olan
OneTimeProductNotification
Bu bildirim türü tek bir mesaj içeriyor
değeri ONE_TIME_PRODUCT_PURCHASED
veya
ONE_TIME_PRODUCT_CANCELED
. Bu bildirim türü yalnızca satın alma işlemleri için gönderilir
ve gecikmiş ödeme şekilleriyle (nakit gibi) ilişkili olanları içermez.
Bekleyen satın alma işlemlerini onaylarken, yalnızca
satın alma durumu PENDING
değil PURCHASED
.
API değişiklikleri
Google Play Faturalandırma Kitaplığı'nın 2.0 sürümü, yeni özellikleri desteklemesi ve mevcut işlevleri netleştirmesi gerekir.
coneAsync'de
consumeAsync()
şimdi
ConsumeParams
nesne
yerine purchaseToken
yerine kullanabilirsiniz. ConsumeParams
, purchaseToken
öğesini şu şekilde içeriyor:
isteğe bağlı geliştirici yükünü de kullanabilirsiniz.
consumeAsync()
uygulamasının önceki sürümü bu sürümde kaldırıldı.
queryPurchaseHistoryAsync'
Kafa karışıklığını en aza indirmek için
queryPurchaseHistoryAsync()
şimdi de
PurchaseHistoryRecord
nesnesini ifade eder.Purchase
PurchaseHistoryRecord
nesnesi
Purchase
nesnesiyle aynıdır, ancak yalnızca
queryPurchaseHistoryAsync()
ve autoRenewing
öğesini içermiyor
orderId
ve packageName
alanları.
döndürülen veriler: queryPurchaseHistoryAsync()
,
kontrol edin.
BillingResult dönüş değerleri
Önceden BillingResponse
tam sayı değeri döndüren API'ler artık
BillingResult
nesnesini tanımlayın. BillingResult
, BillingResponse
tam sayısının yanı sıra bir
teşhis etmek için kullanabileceğiniz hata ayıklama dizesi Hata ayıklama dizesi, tr-TR
yerel ayardır ve son kullanıcılara gösterilmesi amaçlanmamıştır.
Hata düzeltmeleri
SkuDetails.getIntroductoryPriceAmountMicros()
artıkString
yerine birlong
döndürüyor.
Google Play Faturalandırma Kitaplığı 1.2.2 Sürümü (07.03.2019)
Google Play Faturalandırma kitaplığının 1.2.2 sürümü kullanıma sunuldu. Bu sürüm aşağıdaki değişiklikleri içerir.
Hata düzeltmeleri
- 1.2.1 sürümünde kullanıma sunulan ileti dizisi oluşturma sorunu düzeltildi. Arka plan aramaları artık engellenmiyor takip edebilirsiniz.
Diğer değişiklikler
- Ana ileti dizisinin kullanılması hâlâ önerilse de artık örneklendirme yapabilirsiniz Google Play Faturalandırma Kitaplığı'nı kullanıyor.
- Örneklendirme, neden olma ihtimalini konuşacağız.
Play Faturalandırma Kitaplığı 1.2.1 Sürümü (04.03.2019)
Google Play Faturalandırma kitaplığının 1.2.1 sürümü kullanıma sunuldu. Bu sürüm aşağıdaki değişiklikleri içerir.
Önemli değişiklikler
- Ödüllü ürünler için destek eklendi. Para kazanma seçenekleri hakkında daha fazla bilgi için Ödül ürüne özgü özellikler ekleyin.
Diğer değişiklikler
PurchasesResult
veSkuDetailsResult
için inşaatçılar eklendi kolaylaştırır.SkuDetails
nesne,getOriginalJson()
adlı yeni yöntemi kullanabilir.- Tüm AIDL hizmet çağrıları artık arka plandaki ileti dizileri tarafından işlenmektedir.
Hata düzeltmeleri
- Boş geri çağırma işleyicileri artık herkese açık API'lere iletilmez.
Google Play Faturalandırma Kitaplığı 1.2 Sürümü (18.10.2018)
Google Play Faturalandırma kitaplığının 1.2 sürümü kullanıma sunuldu. Bu sürüm aşağıdaki değişiklikleri içerir.
Değişiklik özeti
- Google Play Faturalandırma Kitaplığı artık şu lisans kapsamındadır: Android Yazılım Geliştirme Kiti Lisans Sözleşmesi.
- Kullanıcıların şunları yapmasını isteyen
launchPriceChangeConfirmationFlow
API eklendi: abonelik fiyatında bekleyen bir değişikliği inceleme. - Yeni sürüme geçerken veya kullanımınız sırasında
DEFERRED
için yeni bir kullanım süresi modu desteği eklendi. Kullanıcının aboneliğinin düzeyini düşürmek BillingFlowParams
sınıfındasetSku()
,setSkuDetails()
ile değiştirildi.- Küçük hata düzeltmeleri ve kod optimizasyonları.
Fiyat değişikliği onayı
Artık Google Play Console'da abonelik fiyatını değiştirebilir ve uygulamanıza girdiklerinde yeni fiyatı inceleyip kabul etmelerini sağlar.
Bu API'yi kullanmak içinPriceChangeFlowParams
Abonelik ürününün skuDetails
kadarı ve ardından ara
launchPriceChangeConfirmationFlow()
. Şunu uygulayın:
Fiyat değiştiğinde sonucu işlemek için PriceChangeConfirmationListener
aşağıdaki kod snippet'inde gösterildiği gibi onay akışı sona erer:
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ırmayı içeren bir iletişim kutusu gösterilir
kullanıcılardan yeni fiyatı kabul etmelerini isteyebilir. Bu akış, bir
yanıt kodu türü
BillingClient.BillingResponse
.
Yeni kullanıma oranlı ödeme modu
Bir kullanıcının aboneliğini yükseltirken veya düşürürken yeni bir kullanım payı kullanabilirsiniz.
mod, DEFERRED
. Bu mod, bir sonraki sefer kullanıcının aboneliğini günceller
yenilenir. Bu bölüştürme modunun nasıl ayarlanacağıyla ilgili daha fazla bilgi edinmek için Kullanılan kullanım oranını ayarlama
mod'u seçin.
SKU ayrıntılarını ayarlamak için yeni yöntem
BillingFlowParams
sınıfında setSku()
yöntemi kullanımdan kaldırıldı.
Bu değişiklik, Google Play Faturalandırma akışını optimize etmek amacıyla kullanılır.
Uygulama içi faturalandırmanızda yeni bir BillingFlowParams
örneği oluştururken
yerine doğrudan JSON nesnesiyle çalışmanızı öneririz.
setSkuDetails()
, aşağıdaki kod snippet'inde gösterildiği gibi:
BillingFlowParams
Builder sınıfında setSku()
yöntemi
desteği sonlandırıldı. Bunun yerine, aşağıda gösterildiği gibi setSkuDetails()
yöntemini kullanın
kod snippet'ini eklemeniz gerekir. setSkuDetails()
nesnesine iletilen nesne,
querySkuDetailsAsync()
yöntemidir.
Kotlin
private lateinit var mBillingClient: BillingClient private val mSkuDetailsMap = HashMap<String, SkuDetails>() private fun querySkuDetails() { val skuDetailsParamsBuilder = SkuDetailsParams.newBuilder() mBillingClient.querySkuDetailsAsync(skuDetailsParamsBuilder.build() ) { responseCode, skuDetailsList -> if (responseCode == 0) { for (skuDetails in skuDetailsList) { mSkuDetailsMap[skuDetails.sku] = skuDetails } } } } private fun startPurchase(skuId: String) { val billingFlowParams = BillingFlowParams.newBuilder() .setSkuDetails(mSkuDetailsMap[skuId]) .build() }
Java
private BillingClient mBillingClient; private Map<String, SkuDetails> mSkuDetailsMap = new HashMap<>(); private void querySkuDetails() { SkuDetailsParams.Builder skuDetailsParamsBuilder = SkuDetailsParams.newBuilder(); mBillingClient.querySkuDetailsAsync(skuDetailsParamsBuilder.build(), new SkuDetailsResponseListener() { @Override public void onSkuDetailsResponse(int responseCode, List<SkuDetails> skuDetailsList) { if (responseCode == 0) { for (SkuDetails skuDetails : skuDetailsList) { mSkuDetailsMap.put(skuDetails.getSku(), skuDetails); } } } }); } private void startPurchase(String skuId) { BillingFlowParams billingFlowParams = BillingFlowParams.newBuilder() .setSkuDetails(mSkuDetailsMap.get(skuId)) .build(); }
Play Faturalandırma Kitaplığı 1.1 Sürümü (07.05.2018)
Google Play Faturalandırma kitaplığının 1.1 sürümü kullanıma sunuldu. Bu sürüm aşağıdaki değişiklikleri içerir.
Değişiklik özeti
BillingFlowParams
'te kullanıma oranlı kullanım modunu belirtmek için destek eklendi .BillingFlowParams
işlevindereplaceSkusProration
boole işareti artık desteklenmiyor. Bunun yerinereplaceSkusProrationMode
politikasını kullanın.launchBillingFlow()
artık başarısız yanıtlar için bir geri çağırma tetikliyor.
Davranış değişiklikleri
Google Play Faturalandırma kitaplığının 1.1 sürümünde aşağıdaki davranışlar bulunmaktadır anlamına gelir.
Geliştiriciler BillingFlowParams
sınıfında replaceSkusProrationMode
özelliğini ayarlayabilir
ProrationMode
, bir alt veya üst sürüme geçerken kullanılan dağıtımın türü hakkında daha ayrıntılı bilgi sağlar.
abonelik.
Kotlin
BillingFlowParams.newBuilder() .setSku(skuId) .setType(billingType) .setOldSku(oldSku) .setReplaceSkusProrationMode(replaceSkusProrationMode) .build()
Java
BillingFlowParams.newBuilder() .setSku(skuId) .setType(billingType) .setOldSku(oldSku) .setReplaceSkusProrationMode(replaceSkusProrationMode) .build();
Şu anda Google Play aşağıdaki bölüştürme modlarını desteklemektedir:
IMMEDIATE_WITH_TIME_PRORATION |
Değişim hemen geçerli olur ve yeni geçerlilik süresi eşit olarak dağıtılır kullanıcıya ödeme yapılır veya ücret alınır. Bu, geçerli varsayılan davranıştır. |
IMMEDIATE_AND_CHARGE_PRORATED_PRICE |
Değişim hemen geçerli olur ve faturalandırma dönemi aynı kalır. Şu ürünün fiyatı:
kalan süre için ödeme alınır.
Not: Bu seçenek yalnızca abonelik yükseltmesi için kullanılabilir. |
IMMEDIATE_WITHOUT_PRORATION |
Değişim hemen geçerli olur ve yeni fiyat bir sonraki yinelenme işleminde alınır gerekir. Faturalandırma dönemi aynı kalır. |
replaceSkusProration
artık BillingFlowParams
sınıfında desteklenmiyor
Geliştiriciler eskiden bir abonelik için eşit olarak bölünmüş bir tutar tahsil etmek için bir boole flag'i belirleyebiliyordu.
isteği gönderin. Bu nedenle, daha ayrıntılı bilgi içeren ProrationMode
bölüştürme talimatına rağmen, bu boole işareti artık desteklenmemektedir.
launchBillingFlow()
artık başarısız yanıtlar için geri çağırmayı tetikliyor
Faturalandırma Kitaplığı her zaman PurhcasesUpdatedListener
öğesini tetikler.
geri arama ve BillingResponse
döndürme
eşzamansız olarak ayarlayabilirsiniz. BillingResponse
öğesinin eşzamanlı dönüş değeri
olması da önemlidir.
Hata düzeltmeleri
- Hizmet bağlantısı kesildiğinde, eşzamansız yöntemlerde erkenden doğru şekilde çıkış yapar.
Builder
parametre nesneleri artık yerleşik nesnelerde değişiklik yapmıyor.- Sorun 68087141:
launchBillingFlow()
artık başarısız yanıtlar için geri çağırma tetikliyor.
Google Play Faturalandırma Kitaplığı 1.0 Sürümü (19.09.2017, Duyuru)
Google Play Faturalandırma kitaplığının 1.0 sürümü kullanıma sunuldu. Bu sürüm aşağıdaki değişiklikleri içerir.
Önemli değişiklikler
- Kitaplığın manifest dosyasına yerleştirilmiş faturalandırma izni. Etiketin eklenmesine gerek yoktur.
com.android.vending.BILLING
izninizi artık Android manifest'inde bulabilirsiniz. BillingClient.Builder
örneğine yeni oluşturucu eklendi sınıfını kullanır.SkuDetailsParams
için oluşturucu kalıbı kullanıma sunuldu sınıfını da içermelidir.- Tutarlılık için birkaç API yöntemi güncellendi (aynı döndürülen bağımsız değişken adları ve sırası).
Davranış değişiklikleri
Google Play Faturalandırma kitaplığının 1.0 sürümünde aşağıdaki davranışlar bulunmaktadır anlamına gelir.
BillingClient.Builder sınıfı
BillingClient.Builder
artık yeniBuilder kalıbı aracılığıyla başlatılıyor:
Kotlin
billingClient = BillingClient.newBuilder(context).setListener(this).build()
Java
billingClient = BillingClient.newBuilder(context).setListener(this).build();
LaunchBillingFlow yöntemi artık BillingFlowParams sınıfı kullanılarak çağrılıyor
Bir satın alma veya abonelik için faturalandırma akışını başlatmak üzere
launchBillingFlow()
yöntemi bir
BillingFlowParams
isteğe özel parametrelerle başlatılan örnek:
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()
için bağımsız değişkenler
ve querySkuDetailsAsync()
yöntemleri bir Oluşturucu kalıbı:
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 sonuç kodu ve
SkuDetails
nesneleri yükleyin:
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şti
onConsumeResponse
için bağımsız değişkenlerin sırası
ConsumeResponseListener
arayüzü, API'mizde tutarlı olacak şekilde değişti:
Kotlin
fun onConsumeResponse(@BillingResponse responseCode: Int, outToken: String)
Java
public void onConsumeResponse(@BillingResponse int responseCode, String outToken)
Sarmalanmamış PurchaseResult nesnesi
PurchaseResult
öğesinin, API'mizde tutarlı olacak şekilde sarmalaması açılır:
Kotlin
fun onPurchaseHistoryResponse(@BillingResponse responseCode: Int, purchasesList: List<Purchase>)
Java
void onPurchaseHistoryResponse(@BillingResponse int responseCode, List<Purchase> purchasesList)
Hata düzeltmeleri
- PURCHASES_UPDATED Paketinde yanıt kodu yok
- Cihaz rotasyonu sırasındaki ProxyBillingActivity ve PurchasesUpdatedListener sorunlarını düzeltin
Geliştirici Önizleme 1 Sürümü (12.06.2017, Duyuru)
Faturalandırma konusunda geliştirme sürecini basitleştirmeyi amaçlayan geliştirici önizlemesi kullanıma sunuldu: Geliştiricilerin Android uygulamasına özel mantığı (ör. ve gezinme yapısı hakkında daha fazla bilgi sahibi olmanızı sağlar.
Kitaplıkta, Google Analytics 4'teki uygulamalarınızı entegre ederken kullanabileceğiniz Google Play Faturalandırma API'sine sahip Android uygulamaları. Kitaplık, üstte bir soyutlama katmanı da geliştiricilerin tanımlamalarını kolaylaştıran Android Arayüz Tanımlama Dili (AIDL) hizmetini Uygulama ile Google Play Faturalandırma API'si arasındaki arayüz.