Bu konuda, aşağıdakiler gibi abonelik yaşam döngüsü olaylarının nasıl ele alınacağı yenilemeler ve süre sonları. Ek abonelik özellikleri de açıklanmaktadır Promosyonlar sunma ve kullanıcılarınızın kendi kampanyalarını yönetmelerine izin verme gibi aboneliklerdir.
Uygulamanız için abonelik ürünleri yapılandırmadıysanız Ürünlerinizi oluşturun ve yapılandırın.
Aboneliklere genel bakış
Abonelik, kullanıcıların belirli bir süre boyunca erişebileceği avantajları belirtir. belirli bir zaman dilimi]. Örneğin, bir abonelik, bir kullanıcıya bir müzik akış hizmetine erişmek için erişiminizi kullanabilirsiniz.
Aynı uygulama içinde birden fazla aboneliğiniz olabilir. farklı fayda gruplarını veya tek bir öğenin farklı katmanları bir avantaj dizisidir (ör. "Gümüş" ve "Altın" katmanlar).
Temel planlar ve teklifler aracılığıyla birden fazla yapılandırma oluşturabilirsiniz. . Örneğin, Arkadaş Bitkiler projesinin Uygulamanıza daha önce hiç abone olmamış kullanıcılar için tanıtım teklifi. Aynı şekilde, Abone olan kullanıcılar için yükseltme teklifi oluşturabilirsiniz.
Abonelik ürünleri, temel planlar ve teklifler hakkında ayrıntılı bilgi için şuradaki dokümanlara bakın: Play Console Yardım Merkezi.
Ön ödemeli plan entegrasyonu
Ön ödemeli planlar, geçerlilik süresi dolduktan sonra otomatik olarak yenilenmez. Uzatmak için abonelikten yararlanma hakkına sahip değilse kullanıcının aynı abonelik için ön ödemeli plan.
Para ekleme işlemleri için faturalandırma akışını ilk başta yaptığınız gibi başlatın. değeri için teklif verirsiniz. Satın alma işleminin para ekleme olduğunu belirtmeniz gerekmez.
Ön ödemeli plan para ekleme işlemleri için her zaman CHARGE_FULL_PRICE
kullanılır
değiştirebilirsiniz ve bu modu açık bir şekilde ayarlamanız gerekmez.
Tam fatura dönemi için kullanıcıdan hemen ücret alınır.
ve yararlanma hakları, para eklemede belirtilen süre boyunca uzatılır.
Para ekleme işleminden sonra,
Purchase
sonuç nesnesi, en son para ekleme işlemini yansıtacak şekilde güncellenir:
- Sipariş kimliği
- Satın alma zamanı
- İmza
- Satın alma jetonu
- Kabul edildi
Aşağıdaki Purchase
alanları şurada bulunanlarla her zaman aynı verileri içerir:
orijinal satın alma işlemi:
- Paket adı
- Satın alma durumu
- Ürünler
- Otomatik yenileme
Ön ödemeli satın alma onayı
Otomatik yenilenen aboneliklerde olduğu gibi ön ödemeli planları kabul etmeniz gerekir geri ödeme yöntemini kullanabilirsiniz. Hem ilk satın alma hem de para ekleme işlemleri, teşekkür ederim. Daha fazla bilgi için bkz. Satın alma işlemlerini işleme.
Ön ödemeli plan sürelerinin kısa olma ihtimali nedeniyle mümkün olan en kısa sürede onaylamanız gerekir.
Bir hafta veya daha uzun süreli ön ödemeli planların onaylanması gerekir üç gün içinde tamamlanması gerekir.
Süresi bir haftadan kısa olan ön ödemeli planların onaylanması gerekir ödeme yaparsınız. Örneğin, geliştiricilerin üç günlük ön ödemeli planı onaylamalıdır.
Taksitli abonelik entegrasyonu
Taksitli abonelik, kullanıcıların ödeme yapmak yerine belirli bir süre içinde birden fazla taksitle peşin ödeyeceksiniz.
Taksitli aboneliklerle ilgili diğer noktalar:
- Kullanılabildiği ülkeler: Taksitli abonelikler özelliği yalnızca kullanılabilir (en son kullanım durumu için Console'a bakın).
- Fiyatı ayarlama: Taksitli bir abonelik için fiyat belirlerken fiyat, aylık ödeme tutarını temsil eder. Bu, ayarlanan taahhüt dönemiyle birleştirildiğinde toplam tutar abonelik için gösterilen verileri kullanabilirsiniz.
- Taahhüt süresi: İlk aboneliğin toplam süresi taahhüdünü kabul etmeniz gerekir. Bu süre boyunca aylık ödeme yapmanız gerekir. Örneğin, temel planın 15 aylık taahhüt süresi varsa kullanıcı aylık 15 ay bu süre boyunca gerçekleşen ödemeler.
- Yenilemeler: Taksitli abonelikler bağlamında, "yenileme" ifade eder bir taahhüt döneminin sonu olabilir. daha sonraki taahhütlerde bulunur. İlk kaydın ardından, ilk yenileme İlk taahhüt döneminin tamamı tamamlandığında gerçekleştirilir. Sonraki yenilemeler, takip eden her taahhüt dönemi karşılandıktan sonra gerçekleşir. İlgili içeriği oluşturmak için kullanılan Taksitli abonelikler için yenileme türü "aylık otomatik yenilenir" şeklinde olabilir. veya "aynı süre boyunca otomatik olarak yenilenir". "Aylık otomatik yenilenir" için sonraki taahhütlerde (planınızın) her aylık abonelik ücreti bir yenilemedir.
- Fatura dönemi: Taksitli abonelikler bağlamında bu dönem belirtildiği üzere, tek tek ödemelerin yapıldığı yinelenen aralığa göre teklif stratejisini seçin.
- Plan değişikliği ve fiyat değişikliği davranışları: Fiyat değişiklikleri ve taahhüt katıdır. Bu, bir kullanıcı bir veya geliştirici fiyatı değiştirmek isterse, değişiklik Taahhüt döneminin bitmesi. Plan değişikliklerine yönelik taahhütler net değildir. Bu, plan değişikliğinin yeni bir planın son gününe kadar beklenmesi gerekmeyeceği anlamına gelir. taahhüt süresi söz konusuysa, derhal veya bir sonraki ödemede yürürlüğe girer. belirlenen değişim moduna göre tarihe göre değişir.
- Aynı abonelik planı değişikliği: Taksitli temel plandan plan değişikliği aynı abonelik ürününe ait taksitli olmayan bir temel plana izin verilir.
Gerçek zamanlı geliştirici bildirimleri (RTDN'ler): A
SUBSCRIPTION_CANCELLATION_SCHEDULED
RTDN hemen şu tarihte gönderilir: Taahhüt dönemi boyunca ödemeler kaldığında kullanıcı tarafından başlatılan iptal İptal işlemi beklemededir ve yalnızca taahhüt süresidir. Ardından, kullanıcı tarafından geri yüklenmezseSUBSCRIPTION_CANCELED
veSUBSCRIPTION_EXPIRED
RTDN, taahhüt süresinin sonunda gönderilir.Ödemeler / Gelir elde etme: Geliştirici ödemeleri, kullanıcılar ödeme yaptıkça gerçekleştirilir. diğer tüm aboneliklerle aynı şartlara tabi olacak şekilde aylık ödemelerini talep eder. Kullanıcı taksit için kaydolduğunda geliştiricilere ön ödeme yapılmaz abonelik.
Kaçırılan ödeme tahsilatları: Kullanıcının taksitle ilgili ödeme yapamaması Google ya da Geliştirici, abonelik ödemelerini almaya çalışmayacaktır. kullanıcının bu tür eksik veya bekleyen ödemeleri varsa, Geçerli Ek Dönem içinde düzenli aralıklarla ödeme yapmayı tekrar deneyin veya Ödemelerin normal şekilde yeniden deneme yöntemlerine uygun olarak, Hesabı Askıya Alma süresi. Google, ödenmemiş tutarlar için Geliştirici'ye karşı sorumlu olmayacaktır. taksitli ödemeler.
Play Faturalandırma Kitaplığı'nın kullanılabilirliği:
installmentDetails
alanı yalnızca PBL 7 veya sonraki sürümlerde kullanılabilir. PBL 5 ve sonraki sürümlerde taksit abonelikqueryProductDetails()
kullanılarak döndürülür ancak abonelik Taahhüt edilen ödeme sayısı gibi ayrıntılı taksit bilgilerini içermez. olabilir.
Kullanıcıların bir aboneliği yönetmesine izin vermek için derin bağlantılar kullanın
Uygulamanız, ayarlar veya tercihler ekranında abonelik yönetimi olanağı bulmalıdır. Bu bilgileri, uygulamanızın doğal bir görünüm ve tarz sağlar.
Uygulamanızdan Google Play aboneliklerine derin bir bağlantı ekleyebilirsiniz
süresi dolmamış aboneliklere yönelik bir e-posta alırsınız.
Abonelik kaynağının subscriptionState
alanı.
Buna göre, Play Store'a derin bağlantı oluşturmanın birkaç yolu vardır.
Mağaza abonelik merkezi.
Abonelik merkezinin bağlantısı
Kullanıcıları tüm ilgi alanlarını ve abonelik satın alabilirsiniz:
https://play.google.com/store/account/subscriptions
Bu derin bağlantı, kullanıcının iptal edilmiş bir aboneliği geri yüklemesi için faydalı olabilir Google Play Store abonelik merkezinden satın alabilirsiniz.
Belirli bir abonelik yönetimi sayfasının bağlantısı (önerilir)
Süresi dolmamış bir aboneliğin yönetim sayfasına doğrudan bağlantı oluşturmak için
paket adı ve satın alınan abonelikle ilişkili productId
. Alıcı:
mevcut bir abonelik için productId
programatik olarak belirleyebilir, sorgu
uygulamanızın arka ucuna gidin veya liste için BillingClient.queryPurchasesAsync()
çağırın
bir dizi abonelik seçeneğinden yararlanabilirsiniz. Her abonelikte
abonelik durumu bilgilerinin bir parçası olarak ilgili productId
.
Bir SubscriptionPurchaseLineItem
nesne ile
abonelik satın alımında productId
kullanıcının söz konusu satır öğesinde satın aldığı abonelik.
Kullanıcıları belirli bir abonelik yönetimine yönlendirmek için aşağıdaki URL'yi kullanın
"alt-ürün-kimliğiniz" kısmını değiştirin, ve "your-app-package" şununla:
Sırasıyla productId
ve uygulama paketi adı:
https://play.google.com/store/account/subscriptions?sku=your-sub-product-id&package=your-app-package
Böylece kullanıcı, ödeme yöntemlerini yönetebilir ve özelliklere erişebilir dahil çeşitli konuları ele aldık.
Kullanıcıların aboneliklerini yükseltmesine, düşürmesine veya değiştirmesine izin verme
Mevcut abonelere abonelik ayarlarını değiştirmeleri için çeşitli seçenekler sunabilirsiniz abonelik planı satın alınabiliyor:
- "Temel" gibi birden fazla abonelik katmanı satıyorsanız ve "premium" kullanıcıların farklı bir katman satın alarak katman değiştirmelerini sağlayabilirsiniz. abonelik planı veya fırsatı anlamına gelir.
- Kullanıcıların geçerli fatura dönemlerini değiştirmesine (ör. geçiş yapma) izin verebilirsiniz yıllık plana nasıl geçireceğiz.
- Ayrıca, kullanıcıların otomatik yenilenen ve ön ödemeli planlar arasında geçiş yapmasına izin verebilirsiniz.
Şu kullanıcılara abonelik teklifleri sunarak bu değişikliklerden herhangi birini teşvik edebilirsiniz: Uygun kullanıcılara indirim sunmalıdır. Örneğin, Yeşil Ofis’in Aylık abonelikten yeni aboneliğe geçerken ilk yılda% 50 indirim ve bu teklifi aylık abone olarak sınırlandırın. daha önce alışveriş yapmış olmanız gerekir. Teklif uygunluğu hakkında daha fazla bilgi ölçütleri Yardım Merkezi'nde bulabilirsiniz.
Şekil 3'te üç farklı plan içeren örnek bir uygulama gösterilmektedir:
Uygulamanızda şekil 3'e benzer bir ekran görüntülenerek kullanıcılara değiştirme seçeneği sunulabilir daha fazla bilgi edindiniz. Her durumda, kullanıcılar o anda ne yaptıklarını ve bunu değiştirmek için ne gibi seçeneklere sahip oldukları.
Kullanıcılar aboneliklerini yükseltmeye, düşürmeye veya değiştirmeye karar verdiklerinde her bir anahtar kelimenin eşit olarak bölünmüş değerinin nasıl Ücretli mevcut fatura döneminin uygulandığı ve yararlanma hakkı değişikliği gerçekleştiğinde.
Değiştirme modları
Aşağıdaki tabloda mevcut değişim modları ve örnek kullanımlar listelenmiştir. ve ödendi olarak kabul edilen ödemelerin sayısını gösterir.
Değiştirme modu |
Açıklama |
Örnek kullanım |
Taahhüt edilen ödemeler ödendi olarak kaydedilir (Taksitli abonelik değişimi için) |
|
Abonelik hemen yükseltilir veya düşürülür. Kalan süre, fiyat farkına göre ayarlanır ve bir sonraki fatura tarihi ileri doğru çekilerek yeni abonelik kredisi verilir. Bu, varsayılan davranıştır. |
Hemen ek ödeme yapmadan daha pahalı bir katmana geçin. |
0 |
|
Abonelik hemen yükseltilir ve faturalandırma dönemi aynı kalır. Ardından, kalan dönemdeki fiyat farkı kullanıcıdan tahsil edilir. Not: Bu seçenek yalnızca abonelik yükseltmesi, burada birim zaman başına fiyatın artar. |
Faturalandırma tarihini değiştirmeden daha pahalı bir katmana geçebilirsiniz. |
1 |
|
Abonelik hemen yükseltilir veya düşürülür ve kullanıcı yeni yararlanma hakkı için hemen tam ücret alınır. Kalan değer veya aynı abonelik için bir sonraki abonelik veya farklı bir yararlanma hakkına geçişte geçen süreye göre eşit olarak bölünmüş şekilde bölünebilir. Not: Yeni aboneliğin ücretsiz deneme süresi varsa veya tanıtım teklifi kapsamında kullanıcıdan 0 TL veya tanıtım amaçlı satışın fiyatı teklifi (hangisi geçerliyse) yeni sürüme veya alt sürüme geçirme sırasında. |
Daha kısa fatura dönemi yerine daha uzun bir fatura dönemi belirleyin. |
1 (Not: Yeni aboneliğin ücretsiz deneme süresi varsa 0 değerini alır.) |
|
Abonelik hemen yükseltilir veya düşürülür ve abonelik yenilendiğinde yeni fiyat üzerinden ücretlendirilir. Faturalandırma dönemi değişmeyecektir. |
Aboneliğinizi daha yüksek bir abonelik katmanına yükseltin ve kalan ücretsiz süreyi koruyun. |
0 |
|
Abonelik yalnızca abonelik yenilendiğinde yükseltilir veya düşürülür. Ancak yeni satın alma işlemi, yeni yararlanma hakkının başlangıç tarihi ve gelecekteki bir tarihle hemen yayınlanır. Böylece geliştirici, kullanıcıların isterse ek değişiklikler yapmasına izin verebilir. Örneğin, kullanıcılar orijinal plana geri dönebilir veya yeni bir ertelenmiş plan değişikliği başlatabilir. Not: Taksitli aboneliklerde plan değişikliği bir sonraki ödeme tarihinin başında gerçekleşir. |
Daha ucuz bir katmana geçin. |
1 |
Google Ads'in farklı upsell ve geri kazanma uygulamaları hakkında teklifleri yükseltmek veya düşürmek için teklifler ve promosyonlar kılavuzunu okuyun.
Satın alma işlemi için değişim modunu ayarlama
Farklı abonelik türleri için farklı değiştirme modları kullanabilirsiniz. geçişleri özelleştirebilirsiniz. Bu bölümde şu konular açıklanmaktadır: Bir abonelikteki değişiklik için değiştirme modu ayarlama ve sınırlamalar .
Aynı abonelikte yeniden abone olma veya plan değiştirme
Google Play Console'da varsayılan bir değiştirme modu belirtebilirsiniz. Bu
ayarı, satın alma işlemi gerçekleştiren mevcut abonelerden ne zaman ödeme alınacağını seçmenizi sağlar
abonelik için farklı bir temel plan veya teklif sunabilir ya da
iptal eder. Kullanılabilen seçenekler Hemen şarj et'tir. Bu seçenekler şuna eşdeğerdir:
CHARGE_FULL_PRICE
ve Bir sonraki fatura tarihinde ödeme; eşdeğeri
WITHOUT_PRORATION
. Bu modlar yalnızca aşağıdaki durumlarda
Aynı abonelikteki temel planlara geçiş yapma.
Örneğin, aynı plan için geri kazanma teklifi uyguluyorsanız
Kullanıcı iptal ederse, ancak abonelik sona ermeden önce yeni satın alma işlemini gerçekleştirebilirsiniz.
herhangi bir değer belirtmeden normal bir satın alma işlemi olarak
SubscriptionUpdateParams
Sistem, kullandığınız varsayılan değiştirme modunu kullanır.
abonelikte yapılandırılır ve plan geçişini otomatik olarak gerçekleştirir
devam edebilir.
Abonelikler arasında planlar arasında geçiş yapın veya varsayılan değiştirme modunu geçersiz kılın
Kullanıcı abonelik ürünlerini değiştiriyorsa (farklı bir ürün satın alarak) veya herhangi bir öğe için varsayılan değiştirme modunu Bu nedenle, satın alma akışının bir parçası olarak çalışma zamanında kullanılan kullanım oranını belirtirsiniz. parametreleridir.
Çalışma zamanında satın alma işleminizin bir parçası olarak SubscriptionUpdateParams
değerini doğru şekilde sağlamak için
şu kısıtlamalara dikkat edin:
- Üst sürüme geçerken, eski sürüme geçerken veya aynı abonelik işlemini yeni bir abonelikle başlatırken
Ön ödemeli plan veya otomatik yenilenen plan veya taksitli plan arasından
izin verilen değişim modu
CHARGE_FULL_PRICE
. Başka bir değiştirme modundaysa satın alma işlemi başarısız olur ve kullanıcıya bir hata gösterilir. - Aynı abonelikteki planları otomatik yenilenen bir plana geçirdiğinizde
Ön ödemeli plan veya otomatik yenilenen plan arasından, geçerli bölüştürme modları
CHARGE_FULL_PRICE
veWITHOUT_PRORATION
. Başka bir satın alma işlemi başarısız olur ve kullanıcıya bir hata gösterilir. - Taksitli yöntemle aynı abonelik ürününde plan değiştirme taksitli olmayan bir temel plana izin verilmez.
Değiştirme örnekleri ve davranışları
Her bir bölüştürme modunun nasıl çalıştığını anlamak için aşağıdaki senaryoyu inceleyin:
Selin, Country Gardener uygulamasından online içerik aboneliği satın alıyor. O İçeriğin Tier 1 sürümüne aylık aboneliği varsa O da yalnızca metin. Bu aboneliğin fiyatı ona aylık 2 ABD dolarıdır ve abonelik yenilenir ayın ilk gününde
Sambil, 15 Nisan'da 2. Katman'ın yıllık sürümüne geçmeyi tercih etti. ve video güncellemelerini içeren yıllık 36 ABD doları olan abonelik.
Geliştirici, aboneliği yeni sürüme geçirirken kullanıma oranlı ödeme modu seçer. İlgili içeriği oluşturmak için kullanılan Aşağıdaki listede her bir kullanıma oranlı ödeme modunun Sambil'in aboneliğini nasıl etkilediği açıklanmaktadır:
WITH_TIME_PRORATION
Sambil'in 1. Katman aboneliği hemen sona eriyor. Çünkü kullanıcı başına aylık (1-30 Nisan) ancak abonelik döneminin ortasında yükseltilmiş. Yeni aboneliğine aylık abonelik (1 ABD doları) uygulanır. Ancak, yıllık 36 dolar olduğunu ve 1 dolarlık kredi bakiyesinin yalnızca 10 dolarlık gün (16-25 Nisan); 26 Nisan'da ise yeni bir abonelik için 36 TL ve 36 ABD doları daha.
Geçerli olduğu anda uygulamanızın PurchasesUpdatedListener
numarasını
ve bir sonraki satın alma işleminin bir parçası olarak yeni satın alma işlemini daha
queryPurchasesAsync()
sesli arama. Arka ucunuz hemen bir
SUBSCRIPTION_PURCHASED
Gerçek Zamanlı Geliştirici Bildirimi.
CHARGE_PRORATED_PRICE
Zaman birimi başına 2. Katman abonelik fiyatı nedeniyle bu mod kullanılabilir. (36 ABD doları/yıl = ayda 3 ABD doları), tek seferde 1. Katman abonelik fiyatından fazladır bir tutar (2 $/ay). Sambil'in 1. Katman aboneliği hemen sona eriyor. Çünkü ilk yarısını ödedi ancak bunun yalnızca yarısını kullandı. Yeni aboneliğine ($1) uygulanır. Ancak bu yeni abonelik kalan 15 günün maliyeti 1, 50 TL; Bu yüzden kendisinden yeni aboneliği için 0,50 dolarlık bir fark. Sambil, 1 Mayıs'ta 36 TL üzerinden ücretlendiriliyor. karşılığında 36 ABD doları daha kazanacak.
Geçerli olduğu anda uygulamanızın PurchasesUpdatedListener
numarasını
ve satın alma işleminin bir parçası olarak yeni satın alma işlemini
queryPurchasesAsync()
araması. Arka ucunuz hemen bir
SUBSCRIPTION_PURCHASED
Gerçek Zamanlı Geliştirici Bildirimi.
WITHOUT_PRORATION
Sambil'in Katman 1 aboneliği, herhangi bir ek abonelik içermeyen Katman 2'ye hemen ek ücret alır ve 1 Mayıs'ta yeni abonelik katmanı için 36 ABD doları 36 ABD doları daha.
Geçerli olduğu anda uygulamanızın PurchasesUpdatedListener
numarasını
ve satın alma işleminin bir parçası olarak yeni satın alma işlemini
queryPurchasesAsync()
araması. Arka ucunuz hemen bir
SUBSCRIPTION_PURCHASED
Gerçek Zamanlı Geliştirici Bildirimi.
DEFERRED
Sambil'in Katman 1 aboneliği, 30 Nisan'da sona erene kadar devam edecek. Mayıs'ta İlkinde 2. Katman aboneliği yürürlüğe girer ve Sambil'in abonelik için 36 ABD doları yeni bir üyelik katmanı oluşturdu.
Geçerli olduğu anda uygulamanızın PurchasesUpdatedListener
numarasını
ve satın alma işleminin bir parçası olarak yeni satın alma işlemini
queryPurchasesAsync()
araması. Arka ucunuz hemen bir
SUBSCRIPTION_PURCHASED
Gerçek Zamanlı Geliştirici Bildirimi. Şunları yapmalısınız:
Diğer yeni satın alma işlemlerinizde olduğu gibi satın alma işlemini uygulayın.
mesela. Özellikle, yeni satın alma işlemini onayladığınızdan emin olun. Not
yeni aboneliğin startTime
için belirlenen fiyat
yani değişimin etkin olduğu andan itibaren
aboneliğin süresi doluyor. Bu noktada, bir SUBSCRIPTION_RENEWED
alırsınız.
Yeni abonelik planı için RTDN. Şu konu hakkında daha fazla bilgi edinin:
Şu sürede ReplacementMode.DEFERRED
davranışı:
Ertelenen değişim işlemlerini ele alma.
CHARGE_FULL_PRICE
Sambil'in 1. Katman aboneliği hemen sona eriyor. 2. Katman aboneliği bugün başlıyor ve 36 TL tutarında ücretlendiriliyor. Çünkü bir ayın tamamı için ödeme yaptı ama yarısını kullanmaya devam edecek. Aylık aboneliğin (1$) yarısı, abonelik. Yeni aboneliğin fiyatı yıllık 36 dolar olduğu için abonelik dönemine (yaklaşık 10 gün) bir yıl eklenir. Bu nedenle, Sambilin alınacak bir sonraki ödeme bugünden itibaren 1 yıl 10 gün sonra 36 TL olacaktır. Daha sonra, her yıl 36 $ücret tahsil ediyor.
Kullanabileceğiniz dağıtım modunu seçerken, değişiklik önerilerini incelemesini sağlar.
Abonelik değişikliklerini uygulama içinde tetikleyin
Uygulamanız, aşağıdaki adımları uygulayarak yükseltme veya düşürme seçeneği sunabilir: satın alma süreci başlatma. Ancak yeni veya eski sürüme geçerken mevcut abonelik, gelecek (yeni sürüme geçirilmiş veya (düşürülmüş) aboneliği ve kullanılacak değiştirme modu, şu örneği inceleyin:
Kotlin
val offerToken = productDetails .getSubscriptionOfferDetails(selectedOfferIndex) .getOfferToken() val billingParams = BillingFlowParams.newBuilder().setProductDetailsParamsList( listOf( BillingFlowParams.ProductDetailsParams.newBuilder() .setProductDetails(productDetails) .setOfferToken(offerToken) .build() ) ).setSubscriptionUpdateParams( BillingFlowParams.SubscriptionUpdateParams.newBuilder() .setOldPurchaseToken("old_purchase_token") .setSubscriptionReplacementMode( BillingFlowParams.ReplacementMode.CHARGE_FULL_PRICE ) .build() ).build() billingClient.launchBillingFlow( activity, billingParams ) // ...
Java
String offerToken = productDetails .getSubscriptionOfferDetails(selectedOfferIndex) .getOfferToken(); BillingFlowParams billingFlowParams = BillingFlowParams.newBuilder() .setProductDetailsParamsList( ImmuableList.of( ProductDetailsParams.newBuilder() // fetched via queryProductDetailsAsync .setProductDetails(productDetails) // offerToken can be found in // ProductDetails=>SubscriptionOfferDetails .setOfferToken(offerToken) .build())) .setSubscriptionUpdateParams( SubscriptionUpdateParams.newBuilder() // purchaseToken can be found in Purchase#getPurchaseToken .setOldPurchaseToken("old_purchase_token") .setSubscriptionReplacementMode(ReplacementMode.CHARGE_FULL_PRICE) .build()) .build(); BillingResult billingResult = billingClient.launchBillingFlow(activity, billingFlowParams); // ...
Değiştirme önerileri
Aşağıdaki tabloda, satın alma işlemi yaparken her senaryo için öneriyorum:
Senaryo | Önerilen değiştirme modu | Sonuç |
---|---|---|
Daha pahalı bir katmana geçme | CHARGE_PRORATED_PRICE |
Kullanıcı, aynı faturalandırmayı koruyarak anında erişim elde eder geçerlidir. |
Daha ucuz bir katmana geçme | DEFERRED |
Kullanıcı daha pahalı olan katman için zaten ödeme yaptığından bir sonraki fatura tarihine kadar erişebilirsiniz. |
Ücretsiz deneme süresindeyken deneme sürümünü kaybetmeden yükseltme | WITHOUT_PRORATION |
Kullanıcı ücretsiz deneme erişimine sahip olmaya devam eder ancak geri kalan süre boyunca kullanılabilir. |
Ücretsiz deneme süresindeyken üst sürüme geçme - ücretsiz deneme erişimini sona erdirme | CHARGE_PRORATED_PRICE |
Kullanıcı yeni katmana hemen erişim elde eder ancak artık erişemez. ücretsiz deneme olanağı sunuluyor. |
Abonelik değişikliği satın alma işlemlerini yönetme
Plan değişiklikleri, tüm şartlar ve amaçlara yönelik yeni satın alma işlemleridir ve faturalandırma akışı tamamlandıktan sonra bu şekilde işlenip onaylandıktan sonra bahsettik. Yeni satın alma işlemini uygun şekilde işlemenin yanı sıra, değiştirilmesi gereken satın alma işlemini iptal etmeniz gerekir.
Uygulama içi davranış, yeni satın alma işlemleriyle aynıdır. Uygulamanız
PurchasesUpdatedListener
hesabınızdaki yeni satın alma işleminin sonucu ve
queryPurchasesAsync
bölgesinde yeni satın alma işlemi mevcut.
Google Play Geliştirici API’silinkedPurchaseToken
Satın alma işlemi, mevcut bir içeriğin yerini aldığında abonelik kaynağı
bir. Aşağıdaki işlemler için linkedPurchaseToken
içinde sağlanan jetonu geçersiz kılmayı unutmayın.
Hizmetlerinize erişmek için eski jetonun kullanılmadığından emin olun. Görüntüleyin
Yeni sürüme geçişle ilgili bilgi için yükseltme, düşürme ve yeniden kaydolma işlemleri
satın alma işlemlerini yapabilirsiniz.
Yeni satın alma jetonunu aldığınızda
yeni bir satın alma jetonunu doğrulama Şunları kabul ettiğinizden emin olun:
Google Play'den BillingClient.acknowledgePurchase()
ile yapılan satın alma işlemleri
Faturalandırma Kitaplığı veya şu kaynaktan Purchases.subscriptions:acknowledge
:
Google Play Geliştirici API'si.
Ertelenen değişim işlemini ele alma
Ertelenen değişim modu, kullanıcının en az 24 saat sürer.
Yeni bir satın alma işlemi için SwapmentMode.DEFERRED işlevini kullandığınızda
queryPurchasesAsync()
, satın alma işleminden sonra yeni bir satın alma jetonu döndürür.
ertelenen değişime kadar eski ürünle ilişkili kalan akış
bir sonraki yenileme tarihinde gerçekleşir. Sonraki yenileme tarihinden sonra
geri döndü.
Geçmişte bu kullanıcı deneyimini, desteği sonlandırılan
ProrationMode.DEFERRED
ancak ProrationMode.DEFERRED
için Play ile ilgili destek sonlandırıldı
Faturalandırma Kitaplığı 6. Davranışın nerede gerçekleştiğini anlamak için aşağıdaki tabloya bakın
farklılık gösterir:
Süre |
ProrationMode.DEFERRED (desteği sonlandırılmış) |
DeğiştirmeModu.DEFERRED |
Satın alma akışı başarılı olduktan hemen sonra (uygulama) |
Eski plandan yararlanma hakkı, bir sonraki yenileme tarihine kadar devam eder. Uygulamanın doğru yararlanma hakkı sağladığından emin olmak için Yeni satın alma jetonu gösterilmediği için şu anda işlenemiyor. |
Yeni satın alma jetonu gösterildiğinden, değişimin ne zaman gerçekleşeceği dikkate alınarak bu noktada işlenmesi gerekir. |
Satın alma akışı başarılı olduktan hemen sonra (arka uç) |
SUBSCRIPTION_PURCHASED RTDN, satın alma akışından sonra gönderilmez. Arka uç yeni satın alma işleminden henüz haberdar edilmedi. |
Eski product_id içeren SUBSCRIPTION_PURCHASED RTDN, yeni satın alma jetonu için satın alma akışından hemen sonra gönderilir. Yeni satın alma jetonuyla purchases.subscriptionsv2.get yönteminin çağrılması, "startTime" öğesine sahip bir satın alma işlemini döndürür. iki satır öğesiyle satın alma zamanını belirtir:
Eski satın alma jetonu için SUBSCRIPTION_EXPIRED gönderildi. purchases.subscriptionsv2.get yöntemi eski satın alma jetonuyla çağrıldığında, jetonun süresi dolmuş olarak görünür (eski planın yararlanma hakkı, kalan süre için yeni satın alma işlemine aktarılır). |
Değişim işleminde - satın alma akışından sonraki ilk yenileme (uygulama) |
Yeni satın alma jetonu şu anda kullanıma sunulduğu için işlenmesi gerekir. |
Yeni satın alma işlemi, satın alma akışı başarılı olduğunda zaten işlenmiş olmalıdır. Bu nedenle, uygulamanın, doğru yararlanma hakkının verildiğinden emin olmak dışında özel bir işlem yapmaması gerekir. |
Değişim işleminde - satın alma sürecinden sonraki ilk yenileme (arka uç) |
Yeni satın alma işlemi artık ilk SUBSCRIPTION_RENEWED RTDN gönderildiğinde işleme alınabilir ve onaylanabilir. Abonelik kaynağındaki |
Yeni satın alma jetonu için SUBSCRIPTION_PURCHASED RTDN gönderildiğinde ve "startTime" olarak kaydedildiğinde yeni satın alma işlenmiş ve onaylanmıştır. Değiştir Yeni satın alma jetonuyla purchases.subscriptionsv2.get yöntemi çağrıldığında, iki satır öğesi içeren bir satın alma işlemi döndürülür:
|
Değiştirilmiş mod.DEFERRED, artık ProrationMode.DEFERRED (yararlanma hakkı ile ilgili olarak aynı davranışı sunduğu için) ancak satın alma sürecini müşteriyle daha tutarlı bir şekilde yönetmenizi sağlayacak davranışlarını görebilirsiniz.
Müşteri yönetimi
Gerçek zamanlı geliştirici bildirimlerini kullanarak, karar verdiğinden emin olun. Kullanıcı aboneliğinden önce iptal ettiğinde süresi dolduysa, kendilerine push bildirimleri veya uygulama içi mesajlar göndererek yeniden abone olmalarını sağlayabilirsiniz.
Aboneliklerini iptal eden kullanıcıları geri kazanmayı deneyebilirsiniz veya Play Store üzerinden yapabilirsiniz. Aşağıdaki tabloda çeşitli abonelik senaryolarıyla ilgili geri kazanma işlemleri ve uygulama gereksinimleri.
Abonelik süresi dolmadan önce | Abonelik sona erdikten sonra | |||
Uygulama içi | Play Store'da | Uygulama içi | Play Store'da | |
Geri kazanma özelliği | Uygulama içi abonelik | Geri yükle | Uygulama içi abonelik | Yeniden abone olun |
Kullanıcı ödeme akışını tamamlar | Evet | Hayır | Evet | Evet |
Kullanıcı aboneliği aynı SKU ile ilişkili kalmaya devam ediyor | Kullanıcı aynı veya farklı bir SKU'ya kaydolabilir | Evet | Kullanıcı aynı veya farklı bir SKU'ya kaydolabilir | Evet |
Yeni satın alma jetonu oluşturur | Evet | Hayır | Evet | Evet |
Varsayılan olarak etkindir | Hayır | Evet, tüm geliştiriciler için destek gerekiyor | Hayır |
Faturalandırma Kitaplığı 2.0+ bulunmayan uygulamalar: Hayır Faturalandırma Kitaplığı 2.0+ sürümüne sahip uygulamalar: Evet. Geliştiriciler, Play Console'da bu özelliği devre dışı bırakabilir. |
Kullanıcıdan ödeme ne zaman alınır? |
Aynı SKU'yu kullanıyorsanız: Geçerli fatura döneminin sonu. Farklı SKU kullanıyorsanız: bölüştürme moduna bağlıdır. |
Geçerli fatura döneminin sonu | Hemen | Hemen |
Uygulama gerekiyor | Sağlama uygulamanızda yeniden kaydolma kullanıcı arayüzü |
Abonelik durumundaki değişikliği algılama Play Store ile derin bağlantı |
Uygulamanızda yeniden kaydolma kullanıcı arayüzü sağlama | Uygulama dışı satın alma işlemlerini yönetme |
Abonelik süresi dolmadan önce - uygulama içi
İptal edilmiş ancak henüz süresi dolmamış aboneliklerde şunları yapabilirsiniz: abonelerin aboneliklerini geri yüklemelerine olanak tanımak için yeni aboneler için geçerlidir. Kullanıcı arayüzünüzü kullanıcının mevcut bir aboneliğinin olduğunu gösterir. Örneğin, eğitime kullanıcının geçerli son kullanma tarihini ve yinelenen fiyatı Yeniden etkinleştir düğmesi.
Çoğu zaman, kullanıcıya onunla aynı fiyatı ve SKU'yu sunmak istersiniz. , şu şekilde zaten abone olmuş:
- Aynı SKU ile yeni bir abonelik satın alma işlemi başlatın.
- Yeni abonelik, eski aboneliğin yerini alır ve aynı son kullanma tarihinde yenilenir tarihi. Eski abonelik hemen süresi doldu olarak işaretlenir.
- Örneğin, Aşil'in Örnek Müzik Uygulaması'na bir aboneliği vardır ve aboneliğin süresi 1 Ağustos'ta sona erecek. 10 Temmuz'da şu kanala yeniden abone oluyor: Her ay aynı fiyattan sunulan bir aylık abonelik. Yeni abonelik kalan krediyle eşit olarak dağıtılır, hemen etkinleştirilir ve 1 Ağustos'ta yenilenir.
Farklı bir fiyat sunmak istiyorsanız (örneğin, yeni bir ücretsiz deneme veya geri kazanma indirimi. Bunun yerine kullanıcıya farklı bir SKU sunabilirsiniz:
- Farklı bir SKU ile yükseltme veya düşürme işlemi başlatın
WITHOUT_PRORATION
değişim modunu kullanın. - Yeni abonelik, eski aboneliğin yerini alır ve aynı son kullanma tarihinde yenilenir
tarihi. Kullanıcıdan yeni SKU'nun fiyatı alınır. Bu ücret şunları içerir:
ilk son kullanma tarihinde geçerli olan tanıtım fiyatlarına tabidir. Eski abonelik
kodu karartılmış bir hesap kimliği kullanılarak oluşturulmuşsa aynı kimlik iletilmelidir.
Sürüm yükseltme ve düşürme işlemleri için
BillingFlowParams
. - Örneğin, Aşil'in Örnek Müzik Uygulaması'na bir aboneliği vardır ve aboneliğin süresi 1 Ağustos'ta sona erecek. 10 Temmuz'da şu kanala yeniden abone oluyor: Tanıtım fiyatlı yıllık abonelik. Yeni abonelik hemen etkinleştirilir ve kullanıcıdan şu tarihte tanıtım fiyatı alınır: 1 Ağustos.
- Geri kazanma SKU'nuza ücretsiz deneme veya tanıtım fiyatı eklemeye karar verirseniz Kullanıcının uygun olduğundan emin olmak için Google Play Console'daki Uygulama başına bir ücretsiz denemeye izin ver kutusunu işaretleyin. Kullanıcı, uygulama başına bir ücretsiz deneme süresiyle kısıtlanır.
Satın alma jetonunu aldığınızda
satın alma işlemini sizin gibi
yeni bir abonelik için gerek vardır. Ayrıca, Google Play Geliştirici API'si
abonelik kaynağında bir linkedPurchaseToken
döndürür. Şunları yaptığınızdan emin olun:
sağlanan jetonu geçersiz kıl
linkedPurchaseToken
kontrol etmek için eski jetonun
hizmetlerinize erişebilirler.
Abonelik süresi dolmadan önce: Play Store'da
Abonelik iptal edilmiş ancak hâlâ etkin durumdayken kullanıcılar abonelik simgesini tıklayarak Google Play abonelik merkezinde Yeniden abone olma (eski adıyla Geri yükleme). Abonelik aynı kalır ve satın alma jetonu.
Abonelikleri geri yükleme hakkında daha fazla bilgi edinmek için Geri yükleme işlemleri'ne bakın.
Abonelik süresi sona erdikten sonra - uygulama içi
Süresi dolan abonelerin uygulamanızda yeniden abone olmalarına izin vermek için yeni aboneler için geçerlidir. Not: takip etmek için:
- Kullanıcılara indirim sunmak isterseniz aboneliğiniz için özel fiyatlandırmadır. Buna geri kazanma SKU'su da denir. Teklifi uygulamanızda sağlayabilir veya kullanıcıyı bilgilendirebilirsiniz. (ör. e-postada) uygulama dışında da teklifte bulunabiliriz.
- Geri kazanma aboneliği başlatmak için şu hesabınızda satın alma akışını başlatın: Google Play Faturalandırma Kitaplığı'nı kullanan Android uygulaması. Bu aynı bu işlemi yalnızca yeni bir abonelikteki gibidir, ancak SKU'yu tüm öğeleri kullanabilirsiniz.
- Geri kazanma kazancınıza ücretsiz deneme veya tanıtım fiyatı eklemeye karar verirseniz SKU'yu kullanıyorsanız Google Play Console'daki Uygulama başına bir ücretsiz denemeye izin ver kutusunu işaretleyin. Kullanıcı, uygulama başına bir ücretsiz deneme süresiyle kısıtlanır.
- Kullanıcı aynı SKU'ya yeniden abone olursa artık uygun olmaz ücretsiz denemeler veya tanıtım fiyatından yararlanın. Kullanıcı arayüzünüzün bunu yansıttığından emin olun.
Satın alma jetonunu aldığınızda
satın alma işlemini sizin gibi
yeni bir abonelik için gerek vardır. linkedPurchaseToken
almayacaksınız
inceleyebilirsiniz.
Abonelik süresi sona erdikten sonra - Play Store'da
Politika etkinleştirilirse kullanıcılar, sonrasında aynı SKU'ya bir yıla kadar yeniden abone olabilir. Google Play aboneliklerinde Yeniden abone ol'u tıklayarak süre sonu yardım etmek istiyorum. Bu işlemle yeni bir abonelik ve satın alma jetonu oluşturulur.
Yeniden abone olmak, uygulama dışı bir satın alma işlemi olarak kabul edilir. Bu nedenle, en iyi uygulamaları izleyerek uygulamanızın dışından yapılan satın alma işlemlerini işleme.
Aboneliğinizi tanıtma
Seçilen kullanıcılara daha uzun ücretsiz deneme süresi sunmak için promosyon kodları oluşturabilirsiniz mevcut bir aboneliğe Daha fazla bilgi edinmek için bkz. Promosyon kodları.
Google Play, ücretsiz denemelerde kullanıcının geçerli bir ödeme yöntemine sahip olduğunu doğrular kontrol edin. Bazı kullanıcılar bu doğrulamayı görebilir ödeme yöntemi olarak bloke etme veya ödeme alma. Bu provizyon veya ödeme ve daha sonra geri alınır ya da geri ödenir.
Deneme süresi sona erdikten sonra, kullanıcının ödeme yönteminden şunun için ödeme alınır: tam abonelik tutarını ödemeniz gerekebilir.
Bir kullanıcı ücretsiz deneme süresi boyunca herhangi bir zamanda aboneliğini iptal ederse, Abonelik, deneme süresinin sonuna kadar etkin durumda kalır ve henüz ücretsiz deneme süresi sona erdiğinde ücretlendirilir.
İptal etme, geri ödeme yapma veya iptal etme
URL parametrelerinin Google tarafından nasıl ele alınmasını istediğinizi belirtmek için Google Play Geliştirici API'si - iptal, refund, veya iptal et abonelik. Bu işlev, Google Play Console.
- İptal: Kullanıcılar Google Play'de abonelikleri iptal edebilirler. Ayrıca transkriptinizi Kullanıcılara uygulamanızda veya web sitenizde iptal etme seçeneği sunmak Sizin uygulamasının bu iptalleri şurada açıklandığı şekilde işlemesi gerekir: İptaller.
- Geri ödeme: Geri ödeme yaptığınızda kullanıcı aboneliği kullanmaya devam edebilir. Geri ödemeler, örneğin, teknik bir hata oluştuğunda kullanılabilir. kullanıcının ürününüze erişmesini engelledi ancak hata çözüme ulaştırıldı. En son ödemeden daha fazla tutarda geri ödeme yapmanız veya kısmi geri ödeme yapmak istiyorsanız Google Play Console'u kullanmanız gerekir.
- İptal et: İptal ettiğinizde kullanıcı abonelik. Bu, örneğin teknik bir sorunla ilgili, kullanıcının ürününüze erişmesini engelleyen bir hata ve kullanıcının ürünü kullanmaya devam etmek istemiyor. Uygulamanız bunları işlemeli aşağıda açıklandığı şekilde iptaller İptaller.
Aşağıdaki tabloda iptal, geri ödeme ve iptal eder.
Yenilemeyi durdurur | Para geri ödeme | Erişimi iptal et | |
İptal | Evet | Hayır | Hayır |
Geri ödeme | Hayır | Evet | Hayır |
İptal et | Evet | Evet | Evet |
Abonelerin faturalandırmayı erteleme
Otomatik yenilenen abonelerin bir sonraki fatura tarihinden önce şu seçeneği kullanabilirsiniz:
Purchases.subscriptions:defer
Google Play Geliştirici API'sinden alın. Erteleme döneminde kullanıcı
tam erişimle içeriğinize abone olur ancak sizden ödeme alınmaz. İlgili içeriği oluşturmak için kullanılan
Abonelik yenileme tarihi, yeni tarihi yansıtacak şekilde güncellenir.
Ön ödemeli planlarda son kullanma tarihini ertelemek için erteleme API'sini kullanabilirsiniz gerekir.
Ertelenen faturalandırma ile şunları yapabilirsiniz:
- Kullanıcılara özel bir teklif olarak ücretsiz erişim sunun; örneğin, film satın alma konusunda daha fazla bilgi edinin.
- İyi niyetinizi göstermek amacıyla müşterilere ücretsiz erişim vermek.
Faturalandırma bir gün kadar kısa bir süre ve bir yıl kadar ertelenebilir sayısını artırır. Faturalandırmayı daha da ertelemek için API'yi yeniden çağırabilirsiniz yeni fatura tarihi gelmeden önce gönderin.
Örneğin, Darcy'nin her ay çevrimiçi içerik için aylık bir aboneliği vardır. Fishing Quarterly uygulaması. Normalde her ayın ilk gününde 1,25 İngiliz sterlini fatura ay. Mart ayında uygulama yayıncısı için online bir ankete katıldı. Yayıncı bir sonraki ödemeyi erteleyerek Merve'yi altı hafta ücretsiz olarak ödüllendirir 15 Mayıs'a kadar, yani daha önce planlanan fatura tarihinden altı hafta sonra anlamına gelir. Darcy, Nisan veya Mayıs başı için ücretlendirilmez. içeriğe erişimi vardır. 15 Mayıs'ta kendisinden normal şartlarda 1, 25 İngiliz sterlini tutarında ödeme alınır aylık abonelik ücreti. Bir sonraki yenileme tarihi 15 Haziran.
Ertelerken, kullanıcıyı e-postayla veya uygulama içinden bilgilendirmek isteyebilirsiniz göndererek fatura tarihinin değiştiğini bildirin.
Reddedilen ödeme işlemlerini ele alma
Abonelik yenilemeyle ilgili ödeme sorunları olursa Google İptal etmeden önce belirli aralıklarla aboneliği yenilemeyi denemelidir. Kurtarma süresi, ek süre tanınabilir ve bu süre içinde hesap askıya alınabilir. geçerlidir. Google bu süre boyunca kullanıcıya e-posta ve bildirimler gönderir. ödeme yöntemini güncellemelerini isteyebilir.
Ödeme reddedildiğinde abonelik için ek süre verilir. süre yapılandırıldı. Ek süre boyunca kullanıcının hâlâ erişime sahip olduğundan emin olmanız gerekir. abonelikten yararlanma hakkına sahip olursunuz.
Ek süre sona erdiğinde abonelik, yeni bir hesap bekletme süresi. Etkinlik sırasında kullanıcının abonelikten yararlanma hakları.
Otomatik yenilenen temel planların ek sürelerinin uzunluğunu belirleyebilir ve Google Play Console'da askıya alınmış hesaplar. Şundan daha kısa uzunluklar belirtmek: varsayılan değerler, ödemeden kurtarılan abonelik sayısını azaltabilir reddedilir.
Ödemenin reddedilmesi sırasında abonelikten çıkma olasılığını en üst düzeye çıkarmak için: Kullanıcınızı ödeme sorunu konusunda bilgilendirip sorunu düzeltmesini isteyebilirsiniz.
Bu işlemi, ek süre içinde açıklandığı şekilde kendiniz de yapabilirsiniz. süre ve hesabı askıya alma veya Google'ın kullanıcılara göstermek için kullandığı uygulama içi mesajlaşma API'sini kullanıcılara bir mesaj gönderin.
Uygulama içi mesajlaşma
Uygulama içi mesajlaşmayı
InAppMessageCategoryId.TRANSACTIONAL
Google Play, kullanıcılara ek süre boyunca mesaj gönderip hesaplarını bir kez askıya alır
ödemelerini düzeltme fırsatı sunuyor.
Kullanıcı uygulamayı her açtığı zaman bu API'nin, mesajının gösterilip gösterilmeyeceğini belirler.
Kullanıcı, aboneliğini başarıyla kurtarırsa şu yanıt kodunu alırsınız:
SUBSCRIPTION_STATUS_UPDATED
bir satın alma jetonuyla birlikte ekleyebilirsiniz. Ardından,
Google Play Developer API'ye gidip uygulamanızda abonelik durumunu yenileyin.
Uygulama içi mesajlaşmayı entegre edin
Kullanıcıya uygulama içi mesajlaşmayı göstermek için şunu kullanın:
BillingClient.showInAppMessages()
.
Uygulama içi mesajlaşma akışını tetiklemeye ilişkin bir örneği burada görebilirsiniz:
Kotlin
val inAppMessageParams = InAppMessageParams.newBuilder() .addInAppMessageCategoryToShow(InAppMessageCategoryId.TRANSACTIONAL) .build() billingClient.showInAppMessages(activity, inAppMessageParams, object : InAppMessageResponseListener() { override fun onInAppMessageResponse(inAppMessageResult: InAppMessageResult) { if (inAppMessageResult.responseCode == InAppMessageResponseCode.NO_ACTION_NEEDED) { // The flow has finished and there is no action needed from developers. } else if (inAppMessageResult.responseCode == InAppMessageResponseCode.SUBSCRIPTION_STATUS_UPDATED) { // The subscription status changed. For example, a subscription // has been recovered from a suspend state. Developers should // expect the purchase token to be returned with this response // code and use the purchase token with the Google Play // Developer API. } } })
Java
InAppMessageParams inAppMessageParams = InAppMessageParams.newBuilder() .addInAppMessageCategoryToShow(InAppMessageCategoryId.TRANSACTIONAL) .build(); billingClient.showInAppMessages(activity, inAppMessageParams, new InAppMessageResponseListener() { @Override public void onInAppMessageResponse(InAppMessageResult inAppMessageResult) { if (inAppMessageResult.responseCode == InAppMessageResponseCode.NO_ACTION_NEEDED) { // The flow has finished and there is no action needed from developers. } else if (inAppMessageResult.responseCode == InAppMessageResponseCode.SUBSCRIPTION_STATUS_UPDATED) { // The subscription status changed. For example, a subscription // has been recovered from a suspend state. Developers should // expect the purchase token to be returned with this response // code and use the purchase token with the Google Play // Developer API. } } });
Bekleyen abonelik işlemlerini yönetme
Bekleyen işlemler; ilk satın alma, para ekleme, yükseltme veya
eski sürüme geçemez. Abonelik satın alma işlemi
Geçişten önce SUBSCRIPTION_STATE_PENDING
durumu
SUBSCRIPTION_STATE_ACTIVE
. İşlemin süresi dolarsa veya
SUBSCRIPTION_STATE_PENDING_PURCHASE_EXPIRED
adresine gider. Şunu yapmalısınız:
ve kullanıcının yararlanma hakkını yalnızca,
tamamlandı.
Bekleyen işlemleri olan ilk satın alma işlemi için abonelik durumu değişikliği:
basittir. Aşağıdaki durumlarda uygulamanız PENDING
durumlu bir Purchase
alır:
Kullanıcı beklemedeki bir işlem başlatır. İşlem tamamlandığında
Uygulama, Purchase
değerini tekrar alır ve durum PURCHASED
olarak güncellenir. CEVAP
SUBSCRIPTION_PURCHASED
türünde SubscriptionNotification
mesaj gönderildi
RTDN istemcinize gönderebilirsiniz. Satın alma işlemini doğrulamak için normal süreci takip edin,
Kullanıcı içeriğe erişebilir ve satın alma işlemini onaylayabilir. İşlem
süresi doluyor veya iptal edildi, türünde bir SubscriptionNotification
mesaj
SUBSCRIPTION_PENDING_PURCHASE_CANCELED
, RTDN istemcinize gönderildi. Böyle bir durumda
söz konusu durumlarda, kullanıcı içeriğe hiçbir zaman erişememelidir.
Bekleyen işlemlerle para ekleme, yükseltme veya düşürme işlemleri durum değişiklikleri içeriyor
hem eski hem de yeni abonelikler için geçerlidir. Kullanıcı, beklemede olan bir
para ekleme, yükseltme veya düşürme işlemi için Purchase
alır.
PendingPurchaseUpdate
nesnesini içeren eski aboneliği iptal et. Şu anda
Kullanıcı hâlâ eski aboneliğe sahip ve yeni aboneliği kazanmadıysa
aboneliği satın aldınız. getProducts()
ve getPurchaseToken()
adlı kişiye şu saatte sesli arama yapılıyor:
PendingPurchaseUpdate
nesnesi, şunun ürün kimliklerini ve satın alma jetonunu döndürür:
yeni abonelik var. İşlem tamamlandığında uygulamanız
Yeni abonelik için üst düzey satın alma jetonu ayarlanmış Purchase
ve
durum PURCHASED
olarak ayarlandı. Türü olarak bir SubscriptionNotification
mesajı
SUBSCRIPTION_PURCHASED
, RTDN istemcinize gönderildi. Ancak şu anda
eski satın alma jetonunu yeni satın alma jetonuyla değiştirmeli ve
Kullanıcının içeriğe erişimidir. İşlemin süresi dolarsa veya iptal edilirse
Türü şu olan SubscriptionNotification
mesaj:
SUBSCRIPTION_PENDING_PURCHASE_CANCELED
, RTDN istemcinize gönderildi. Böyle bir durumda
Bu durumda, kullanıcı eski aboneliğin içeriğine hâlâ erişebiliyor olmalıdır.