Android'de uygulama içi satın alımlarla çalışıyorsanız, er ya da geç şu durumla karşılaşacaksınız: Google Play Faturalama Kütüphanesi v7Bu sadece bir güncelleme değil: API değişiklikleri, yeni abonelik özellikleri, konsol gereksinimleri ve Google'dan çok net son teslim tarihleri içeriyor. Google Play'de uygulamanızı sürprizlerle karşılaşmadan yayınlamaya veya güncellemeye devam etmek istiyorsanız, bunu görmezden gelmek artık bir seçenek değil.
Bu makale boyunca nasıl olduğunu göreceksiniz Google Play Faturalandırma Kütüphanesi v7'yi güncelleyin ve uygulayın. Adım adım: PBL 5 ve 6'dan farklarından, aboneliklerin, tek seferlik satın alımların, RTDN'nin entegrasyonuna, Play Billing Lab ile test etmeye ve resmi desteğin geride kaldığı .NET MAUI gibi ekosistemlerde nasıl hayatta kalacağınıza kadar her şey. Amaç, okumayı bitirdiğinizde, tek kuruş harcamadan güvenle geçişinizi hazırlayabilmenizdir.
Google Play Faturalama Kütüphanesi v7'ye Genel Bakış
Google Play Faturalama Kütüphanesi 7, faturaların yönetilme biçiminde önemli iyileştirmeler sunuyor. Ödemeler, abonelikler ve özel planlarAncak, geçişi nispeten sorunsuz hale getirmek için tasarlandı. İyi haber şu ki, yeni API'lerin çoğu isteğe bağlı: bağımlılığı güncelleyebilir, birkaç referansı değiştirebilirsiniz ve temel entegrasyonunuz yine de çalışacaktır.
Bu sürüm üç temel alana odaklanmaktadır: yeni abonelik seçenekleri (sanal kotalar gibi), daha iyi destek ön ödemeli planlarda bekleyen satın alımlarAyrıca, önceki sürümlerde (PBL 5 ve 6) zaten eskimiş olan unsurları temizleyen API değişiklikleri de yapıldı. Ek olarak, Google tutarsızlıkları önlemek için bazı hata işleme yöntemlerini ve bekleyen işlemlerin nasıl ele alınması gerektiğini ayarladı.
Öncelikle, uygulama modülünüzdeki dosyada yer alan bağımlılığı güncellemeniz gerekiyor. build.gradle:
dependencies {
def billingVersion = "7.0.0"
implementation "com.android.billingclient:billing:$billingVersion"
}
Bu işlem tamamlandıktan sonra, eski API'leri kullanan kodu inceleme zamanı gelir. Birçok çağrı şunlarla ilgilidir: abonelik oranlaması ve alternatif faturalama İsimleri değiştirilmiş veya kaldırılmış olabilir, bu nedenle Play Console'a herhangi bir şey derleyip yüklemeden önce BillingClient ve BillingFlowParams'a yapılan tüm referanslara dikkatlice bakmak iyi bir fikirdir.
Tek seferlik satın alımlar ve aboneliklerle gelir elde etme stratejileri
Uygulamanızda dijital ürünler satarken, satın alma iletişim kutusunu yapıştırıp işi bitmiş saymak yeterli değildir: bir tasarım oluşturmak gerekir. Tüm satın alma döngüsü boyunca kusursuz kullanıcı deneyimiBu durum hem tekli ürünler (tüketilebilir veya tüketilemez) hem de abonelikler için geçerlidir. Süreç ne kadar doğal ve sorunsuz olursa, dönüşüm oranları o kadar yüksek ve iptal oranları o kadar düşük olur.
Play Billing ile abonelik veya tek bir ürün için tipik bir satın alma akışı, arka uç sisteminizin de bilmesi gereken şu iyi tanımlanmış aşamaları takip eder:
- Kullanıcı mevcut ürünleri inceler ve birini seçer.
- Uygulama, ödemeyi tamamlamak için Google Play faturalandırma sürecini başlatır.
- Satın alma işlemi tamamlandı ve uygulamanız sonucu aldı.
- Sunucunuz, satın alma işlemini Google Play Geliştirici API'si üzerinden doğrular.
- İlgili içerik veya hak, sisteminizde kullanıcıya verilmiştir.
- Google'a satın alma işleminin tamamlandığı (tüketildiği veya onaylandığı) bildirildi.
Tüketim malları söz konusu olduğunda, şu hususlar hayati önem taşır: tokeni doğru zamanda tüketin Sorunsuz yeniden satın alımlara olanak sağlamak ve yardımcı olmak Google Play'de yanlışlıkla yapılan satın alımları engelleyinAboneliklerde, kullanıcının ödediği hizmeti tam olarak ve bir gün bile eksik almadan almasını sağlamak için yenilemeleri, ödeme erteleme sürelerini, askıya alma işlemlerini ve iptalleri kontrol etmelisiniz.
Uygulamaya entegrasyon işin sadece yarısı: sunucunuzun da bunu sürdürmesi gerekiyor. Hak ve satın alma durumlarına ilişkin güvenilir kayıtÖzellikle platformlar arası erişim sunuyorsanız veya gelir, elde tutma ve müşteri kaybı hakkında ayrıntılı istatistiklere ihtiyacınız varsa bu durum son derece önemlidir. İşte burada gerçek zamanlı geliştirici bildirimleri (RTDN'ler) devreye giriyor ve satın alma yaşam döngüsünün "kara kutusu" görevi görüyor.
RTDN ile kritik olaylara neredeyse gerçek zamanlı olarak tepki verebilirsiniz: yeni bir satın alma, yenileme hatası, aboneliğin ödeme erteleme süresine girmesi veya iptal edilen bir satın alma. Bu, stratejiler geliştirmenizi sağlar. abone kurtarma ve dolandırıcılığın önlenmesiÖrneğin, ödeme başarısız olduğunda otomatik e-posta gönderilmesi veya müşteri ağ sorunları nedeniyle mesajı alamadığında hak düzenlemeleri yapılması gibi.
Gerçek zamanlı geliştirici bildirimleri (RTDN) ve Google Cloud Pub/Sub
RTDN'ler kullanıyor Google Cloud Pub / Sub Google Play ile arka uç sisteminiz arasında gerçek zamanlı bir mesajlaşma sistemi olarak işlev görür. Google Play, bir Yayınla/Abone Ol konusu hakkında etkinlikler yayınlar ve siz de bir satın alma veya abonelik durumunda değişiklik olduğunda mesaj almak için bu konuya abone olursunuz.
Temel akış basittir: Google Play, Pub/Sub konusuna base64 kodlu bir mesaj gönderir, aboneniz bunu çıkarır, kodunu çözer ve bildirimi işler. Bu alan içerisinde data Mesajın içinde bir JSON nesnesi bulacaksınız. Geliştirici BildirimiBu bilgiler arasında mesaj sürümü, paket adı, etkinlik zamanı ve tek seferlik satın alımlar, abonelikler, iptal edilen satın alımlar veya deneme sürümleriyle ilgili özel veriler yer almaktadır.
{
"version": string,
"packageName": string,
"eventTimeMillis": long,
"oneTimeProductNotification": OneTimeProductNotification,
"subscriptionNotification": SubscriptionNotification,
"voidedPurchaseNotification": VoidedPurchaseNotification,
"testNotification": TestNotification
}
Bu mesajlar sayesinde şunları yapabilirsiniz: Kullanıcının cihazı arızalansa bile arka uç sisteminizin senkronizasyonunu koruyun.Bir kullanıcının başarılı bir şekilde satın alma işlemi gerçekleştirdiğini, Google Play'in bunu onayladığını ancak uygulamanızın Faturalama Kütüphanesinden geri bildirim almadan önce mobil cihazın bağlantısının kesildiğini düşünün. RTDN olmadan bunu asla bilemeyebilirsiniz. Yayınla/Abone Ol (Pub/Sub) ile sunucunuz ayrı bir bildirim alır ve yetkilendirmeyi istemciden bağımsız olarak verebilir.
RTDN için Cloud Pub/Sub yapılandırması
RTDN'yi Google Play konsolunda etkinleştirmeden önce, bir proje hazırlamanız gerekiyor. Google Cloud Platformu (GCP) ve Pub/Sub ayarlarını orada yapılandırın. İşlem nispeten basittir, ancak izinler veya kaynak adlarıyla ilgili sürprizlerden kaçınmak için dikkatlice takip etmek en iyisidir.
Konuyu oluşturma
Öncelikle bir tane oluşturmalısınız. Yayın/Abonelik konusu Bu, Google Play yayın noktanız olarak işlev görecektir. Google Cloud konsolundan projenizi seçin, Yayınla/Abone Ol bölümüne gidin ve resmi "konu oluştur" kılavuzunu izleyerek yeni bir konu oluşturun. Sonuç, aşağıdaki biçimde bir ada sahip olacaktır:
projects/{project_id}/topics/{topic_name}
Bildirimleri etkinleştirirken Play Console'a yapıştırmanız gereken tam ad budur.
Abonelik oluşturma
Bu başlıkta yer alan mesajları okuyabilmek için şunlara ihtiyacınız var: Yayın/AbonelikŞöyle yapılandırabilirsiniz: itmek ya da ÇekReferans kod laboratuvarında, arka uç sisteminizin mesajları almak için istekleri başlattığı çekme aboneliği ile çalışıyoruz.
Cloud Pub/Sub abone kılavuzundaki seçenekleri inceleyerek, mimarinize en uygun yöntemin push mu yoksa pull mu olduğuna karar vermelisiniz. Kararınızı verdikten sonra, "abonelik ekle" belgelerini takip edin ve daha önce oluşturduğunuz konuya bağlayın. Bu noktadan itibaren, Google Play'in bu konuda yayınladığı tüm mesajlar aboneleriniz tarafından erişilebilir olacaktır.
Google Play'in temanızı yayınlaması için izinler
Pub/Sub, açıkça izin vermediğiniz sürece Google Play'in herhangi bir şey yayınlamasına izin vermez. hizmet hesabıGoogle Cloud konsolunda, konu izinleri ayarlarına gidip ana izni eklemeniz gerekiyor:
[email protected]
Bu hesaba şu rolü verin: Yayıncı/Abonelik yayıncısı (Yayıncı). Değişiklikleri kaydedin ve o andan itibaren Google Play, yetkilendirme sorunları yaşamadan temanıza RTDN'ler gönderebilecektir.
Google Play Console'da RTDN'yi etkinleştirin.

Pub/Sub yapılandırıldıktan sonra, Play Console'a bildirimlerin nereye gönderileceğini belirtmeniz gerekir. Google Play Console'daki uygulamanızda şu adımları izleyin: Play ile Para Kazan > Para Kazanma Ayarları ve gerçek zamanlı geliştirici bildirimleri bölümünü bulun.
Orada şunları yapmanız gerekecek:
- Gerçek zamanlı bildirimleri etkinleştirmek için kutuyu işaretleyin.
- Pub/Sub konu adının tamamını ilgili alana, belirtilen formata uyarak girin.
projects/{project_id}/topics/{topic_name}. - Test düğmesini kullanarak bir test mesajı gönderin.
Test mesajı, doğruluğunu teyit etmek için çok önemlidir. Entegrasyon başarılı bir şekilde uygulandı.Eğer bir çekme aboneliğiniz varsa, Cloud konsoluna gidip aboneliği seçebilir, "Mesajları görüntüle"ye tıklayarak test mesajını çıkarabilirsiniz. Bunu yapmayı unutmayın. ack Tekrar tekrar alınmasını önlemek için okuduğunuz herhangi bir mesajın kaydını tutun.
Anlık bildirim abonelikleri için, uç noktanızın mesajı aldığından ve geçerli bir HTTP koduyla yanıt verdiğinden emin olun. Bir sorun oluşursa, test yayınlanırken konsolda genellikle konu adı veya hizmet hesabı izinleriyle ilgili bir hata görüntülenir.
Son olarak, hangi tür bildirimleri almak istediğinizi yapılandırabilirsiniz: yalnızca abonelikler ve iptal edilen satın alımlar veya Tek seferlik satın alımlar dahil tüm bildirimler (ONE_TIME_PRODUCT_PURCHASED ve ONE_TIME_PRODUCT_CANCELED gibi olaylar). Benzersiz ürünler kullanıyorsanız, her şey üzerinde görünürlüğü korumak için tüm seti etkinleştirmek yaygın bir uygulamadır.
Arka uç sisteminizde bir Pub/Sub abone sistemi oluşturun.
Tema ve abonelik hazır olduğuna göre, artık uygulamaya geçme zamanı. RTDN'leri okuyan ve işleyen aboneGoogle, çeşitli dillerde örnekler sunmaktadır; Java'da tipik bir örnek, Cloud Pub/Sub istemci kütüphanelerini kullanarak bir uygulamayı başlatır. Subscriber mesajları dinleyen ve arayan MessageReceiver.
Genel yöntem her zaman aynıdır: mesajı alırsınız, alanı çözümlersiniz. data Base64'ü metne dönüştürürsünüz, JSON'u ayrıştırırsınız ve ilgili alanları (örneğin, packageName, oneTimeProductNotification o subscriptionNotification) ve sisteminizde ne yapacağınıza karar verin. Bildirimi başarıyla işledikten sonra, şunları yapmalısınız: Mesajı bir onay (ack) ile doğrulayın. Böylece Yayınla/Abone Ol işlemi tekrar gönderilmez.
Örnek kod, alıcının sürüm ve paket adını nasıl yazdırdığını gösteriyor, ancak gerçek bir uygulamada daha da ileri gidersiniz: Satın alma işlemini onaylayarak, hakkı doğru kullanıcıya vermiş olursunuz.Veritabanınızı güncelleyebilir ve gerekirse satın alma işlemini gerçekleştirmek veya tanımak için Play Geliştirici API'sini çağırabilirsiniz.
Kullanıcıya bağlantı bildirimleri: gizlenmiş Hesap Kimliği kullanılarak
Sunucudan yapılan satın alımları yönetirken sık karşılaşılan bir sorun, belirli bir RTDN bildiriminin hangi kullanıcıya ait olduğunu bilmektir. Bunun için, Faturalama İstemcisi API'si, aşağıdaki bilgileri eklemenize olanak tanır: gizlenmiş hesap tanımlayıcısı Satın alma akışını başlattığınızda: obfuscatedAccountId.
Buradaki fikir, sisteminizden sabit bir tanımlayıcı kullanmanızdır (örneğin, kullanıcının dahili kimliği), ancak Gizlilik ve güvenlik nedenleriyle gizlenmiştir.Bu değer satın alma işlemiyle ilişkilendirilir ve ardından Google Play Geliştirici API'sinden gelen bilgilerde görünür; böylece RTDN'yi aldığınızda ve belirteci doğruladığınızda, veritabanınızdaki hangi hesaba yetki vermeniz gerektiğini kesin olarak bileceksiniz.
Müşteri tarafında ise hazırlık aşamasında BillingFlowParamsTek yapmanız gereken listeyi oluşturmak. ProductDetailsParams ve Çağrı yap setObfuscatedAccountId(obfuscatedAccountId) Akışı başlatmadan önce. Bu, görünür kullanıcı deneyimini değiştirmez, ancak süreci büyük ölçüde basitleştirir. arka uç satın alma tahsis mantığı ve Google'ın dolandırıcılığı tespit etmesine yardımcı olur.
Google Play Geliştirici API'sini kullanarak satın alımları doğrulayın.
Sunucunuzda herhangi bir yetki vermeden önce, satın alma işleminin meşru olduğunu doğrulamak için ilgili servisi aramanız zorunludur. Google Play Geliştirici API'siMüşterinin veya hatta RTDN'nin söylediklerine güvenmek yeterli değil: Doğrulamanız gerekiyor. purchaseToken doğrudan resmi uç noktalara karşı ve gerekirse geri ödemeleri yönetin.
Benzersiz ürünler söz konusu olduğunda, uç noktayı kullanacaksınız. purchases.products:getAbonelikler için yol şu şekilde ilerler: purchases.subscriptionsv2:getÖnerilen akış:
- Ayıklayın
purchaseTokenYayınla/Abone Ol mesajından. - Veritabanınızda daha önce işlenip işlenmediğini kontrol edin; her bir belirteç şöyledir: küresel olarak benzersizDolayısıyla, mükerrer kayıtları önlemek için birincil anahtar olarak mükemmeldir.
- Yeni bir uygulama ise, paket adını, SKU'yu ve diğer bilgileri kullanarak Google Play Geliştirici API'sini çağırın.
purchaseToken. - Yanıtın satın alma durumunu gösterdiğini doğrulayın. SATIN ALINDI (Beklemede veya iptal edilmiş değil).
- Her şey uyumluysa, belirteci kaydedin ve ilgili kullanıcıya karşılık gelen hakkı verin.
Java'dan Play Geliştirici API'si ile iletişim kurmak için şunu kullanabilirsiniz: AndroidPublisherJSON formatındaki hizmet hesabı kimlik bilgileriyle başlatılır. Kapsamı siz yapılandırırsınız. AndroidPublisherScopes.ANDROIDPUBLISHERİstemciyi oluşturursunuz ve metodu çağırırsınız. purchases().products().get(...)Geçici bir ağ veya hizmet sorunu nedeniyle arama başarısız olursa, aşağıdaki önerilerde bulunulur. Üstel geri çekilme ile yeniden denemeleri uygulayın Etkinliği kaçırmamak için.
Sunucudan satın alma işlemini onaylayın veya tamamlayın.
Satın alma işlemini doğruladıktan ve sisteminizde yetkilendirmeyi verdikten sonraki adım, işlemin başarıyla tamamlandığını Google'a bildirmektir. Tekli ürünler için iki seçeneğiniz vardır: satın alımı tüketin ya da sadece onu tanı.
Tüketilebilir ürünler (örneğin, sanal para, canlar vb.) uç noktadan geçmelidir. purchases.products:consumeBu işlem, jetonun kullanılmış olarak işaretlenmesini ve kullanıcının aynı ürünü sorunsuz bir şekilde yeniden satın almasına olanak tanır. Tüketilemez ürünler (örneğin, premium sürümün ömür boyu kilidini açmak gibi) için ise şu işlemi yapmanız gerekir: purchases.products:acknowledgeBu da Google'a kullanıcının ilgili hakka zaten sahip olduğunu bildirir.
Abonelikler kullanılmaktadır. purchases.subscriptions:acknowledgeAboneliğin başarıyla işlendiğini ve kullanıcıya atandığını gösterir. Makul bir süre içinde satın alma işlemini onaylamazsanız, Google bir sorun olduğunu varsayabilir ve işlemi geri alabilir, bu nedenle onaylamanız önemlidir. Geri dönüş işlemi, hak tanındıktan hemen sonra yapılır..
AndroidPublisher yardımcı sınıfınızda aşağıdaki gibi yöntemler ekleyebilirsiniz. executeProductPurchasesConsume y executeProductPurchasesAcknowledge İlgili uç noktaları çağıran işlemler. Yine, olası arıza durumlarında yeniden deneme mekanizması uygulamak, hiçbir token'ın tehlikeli bir ara durumda kalmamasını sağlamak açısından tavsiye edilir.
Play Billing Lab ile gelişmiş testler
Birçok geliştiricinin hafife aldığı bir husus da test aşamasıdır. Güvenle bir lansman gerçekleştirmek için simülasyon yapabilmeniz gerekir. ağ hataları, standart dışı yanıtlar ve uç durumlarİşte tam bu noktada Play Billing Lab devreye giriyor; Google Play'de bulunan ve özellikle Play Billing Library entegrasyonlarını test etmek için tasarlanmış ücretsiz bir uygulama.
Play Billing Lab şunları içerir: cevap simülatörü bu da farklı şeyleri zorlamaya olanak tanır BillingResponseCode Bu sayede, uygulamanızın Faturalama Kütüphanesine yaptığı çağrılarda, örneğin müşterinin ağ sorunu nedeniyle satın alma işlemini tamamlayamadığı, ancak arka uç sisteminizin RTDN'yi doğru şekilde işleyip nihayetinde kullanıcı müdahalesi olmadan yetkilendirmeyi sağladığı senaryoları yeniden oluşturabilirsiniz.
Uygulamanızın simülatörle iletişim kurabilmesi için, meta verileri kullanarak "fatura geçersiz kılma" testini etkinleştirmeniz gerekir. AndroidManifest.xml:
<manifest ... >
<application ... >
...
<meta-data
android:name="com.google.android.play.largest_release_audience.NONPRODUCTION"
android:value="" />
<meta-data
android:name="com.google.android.play.billingclient.enableBillingOverridesTesting"
android:value="true" />
</application>
</manifest>
Etiket faturalandırmayı geçersiz kılma testini etkinleştir Faturalama Kütüphanesinde simüle edilmiş yanıt testlerini etkinleştirin. NONPRODUCTION etiketi, bu sürümün geçersiz kılmalar etkin haldeyken üretime girmemesi gerektiğini hatırlatan bir uyarıdır. Kullanıcılar için son sürümü hazırlarken şunlara dikkat edin: Bu meta veriyi kaldırın veya ayrı bir bildirim dosyası kullanın..
Yapılandırma tamamlandıktan sonra, Play Billing Lab uygulamasından bir lisans test kullanıcısı hesabıyla giriş yapın, "Play Billing Library yanıtını simüle et" seçeneğini etkinleştirin ve her API için hangi hata kodlarını döndürmek istediğinizi seçin (örneğin, belirli bir hata için) consumeAsyncArdından uygulamanızı açıp test etmek istediğiniz akışı çalıştırmanız yeterli: simülatör yapılandırılmış yanıtları döndürecek ve yeniden deneme mantığınızın, hata işlemenizin ve RTDN'nizin beklendiği gibi davrandığını doğrulayabileceksiniz.
Play Billing Library 7'ye geçişte API'de yapılan önemli değişiklikler
RTDN ve test işlemlerinin ötesinde, PBL 7'ye geçiş bazı özel API noktalarının ele alınmasını gerektirir. PBL 5 veya 6'dan gelenler için, projenin sorunsuz bir şekilde derlenmesini ve iş mantığının tutarlı kalmasını sağlamak amacıyla en ilgili değişiklikleri gözden geçirmek faydalı olacaktır.
İlk olarak, ilgili API'ler şunlardır: Oranlama Modu Abonelik değiştirme seçenekleri kaldırıldı. Artık aşağıdaki yöntem kullanılmaktadır: Değiştirme Modu Plan değişikliklerini (yükseltmeler, düşürmeler vb.) yönetmek için. Hala aşağıdaki gibi yöntemler kullanıyorsanız... setReplaceProrationMode o setReplaceSkusProrationModeBunları yeni varyantlara geçirmeniz gerekecek. setSubscriptionReplacementMode ve güncellenmiş belgelere göre mantığı ayarlayın.
API de kaldırıldı. launchPriceConfirmationFlowBu zaten kullanım dışı olarak işaretlenmişti. Abonelik fiyatı değişikliklerini yönetmek için, kullanıcıyı nasıl doğru şekilde bilgilendireceğinizi ve onayı nasıl yöneteceğinizi ayrıntılarıyla anlatan fiyatlandırma değişikliği kılavuzundaki yeni iş akışlarına ve önerilere başvurmalısınız.
Bir diğer önemli nokta ise Alternatif faturalama API'leriYöntemler BillingClient.Builder.enableAlternativeBilling, AlternativeBillingListener y AlternativeChoiceDetails Daha uyumlu bir terminoloji lehine ortadan kalkmışlardır: artık şunu kullanmalısınız: BillingClient.Builder.enableUserChoiceBilling() junto a UserChoiceBillingListener y UserChoiceDetailsGoogle'ın kendi açıklamasına göre, bu temelde davranışlarda herhangi bir değişiklik olmaksızın sadece bir isim değişikliğinden ibaret ve şu gibi anlaşmalarla şekillenen bir bağlamda gerçekleşiyor: Google ve Epic Games, Android'i açık kaynaklı hale getirme konusunda anlaştı..
Son olarak, yeni bir hata kodu girilir. AĞ_HATASI en BillingResultve anlamları ve koşulları HİZMET_ZAMAN AŞIMI ve HİZMET_KULLANILAMAZÖzel hata işleme mantığınız varsa (örneğin, kullanıcıya ne zaman mesaj gösterileceğine, ne zaman sessizce yeniden deneneceğine vb. karar verme), bu yeni nüansları dikkate almak için onu gözden geçirmeniz önerilir.
Satın alınana kadar bekleyen işlemler ve sipariş kimliğinin bulunmaması.
PBL 7'deki ince bir değişiklik, kütüphanenin artık bir şey üretmemesidir. Bekleyen satın alımlar için sipariş numarası. Bu durumlarda, orderId Bu özellik yalnızca satın alma işlemi "SATIN ALINDI" durumuna ulaştığında kullanılabilir olacaktır. Bu durum özellikle, sipariş kimliğini baştan itibaren birincil referans olarak kullandığınız iş akışlarını etkiler.
Google'ın önerisi, şuna güvenmenizdir: Kayıtlarınız ve mutabakatlarınız için purchaseToken.En azından işlem beklemedeyken. Play Store'dan kaybolmuş bir satın alma işlemi bulursanız, kontrol edin. Satın alınan ürün kaybolursa ne yapmalı?.
Henüz ödenmemiş bakiyelerle çalışmadıysanız, Faturalama Kütüphanesi entegrasyon kılavuzunu ve belgelerini inceleyin. tedarik yaşam döngüsü yönetimiOrada farklı durumları, her birine nasıl tepki verileceğini ve RTDN'lerin bu bulmacaya nasıl uyduğunu bulacaksınız.
PBL 7'deki yeni isteğe bağlı özellikler: sanal taksitler ve ön ödemeler
PBL 7'nin "güzel" yeni özelliklerinden bazıları şunlardır: sanal ücretli abonelikler (Sanal taksitli abonelikler) ve ön ödemeli abonelikler için bekleyen satın alımlara yönelik genişletilmiş destek. Bu özellikler zorunlu değildir, ancak iş modelinizi farklı pazarlara uyarlarken size daha fazla esneklik sağlayabilirler.
Sanal taksitler, kullanıcının daha uzun süreli bir aboneliğin bedelini ödemesine olanak tanır. küçük periyodik ödemelerGoogle, geliştirici faturalandırması amacıyla, tek seferlik büyük bir ödeme yerine, aylık taksitler içeren yıllık bir plan kapsamında aylık ödemeler almaya devam edeceğinizi açıklıyor. Kullanıcı bir ödemeyi kaçırırsa, ne siz ne de Google geçmiş taksitleri geri almaya çalışmamalıdır. Bu, en azından başlangıçta, pratik kullanımını standart bir aylık aboneliğe oldukça benzer hale getiriyor.
Şimdilik bu abonelik ücretleri yalnızca şu durumlarda geçerlidir: Brezilya, Fransa, İtalya ve İspanyaGoogle, yeni desteklenen ülkeler için Play Console'u takip etmenizi önerir. Yapılandırma şu şekilde yapılır: ProductDetails.InstallmentPlanDetails ve bunları uygulamanıza entegre etmek için özel kılavuzu takip edin.
Buna paralel olarak, destek genişletiliyor. ön ödemeli abonelikler için bekleyen satın alımlarArtık, kullanıcının satın alma işlemini uygulamada başlatıp ödemeyi daha sonra başka yollarla tamamladığı modeller sunabilirsiniz ve Faturalama Kütüphanesi bu akışı doğru şekilde nasıl yöneteceğini bilir. Etkinleştirme, çağrı yapılarak gerçekleştirilir. enablePendingPurchases() BillingClient'ı başlatırken ve özellikle ön ödemeli planlar için, aşağıdaki yöntemleri kullanarak: PendingPurchasesParams.Builder.enablePrepaidPlans().
Play Billing Library 5 ve 6 için amortisman süreleri
PBL 7'nin ortaya çıkmasıyla birlikte Google, net tarihler belirledi. 5 ve 6. sürümler için desteğin geri çekilmesiEğer hala bu durumlardan herhangi birindeyseniz, takvimi kırmızıyla işaretlemelisiniz:
- Google Play Faturalandırma Kütüphanesi 5, yeni uygulamalar ve güncellemeler için 31 Ağustos 2024 tarihinde resmi olarak kullanımdan kaldırılacaktır. 1 Kasım 2024 tarihine kadar uzatma talebinde bulunmak mümkün olsa da, buna uzun vadede güvenmemelisiniz.
- Google Play Faturalandırma Kütüphanesi 6, 1 Ağustos 2025'e kadar yeni uygulamalar yayınlamak ve 1 Kasım 2025'e kadar mevcut uygulamaları güncellemek için kullanılabilir.
Bu tarihten sonra, en az 6. sürüme veya ideal olarak 7. sürüme geçiş yapmadıysanız, en son sürüme güncelleme yapmanız gerekecektir. sürüm 7Play Console'da güncellemeleriniz engellenecektir. Uygulamanız kullanıcıların cihazlarında çalışmaya devam edecek olsa da, uygulama donmuş halde kalacak, hataları düzeltemeyecek veya mağazada yayınlanmaya bağlı yeni özellikler ekleyemeyeceksiniz.
.NET MAUI örneği ve mevcut sınırlamaları
Eğer .NET MAUI ve Android'de aboneliklerle çalışıyorsanız, bunun o kadar da basit olmadığını muhtemelen okumuş veya deneyimlemişsinizdir. Birçok projede kullanılan yöntemler... Eklenti.UygulamaİçiFaturalandırma James Montemagno tarafından geliştirilmişti, ancak eklenti arşivlendi ve bakımı yapılmıyor, bu nedenle Billing Library 7'yi destekleyecek şekilde güncellenmeyecek. Aynı zamanda, resmi paket Xamarin.Android.Google.BillingClient Xamarin.Android ekosistemine bağlı kalmıştır ve .NET MAUI ile doğrudan uyumlu değildir.
Bunun pratik sonucu şudur ki... Play Console uyarıyor Uygulamanız, 7.0.0 veya daha yüksek bir Billing Library sürümünü kullanmıyor; bu da eski kütüphaneleri kullanmaya devam ederseniz güncellemeleri engelliyor. Bazı geliştiriciler, bir sürüm yükleyebilmek için abonelikleri geçici olarak devre dışı bırakmak gibi radikal çözümlere başvurdu, ancak iş modeliniz bu gelir kaynağına bağlıysa bunun sürdürülebilir olmadığı açık.
Bu bağlamda, birçok ekip aşağıdaki gibi alternatifleri değerlendiriyor: Üçüncü taraf SDK'ları Bu hizmetler zaten altyapıda PBL 7'yi destekliyor ve daha istikrarlı, platformlar arası bir API sunuyor (örneğin, Android, iOS ve diğer platformlar için SDK'lara sahip abonelik arka uç çözümleri). Bu hizmetler genellikle Faturalama Kütüphanesi sürüm geçişlerini yönetiyor ve istikrarlı bir sarmalayıcı sunarak, her yeni Google kullanımdan kaldırma işleminde yaşanan stresi önemli ölçüde azaltıyor.
Microsoft ve MAUI ekibi bir teklif sunana kadar Resmi paket güncellendi ve tamamen uyumlu. Billing Library 7 ile seçenekler arasında şunlar yer alıyor: yerel Billing Library'ye kendi bağlantınızı uygulamak, üçüncü taraf bir hizmet kullanmak veya MAUI projenizde satın alımları nasıl entegre edeceğinizi yeniden düşünmek. Her durumda, kararı son dakikaya bırakmamak en iyisidir, çünkü Play'in son teslim tarihleri sabittir.
Genel olarak, Google Play Faturalama Kütüphanesi v7 güncellemesi, bağımlılıkların gözden geçirilmesini, eski API'lerin temizlenmesini, satın alma doğrulaması ve RTDN ile arka uç mantığının güçlendirilmesini ve canlıya geçmeden önce tüm hataları ortaya çıkarmak için Play Billing Lab gibi test araçlarından yararlanmayı içeriyor. Bu geçişi ince ayar yapmak için zaman ayıranlar, ön ödemeli planları, sanal ücretleri, ağ hatalarını ve abonelik yaşam döngüsü değişikliklerini daha iyi yönetebilecek ve Google Play'de istikrarlı gelir ve kusursuz bir kullanıcı deneyimi sağlama şansları çok daha yüksek olacaktır. Daha fazla kullanıcının konu hakkında bilgi edinebilmesi için bilgileri paylaşın.