Abonelik satın alma işlemleri, süreleri boyunca birkaç farklı durumda gerçekleşebilir. otomatik yenileme davranışı, ödeme ve ödeme gibi birçok faktöre bağlı olarak durumları ve geliştirici yönetimi işlemlerini reddediyor.
Otomatik yenilenen aboneliklerin yaşam döngüsünü yönetme
Bir kullanıcının abonelik durumu değiştiğinde arka uç sunucunuz bir
SubscriptionNotification
mesaj
Arka ucunuzdaki durumu güncellemek için
purchases.subscriptionsv2.get
Bildirimde satın alma jetonu bulunan API. Bu uç nokta,
satın alma jetonu verilen en son abonelik durumudur ve
veri kaynağı olarak kullanılır.
Satın alma jetonu, abonelik kaydından itibaren 60 gün sonrasına kadar geçerlidir. sona erecektir. Bu tarihten sonra satın alma jetonu şu amaçlarla kullanılamayacaktır: Google Play Geliştirici API'sine çağrıda bulunun.
Otomatik yenilenen yeni abonelik satın alma işlemleri
Kullanıcı bir abonelik satın aldığında, SubscriptionNotification
RTDN istemcinize SUBSCRIPTION_PURCHASED
türü gönderildi. Android'den
veya üzerinden yeni bir uygulama içi satın alma işlemi kaydederseniz
PurchasesUpdatedListener
veya satın alma işlemlerini manuel olarak getirmek
onResume()
yöntemini kullanıyorsanız yeni satın alma işlemini güvenli
arka uçta olması gerekir. Bunu yapmak için şu adımları uygulayın:
- Sorgu
purchases.subscriptionsv2.get
abonelik almak için uç nokta kaynak ifadesini görürsünüz. -
subscriptionState
alanıSUBSCRIPTION_STATE_ACTIVE
olarak belirlenmiştir. - Satın alma işlemini doğrulayın.
- Kullanıcıya içeriğe erişim izni verin.
satın alma işlemi,
ExternalAccountIdentifiers
satın alma sırasında tanımlayıcılar ayarlanmışsa abonelik kaynağından gelen nesne kullanma süresisetObfuscatedAccountId
vesetObfuscatedProfileId
.
Play Faturalandırma Kitaplığı'nda abonelikleri onaylama yöntemi de vardır.
acknowledgePurchase()
onay durumunu kontrol etmek için bir yöntem olan
isAcknowledged()
.
Bununla birlikte, satın alma işlemlerini aşağıdakiler için arka ucunuzda gerçekleştirmenizi öneririz:
daha iyi güvenlik
Yeni satın alma işlemleri için abonelik kaynağı aşağıdakine benzer: örnek:
{
"kind": "androidpublisher#subscriptionPurchaseV2",
"startTime": "2022-04-22T18:39:58.270Z",
"regionCode": "US",
"subscriptionState": "SUBSCRIPTION_STATE_ACTIVE",
"latestOrderId": "GPA.3333-4137-0319-36762",
"acknowledgementState": "ACKNOWLEDGEMENT_STATE_PENDING", // need to acknowledge new purchases
"lineItems": [
{
"productId": "sub_variant_plan01",
"expiryTime": next_renewal_date,
"autoRenewingPlan": {
"autoRenewEnabled": true
}
}
],
}
Abonelik yenilemeleri
Taksitsiz, otomatik yenilenen aboneliklerde SUBSCRIPTION_RENEWED
bildirim, abonelik yenilendiğinde gönderilir. Taksitli
abonelik satın aldığınızda bir SUBSCRIPTION_RENEWED
bildirimi her
abonelik, fatura tarihinde alınır. Kullanıcının hâlâ
almaya hak kazanacak, daha sonra da abonelik durumunu yeni
abonelikte expiryTime
sağlandı
Google Play'den döndürülen kaynak
Geliştirici API'sı. Abonelik kaynağı aşağıdaki örneğe benzer:
{
"kind": "androidpublisher#subscriptionPurchaseV2",
"startTime": "2022-04-22T18:39:58.270Z",
"regionCode": "US",
"subscriptionState": "SUBSCRIPTION_STATE_ACTIVE",
"latestOrderId": "GPA.3333-4137-0319-36762",
"acknowledgementState": "ACKNOWLEDGEMENT_STATE_ACKNOWLEDGED",
"lineItems": [
{
"productId": "sub_variant_plan01",
"expiryTime": next_renewal_date,
"autoRenewingPlan": {
"autoRenewEnabled": true
}
}
]
}
Abonelik yenilemelerini onaylamanız gerekmez.
Ek süre
Abonelik yenilemeyle ilgili ödeme sorunları olursa Google, başlar ve abonelik yenileme işlemini denemeden önce belirli bir süre boyunca aboneliğin süresi dolar. Kurtarma süresi ek süreden oluşabilir ardından hesabı askıya alma süresi gelir. Ek süre boyunca kullanıcı abonelikten yararlanma hakkına erişmeye devam edebilir.
İlgili içeriği oluşturmak için kullanılan
queryPurchasesAsync()
yöntemi, ek süre içindeki satın alma işlemlerini iade etmeye devam eder. Uygulamanız
bir kullanıcının hak kazanıp kazanmadığını kontrol etmek için yalnızca queryPurchasesAsync
aboneliğiniz varsa uygulamanız ek süreleri otomatik olarak işler.
bu abonelikler Play Faturalandırma Kitaplığı'nda etkin olarak gösterilir.
Abonelik durumunu arka ucunuzla senkronize ederek daha bilinçli
istemeyerek yapılan ödemeleri azaltmaya çalışırken size daha fazla bilgi
müşteri kaybetmez. Şunu dinle:
SubscriptionNotification
ileti
Kullanıcı bir anahtar kelime girişi yaptığında bildirim almak için SUBSCRIPTION_IN_GRACE_PERIOD
türünde
ek süre verin. Kullanıcı ek süredayken abonelik
kaynak
autoRenewEnabled = true
değerini içerir. Google Play,
Yararlanma hakkı nedeniyle ek süre sona erene kadar expiryTime
değeri
kullanıcı iptal edene veya abonelik için verilen ek süre sona erene kadar sürmelidir
uzunluk olmalıdır. Bu dönemde subscriptionState
alanının değeri:
SUBSCRIPTION_STATE_IN_GRACE_PERIOD
. Abonelik kaynağı şuna benzer:
aşağıdaki örneği inceleyin:
{
"kind": "androidpublisher#subscriptionPurchaseV2",
...
"subscriptionState": "SUBSCRIPTION_STATE_IN_GRACE_PERIOD",
...
"lineItems": [
{
"productId": "sub_variant_plan01",
"expiryTime": timestamp_in_future,
"autoRenewingPlan": {
"autoRenewEnabled": true
}
}
],
}
Play, ek süre içinde olan kullanıcılara ödemelerinin reddedildiğini bildirir ve Play Store'daki ödeme yöntemi sorunlarını düzeltmelerini istiyor. Bir bir ek süre verirse kullanıcıyı, güvenlik açığını düzeltme ödeme yöntemini kullanmasını isteyin. Çevik yaklaşımın Uygulama İçi Mesajlaşma API. Bu API'yi çağırırsanız Kullanıcı uygulamanızı açtığında geçici bir süre içinde bir Play mesajı kullanıcıya ödemesinin reddedildiğini bildiren atıştırmalık çubuğu. Bu mesaj ayrıca kullanıcının Google'daki ödeme yöntemini düzeltmesi için bir derin bağlantı da içerir Oyna.
Kullanıcı ödeme yöntemini düzelttikten hemen sonra abonelik, yenileme işlemini gerçekleştirebilir ve yenileme işlemini şurada açıklandığı şekilde gerçekleştirebilirsiniz: Yenilemeler.
Kullanıcı, ek süre içinde ödeme yöntemini düzeltmezse Abonelik hesabı askıya alır ve yararlanma hakkını kaybeder.
Ek süre erişimi ve kurtarma
Şekil 2'de ek süreye giren bir aboneliğin zaman çizelgesi gösterilmektedir. Ardından kullanıcı, ödeme yöntemini düzelttiğinde düzeltilir. Ek sürenin ardından kullanıcının abonelik avantajlarını kaybetmesi ve hesabı askıya alma işlemi uygulanması gerekir.
![](https://developer.android.com/static/images/google/play/billing/lifecycle/grace-period.png?authuser=6&hl=tr)
Aşağıdaki noktaları göz önünde bulundurmak önemlidir:
- Kullanıcı, ek süre boyunca abonelik avantajlarına erişmeye devam etmelidir.
- Bir abonelik, ek süre içinde kurtarılırsa yenileme tarihi sıfırlanmaz.
- Ek süreyi, örneğin, 7 günden 14 güne çıkarırsanız, ek süre verilen kullanıcılar abonelik avantajlarına daha uzun süre erişebilir.
- Ek süreyi kısaltırsanız eski ek süreye yeterince açık olan kullanıcılar aboneliğin avantajlarından yararlanabilmeniz için yeni ek süreyi aşmanız gerekecektir. derhal iptal edilir. Örneğin, 14 ila 7 gün arasında, eski ek sürenin 8-14. günlerindeki kullanıcılar abonelik avantajları hemen iptal edilir.
- Abonelik etkin durumda kalır ve ek süre almazsınız. sessiz ek süre sona erene kadar süre RTDN
Sessiz ek yayınlanma süresi
0 günlük ek süre belirleyebilirsiniz ancak Play'in bu süreyi tamamlamak için en az 1 gün beklemesi gerekir
Ödemenin yeniden denenmesi için yeterli süre tanıyın. Bu sessiz ek süre,
ödeme işlemi için güvenli netlik. Bu 24 saatlik süre içinde
abonelik
ACTIVE
durumu.
Abonelik durumu değişikliklerine uyum sağlamanın en iyi yolu,
gerçek zamanlı geliştirici bildirimlerini (RTDN) dinleyip bunlara tepki verebilirsiniz. Şunu çağırın:
purchases.subscriptionsv2.get()
daha doğru sonuçlar elde etmek için son kullanma zamanı yerine RTDN
abonelik durumu.
24 saatlik sessiz ek sürenin ardından abonelik durumuna bağlı olarak aşağıdaki bildirimlerden birini alırsınız:
SUBSCRIPTION_ON_HOLD
(etkinse)SUBSCRIPTION_CANCELED
(iptal edildiyse)SUBSCRIPTION_EXPIRED
(süresi dolduysa)SUBSCRIPTION_RENEWED
(başarıyla yenilendiyse)
Ayrıca, subscriptionV2.get()
yöntemini çağırabilirsiniz.
Aboneliğin son durumunu öğrenmek için 24 saatlik sessiz ek süre.
Hesabı askıya alma
Abonelik yenilemesiyle ilgili ödeme sorunu olursa herhangi bir ek süre dolduktan sonra süre sona erdiğinde, hesap askıya alma dönemi başlar. Bir abonelik hesabı beklemeye alınırsa, aboneliğe erişimi engellemeniz gerekir hak.
Hesabı askıya alma sırasında tüm iptalleri işlemeye devam etmeniz gerekir. yenilemeler veya aboneliklerinizi yeniden satın almanız, Çünkü kullanıcı abonelik sırasında bu değişiklikleri yapabilir. beklemede.
RTDN'ler, kullanıcı hesabı askıya alma süresine girdiğinde sizi bilgilendirir. Böylece, Abonelik erişimlerinin neden askıya alındığını mümkün olan en kısa sürede bildirmeyi unutmayın. Bunu yapmanın en kolay yolu Uygulama İçi Mesajlaşma API. Bu API şu durumlarda çağrılır: Kullanıcı uygulamayı açtığında, geçici bir atıştırmalık çubuğunda kullanıcıya bir mesaj gösterilir. kendilerine ödemesinin reddedildiğini bildirir. Bu mesajda ayrıca şunlar da bulunur: kullanıcının Google Play'de ödeme yöntemini düzeltmesi için bir derin bağlantı.
Kullanıcılarınız uygulamanızın dışından abonelik içeriğine erişebiliyorsa farklı platformlara erişimi kaybettiklerini fark edebilirler. Birlikte çalıştığınız kullanıcıya push bildirimi veya e-posta göndererek Ödeme reddedildiği için abonelik artık etkin değil.
Abonelik,
queryPurchasesAsync()
(ör. uygulamanız, hesabınızı askıya alma işlemi sırasında bu yöntemden yararlanıyorsa)
mevcut satın alma işlemleri için varsayılan olarak hesabı askıya alma özelliğini desteklemeniz gerekir.
Gerçek zamanlı geliştirici ile
bildirim aldığınızda
SubscriptionNotification
mesaj
bir abonelik hesabı askıya aldığında SUBSCRIPTION_ON_HOLD
türünde. Telefonla arama
"the"
purchases.subscriptionsv2.get
yöntemini kullanarak yeni aboneliği almak için güvenli arka uç sunucunuzdan
ekleyebilirsiniz. Hesap sırasında aboneliğin expiryTime
alanını bekleyin
kaynak
geçmiş bir zaman damgasına, subscriptionState
alanı
SUBSCRIPTION_STATE_ON_HOLD
:
{
"kind": "androidpublisher#subscriptionPurchaseV2",
...
"subscriptionState": "SUBSCRIPTION_STATE_ON_HOLD",
...
"lineItems": [
{
"productId": "sub_variant_plan01",
"expiryTime": timestamp_in_past,
...
}
],
}
Tekrar erişim vermek için kullanıcıların ödeme yöntemlerini düzeltmesi gerekir. Play, kullanıcıları reddedilen ödemeye ilişkin bir sorun olduğunu unutmayın. Ayrıca, hesap genelinde ödeme yöntemi.
Kullanıcı ödeme yöntemini düzelttikten sonra abonelik etkin durumuna geri döner.
sonra da abone olduğunuz içeriğe yeniden erişim sağlamanız gerekir. Böyle durumlarda
satın alma jetonu, hesabı askıya alma işlemi başlatılmadan öncekiyle aynıdır çünkü
kurtarılıyorsa ve şu türde bir RTDN alırsınız:
SUBSCRIPTION_RECOVERED
Taksitli aboneliklerde, ödemelerin reddedilmesi ve geri kazanılması tek tek ödeme girişimleri.
Kurtarma işleminden sonra Play Faturalandırma Kitaplığı, aboneliği
queryPurchasesAsync()
yöntemi. Bu yöntemi, bir testin
bir kullanıcının abonelik hakkı varsa uygulamanız bunu otomatik olarak
hesabı askıya alma durumundan kurtarılan abonelik.
Şu sesi dinleyin:
SubscriptionNotification
mesaj
bir abonelik olduğunda bilgilendirilmek için SUBSCRIPTION_RECOVERED
türünde
kullanıcı kurtarılır ve kullanıcı yeniden erişim kazanır. Abonelik sorguları
Bu bildirimi aldıktan sonra expiryTime
alanı bir zaman damgasına ayarlanır
gelecekte ve subscriptionState
alanı
SUBSCRIPTION_STATE_ACTIVE
tekrar:
{
"kind": "androidpublisher#subscriptionPurchaseV2",
...
"subscriptionState": "SUBSCRIPTION_STATE_ACTIVE",
...
"lineItems": [
{
"productId": "sub_variant_plan01",
"expiryTime": next_renewal_date,
...
}
],
}
Kullanıcı, hesap askıya alma süresi sona ermeden önce ödeme yöntemini düzeltmezse
yerine SUBSCRIPTION_CANCELED
türünde bir RTDN alırsınız. Örneğin,
İptal işlemiyle ilgili talimatlar için İptaller bölümüne bakın. Google Takvim widget'ını
bu şekilde iptal edilen bir abonelik için aynı işlemi uyguladıysanız,
expiryTime
alanı geçmiş bir zaman damgasına ayarlanmış:
{
"kind": "androidpublisher#subscriptionPurchaseV2",
...
"subscriptionState": "SUBSCRIPTION_STATE_CANCELED",
...
"lineItems": [
{
"productId": "sub_variant_plan01",
"expiryTime": timestamp_in_past,
...
}
],
}
Hesabı askıya alma işlemi sırasında iptal işlemiyle ilgili bilgilendirilmenizin hemen ardından,
kullanıcı da SUBSCRIPTION_EXPIRED
türünde bir RTDN alır
İptal işlemiyle birlikte abonelik iptal edildi.
Bu geçerlilik bitiş tarihini her zamanki gibi kullanabilirsiniz.
Kullanıcı aynı abonelik planını veya herhangi bir abonelik planını yeniden satın alarak
hesabının askıya alındığı süre boyunca uygulama üzerinden sunduğunuz diğer plan
satın alma işlemi gerçekleştirmeleridir. Bu durumda yeni bir satın alma jetonu verilir ve
yeni değer, şunu içeren bir SUBSCRIPTION_PURCHASED
etkinliğinin parçası olarak döndürülür:
bu yeni örneği temsil eder.
Hesabı askıya alma erişimi ve kurtarma
Şekil 3'te, hesap askıya alma kapsamına giren bir aboneliğin zaman çizelgesi gösterilmektedir. Ardından kullanıcı, ödeme yöntemini düzelttiğinde düzeltilir.
![](https://developer.android.com/static/images/google/play/billing/lifecycle/acct-hold-1.png?authuser=6&hl=tr)
Önceki örneğe benzer şekilde, Şekil 4'te bir abonelik için zaman çizelgesi gösterilmektedir hesabı askıya alma işlemine başlamadan önce ek süre tanınan, beklemeye alındığında kurtarır.
![](https://developer.android.com/static/images/google/play/billing/lifecycle/acct-hold-2.png?authuser=6&hl=tr)
Aşağıdaki noktaları göz önünde bulundurmak önemlidir:
- Bir abonelik hesabı askıya alınmadan önce Google Play, Ödeme yönteminden 48 saate kadar ödeme almaya çalışır. Kullanıcı yararlanabileceği anlamına gelir. Bu yeniden deneme süresi geçtikten sonra Abonelik, hesabı askıya alınır. Kullanıcı, hesabı askıya alır. abonelik avantajlarına erişebilirsiniz.
- Abonelik, abonelik esnasında doğrudan askıya alınır. hatalı bir ödeme şekliyle duraklatılmış durumdan devam eder.
- Askıya alınmış hesap durumu sona erdiğinde abonelik yenileme tarihi sıfırlanır.
Süre sonları
Bir abonelik süresi dolduğunda kullanıcının aboneliğe erişimini kaybetmesi gerekir. CEVAP
SUBSCRIPTION_EXPIRED
türünde SubscriptionNotification
mesaj gönderildi
gerekir. Bu bildirimi aldığınızda Google Play Geliştirici
En son aboneliği alma API'si
öğrenin.
subscriptionState
için SUBSCRIPTION_STATE_EXPIRED
olduğunu onayladıktan sonra,
ve satın alma durumunu;
arka uçta olması gerekir. Abonelik kaynağı aşağıdaki örneğe benzer:
{
"kind": "androidpublisher#subscriptionPurchaseV2",
...
"subscriptionState": "SUBSCRIPTION_STATE_EXPIRED",
...
"lineItems": [
{
"productId": "sub_variant_plan01",
"expiryTime": expiration_time_in_past,
...
}
],
}
İptal sayısı
Kullanıcılar bir aboneliği Play abonelik merkezinden gönüllü olarak iptal edebilir
veya abonelikten daha sonra kurtarılmazsa aboneliklerinin otomatik olarak iptal edilmesini
Hesabı askıya alma durumunda. Ayrıca geliştiriciler,
şununla iptal:
purchases.subscriptions.cancel
Bir abonelik iptal edildiğinde kullanıcı,
Geçerli faturalandırma döneminin sonundan itibaren Faturalandırma dönemi sona erdiğinde,
iptal edilir.
Taksitsiz, otomatik yenilenen bir aboneliğin iptal edilmesi şu işlemi tetikler:
SUBSCRIPTION_CANCELED
bildirim. Zaman
bu bildirimi alırsanız abonelik
kaynak
Google Play Geliştirici API'sinden döndürülen veriler subscriptionState
alanına sahiptir
SUBSCRIPTION_STATE_CANCELED
olarak ayarlanır ve expiryTime
alanı,
Kullanıcının aboneliğe erişimini kaybetmesi gereken tarih. Bu tarih
Kullanıcı, yararlanma hakkını hemen kaybeder. Tüm bu riskler,
Örneğin, bir kullanıcı hesaptayken aboneliğini iptal ederse
Ödemenin reddedilmesi nedeniyle beklemeye alınır.
İptal edilen bir satın alma işleminin abonelik kaynağı aşağıdakine benzer örnek:
{
"kind": "androidpublisher#subscriptionPurchaseV2",
...
"subscriptionState": "SUBSCRIPTION_STATE_CANCELED",
...
"lineItems": [
{
"productId": "sub_variant_plan01",
"expiryTime": expiration_time,
...
}
],
}
Taksitli aboneliklerde SUBSCRIPTION_CANCELLATION_SCHEDULED
Kullanıcı tarafından başlatılan iptal durumunda, ödemeler ödeme yapmaya devam ettiğinde bildirim gönderilir
taahhüt süresi boyunca devam eder. İptal işlemi beklemededir ve şu tarihte geçerli olacaktır:
mevcut taahhüt süresinin sonunda Bu bildirimi aldığınızda
Google Play Developer API'den döndürülen abonelik kaynağında,
subscriptionState alanı SUBSCRIPTION_STATE_ACTIVE
olarak ayarlanır, çünkü
Taksitli abonelik, taahhüt süresinin sonuna kadar etkin olmaya devam eder.
Ancak bekleyen boş bir İptal nesnesi var.
Bir SUBSCRIPTION_CANCELED
bildirimi ve ardından bir
Taahhüt döneminin sonunda SUBSCRIPTION_EXPIRED
.
Şu taksitli abonelik satın alma işlemi için abonelik kaynağı: bekleyen iptal işlemi aşağıdaki örneğe benzer:
{
"kind": "androidpublisher#subscriptionPurchaseV2",
...
"subscriptionState": "SUBSCRIPTION_STATE_ACTIVE",
...
"lineItems": [
{
"productId": "sub_plan01",
"expiryTime": expiration_time,
"autoRenewingPlan": {
"autoRenewEnabled": true,
"recurringPrice": {
"currencyCode": "USD",
"units": "1",
"nanos": 990000000
},
"installmentDetails": {
"initialCommittedPaymentsCount": 6,
"remainingCommittedPaymentsCount": 5,
"pendingCancellation": {}
...
}
}
}
],
}
Aşağıdaki işlemleri yapmak için abonelik kaynağındaki canceledStateContext
alanına bakabilirsiniz:
aboneliğin neden iptal edildiğini (örneğin, aboneliğin
kullanıcı, sistem veya sizin tarafınızdan iptal edilmiştir). Abonelik
kullanıcı tarafından iptal edildiyse userInitiatedCancellation
alanına bakarak
Kullanıcının aboneliği neden iptal ettiğini öğrenme. Bu sayede ekip arkadaşlarınız
stratejileri.
Bir abonelik iptal edilmiş ancak henüz süresi dolmamışsa, abonelik iptal edilir.
hâlâ şuradan iade edildi:
queryPurchasesAsync()
.
Uygulamanızda, kullanıcıya, açılış sayfanızı veya oyununuzu
ve son kullanma tarihi verildi.
İptal sayısı
Abonelik, arka ucunuz da dahil olmak üzere çeşitli nedenlerle iptal edilebilir.
aboneliği iptal etmek için
purchases.subscriptionsv2.revoke
geri ödeme alınır. Bu durumda,
gerektiğini lütfen unutmayın. Türü olarak bir SubscriptionNotification
mesajı
Bu durumda SUBSCRIPTION_REVOKED
gönderilir. Bunu aldığınızda
bildirimi, abonelik
kaynak
Google Play Geliştirici API'sinden döndürülen veriler subscriptionState
alanına sahiptir
SUBSCRIPTION_STATE_EXPIRED
olarak ayarlandı.
İptal edilen bir satın alma işlemine ilişkin abonelik kaynağı aşağıdakine benzer: örnek:
{
"kind": "androidpublisher#subscriptionPurchaseV2",
...
"subscriptionState": "SUBSCRIPTION_STATE_EXPIRED",
...
"lineItems": [
{
"productId": "sub_variant_plan01",
"expiryTime": expiration_time,
...
}
]
}
Ertelenen abonelikler
Bir kullanıcının arama süresini uzatmak istemenizin çeşitli
hak. Örneğin, kullanıcılara özel bir değer olarak ücretsiz erişim
promosyon (ör. film satın alma karşılığında bir hafta ücretsiz yararlanma
iyi niyetinizi göstermek için müşterilere erişmektir. URL parametrelerinin Google tarafından nasıl ele alınmasını istediğinizi belirtmek için
purchases.subscriptions.defer
ödeme yöntemini kullanarak bir sonraki faturalandırma tarihini
otomatik yenilenen abonelik. Bunu yaptığınızda bir SubscriptionNotification
SUBSCRIPTION_DEFERRED
türünde mesaj gönderildi. Erteleme döneminde,
Kullanıcı, içeriğinize tam erişimle 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 bir aboneliğin abonelik kaynağı şuna benzer: şu örneği inceleyin:
{
"kind": "androidpublisher#subscriptionPurchaseV2",
...
"subscriptionState": "SUBSCRIPTION_STATE_ACTIVE",
...
"lineItems": [
{
"productId": "sub_variant_plan01",
"expiryTime": timestamp_in_future,
...
}
],
}
Duraklatılmış abonelikler
Kullanıcıların aboneliklerini duraklatmalarına izin vererek isteğe bağlı kullanıcı kaybını azaltabilirsiniz. Duraklatma özelliğini etkinleştirdiğinizde kullanıcılar aboneliklerini duraklatmayı seçebilir bir hafta ila üç ay arasında bir süre boyunca, yinelenen dönem.
Abonelik yinelenme | Haftalık | Aylık | Üç Ay | Altı Ay | Yıllık |
---|---|---|---|---|---|
Kullanılabilir duraklatma uzunlukları* | 1 hafta 2 hafta 3 hafta 4 hafta |
1 ay 2 ay 3 ay |
1 ay 2 ay 3 ay |
1 ay 2 ay 3 ay |
Yok |
Abonelik duraklatma işleminin geçerli olması için mevcut fatura döneminin bitmesi gerekir. Abonelik duraklatılmış durumdayken kullanıcı, ve yenileme ücretini ödemezler. Duraklamanın sonunda döneminde abonelik devam eder ve Google, aboneliği yenilemeye çalışır. Başarıyla devam ettirilen abonelikler yeniden etkinleşir. Öğe ödeme sorunu nedeniyle devam etmezse kullanıcı hesabı askıya alma durumuna girerse aşağıdaki resimler 5 ve 6'da verilmiştir:
![](https://developer.android.com/static/images/google/play/billing/lifecycle/pause-1.png?authuser=6&hl=tr)
![](https://developer.android.com/static/images/google/play/billing/lifecycle/pause-2.png?authuser=6&hl=tr)
Kullanıcılar, süreç boyunca istedikleri zaman aboneliklerini duraklatma süresini devre dışı bırakın. Kullanıcı manuel olarak devam ettirildiğinde faturalandırma, manuel devam ettirme tarihinin değişmesine neden olabilir.
Bir kullanıcının aboneliği duraklatıldığında Play Faturalandırma Kitaplığı geri dönmez
aracılığıyla abonelik
queryPurchasesAsync()
yöntemidir. Abonelik devam ettirilirse queryPurchasesAsync()
yöntemi
tekrar döndürür.
Kullanıcılar aboneliğini duraklattığında haberdar olmak için RTDN'leri dinleyin. Bu Bildirimler ayrıca, uygulamanızda kullanıcılarınıza, e-posta ve sohbet kullanıcının aboneliğini duraklattı ve buna erişimi yok. Ayrıca, kullanıcının dilediği zaman Google Play'e derin bağlantı oluşturun.
SubscriptionNotification
mesajı
kullanıcı işlemi başlattığında SUBSCRIPTION_PAUSE_SCHEDULE_CHANGED
türünde gönderilir
askıya alabilir. Şu anda, kullanıcı
bir sonraki yenileme tarihine kadar aboneliğini ve aboneliğini
kaynak
autoRenewEnabled = true
değerini içerir. subscriptionState
alanının değeri
şu anda SUBSCRIPTION_STATE_ACTIVE
.
SubscriptionNotification
SUBSCRIPTION_PAUSED
türünde bir ileti
devreye girer. Böyle bir durumda, kullanıcı
abonelik ve abonelik kaynağı autoRenewEnabled = true
içeriyorsa
ve subscriptionState
alanı SUBSCRIPTION_STATE_PAUSED
olarak ayarlandı. Şunları yapabilirsiniz:
aboneliğin tekrar ne zaman yenilenmesi gerektiğini öğrenmek için
PausedStateContext
nesnesini tanımlayın.
Şu durumda SUBSCRIPTION_RENEWED
türünde bir SubscriptionNotification
mesajı gönderilir:
Abonelik, duraklatma süresinin sonunda otomatik olarak devam ettirilir
veya kullanıcı aboneliği manuel olarak devam ettirmeyi seçerse seçilebilir. Bu ele alınmalı
belirtildiği gibi Yenilemeler'de kullanılabilir.
Şu durumda SUBSCRIPTION_ON_HOLD
türünde bir SubscriptionNotification
mesajı gönderilir:
Duraklatma sonrasında abonelik devam ettirilmeye çalışılırken bir ödeme hatası oluştu.
Bu durum, Hesabı askıya alma bölümünde açıklandığı şekilde gerçekleştirilmelidir.
Yeniden abone olun
Otomatik yenilenen abonelik temel planları için Google Play Store'da Yeniden abone ol düğmesi. Bu düğme, kullanıcıların yeniden erişim elde etmesine olanak tanır bir aboneliğe dönüşür. İçerik çeşitli nedenlerle gösterilmiyor olabilir. Örneğin, uzun süre önce sona erdiğinde.
![](https://developer.android.com/static/images/google/play/billing/lifecycle/restoration.png?authuser=6&hl=tr)
Düğme her zaman Yeniden abone ol olarak etiketlenmiş olsa da işlevine göre değişir. üzerine gelin.
Bir abonelik iptal edilmiş ancak süresi henüz dolmamış olsa bile kullanıcı abonelikten ve abonelik avantajlarından faydalanırlar. Kullanıcı Yeniden abone ol'a dokunursa İptal işlemi etkili bir şekilde geri alınır ve abonelik yenilenmeye devam eder. Bu işlem, Play geliştirici dokümanlarında ve API'lerinde geri yükleme olarak bilinir.
Otomatik yenilenen abonelik süresi dolduktan sonra kullanıcıların satın alma işlemi yapmasına izin verebilirsiniz. aynı abonelik temel planına sahiptir. Bu işlem, şurada yeniden abone ol olarak biliniyor: Play geliştirici belgeleri ve API'ler. Bu seçeneği yapılandırabilirsiniz. Play Console'da her temel plan için veya API'yı kullanabilirsiniz.
Süresi dolmadan önce yenile
Uygulamanız yalnızca
queryPurchasesAsync()
abonelik hakkı kazanıp kazanmadığını belirleyen
yöntemi, ardından da kullanıcılarınızı
queryPurchasesAsync()
yöntemi, iptal edilen satın alma işlemlerini geçerlilik bitiş tarihlerinden önce iade etmeye devam eder. CEVAP
geri yüklenen abonelik iptal edilmemiş gibi yenilenmeye devam eder.
Uygulamanız abonelik durumunu arka uçla senkronize ediyorsa
SubscriptionNotification
için
SUBSCRIPTION_RESTARTED
türünde mesaj. Bu RTDN'yi aldıktan sonra
uygulamanız bildirime yanıt verebilir, aboneliğin artık olduğunu kaydedebilir
yenilenecek şekilde ayarlandı ve uygulamanızda geri yükleme mesajlarını görüntülemeyi durduracak. İlgili içeriği oluşturmak için kullanılan
abonelik kaynağı aşağıdaki örneğe benzer:
{
"kind": "androidpublisher#subscriptionPurchaseV2",
...
"subscriptionState": "SUBSCRIPTION_STATE_ACTIVE",
...
"lineItems": [
{
"productId": "sub_variant_plan01",
"expiryTime": next_renewal_date
...
}
],
}
Süre dolduktan sonra yeniden abone olma
Google Play Console veya API kullanılarak otomatik yenilenen temel plan yapılandırıldıysa Yeniden Abone Olma işlemine izin vermek için, kullanıcılar süresi dolmuş bir aboneliği Google Play Store'a gidin.
Bunlar yeni satın alma işlemleridir. Google Play yepyeni bir satın alma jetonu düzenler ve
arka uç SUBSCRIPTION_PURCHASED
türünde bir RTDN alır. Satın alma durumu
bu uygulama dışı satın alma türü için linkedPurchaseToken
içermez
orijinal satın alma işlemiyle ilişkilendirilebilir, çünkü orijinal
abonelik tamamen sona erdi. Bunlar, arka ucunuzun yapması gereken yeni satın alma işlemleridir
diğer satın alma işlemlerinde olduğu gibi kabul edin.
Abonelik yükseltme, düşürme ve yeniden abone olma
Bir kullanıcı üst, alt sürüme veya daha sonra kaydolduğunda abonelik süresinin dolmadan önce uygulamanızdan iptal edilmesi durumunda, abonelik geçersiz kılındı ve şunun için yeni bir abonelik oluşturuldu: yeni bir satın alma jetonu ekleyebilirsiniz.
Ayrıca, abonelik
kaynak
Google Play Geliştirici API'sinden döndürülen bir linkedPurchaseToken
kodu
kullanıcının üst veya alt sürüme geçtiği eski satın alma işlemini
veya yeniden abone olmanız gerekir. Bu alandaki satın alma jetonunu kullanarak eski
mevcut kullanıcı hesabını tanımlayarak bu yeni hesabın
aynı hesapla yapılan yeni satın alma işlemidir.
Uygulamanızda bir kullanıcıya yükseltme, düşürme veya yeniden abone olma seçenekleri sunmadan önce mevcut aboneliği kabul etmeniz gerekir. Plan değişikliği veya yeniden abone olma mevcut abonelik hâlâ onay bekliyorsa engellenir.
Kullanıcı yükseltme, düşürme veya yeniden abone olma işlemini başarıyla satın alırsa Bu, onaylamanız gereken yeni bir satın alma işlemidir. Önerilen yöntem Google Play Geliştirici API'sini kullanmaktır. Abonelik kaynağı aşağıdaki örneğe benzer:
{
"kind": "androidpublisher#subscriptionPurchaseV2",
...
"subscriptionState": "SUBSCRIPTION_STATE_ACTIVE",
"linkedPurchaseToken": old_purchase_token,
...
"lineItems": [
{
"productId": "sub_variant_plan01",
"expiryTime": next_renewal_date,
"autoRenewingPlan": {
"autoRenewEnabled": true
}
}
],
}
Fiyat değişiklikleri
Fiyat değişikliğiyle ilgili en iyi uygulamalar kılavuzunu inceleyin. otomatik yenilenen abonelik fiyatlarını değiştirme ve kullanıcıları bilgilendirme hakkında bilgi edinin gerektiğini unutmayın.
Kaydolan mevcut abonelere fiyat değişiklikleri uygulandığında Kullanıcı yeni fiyatı onaylamak veya reddetmek için işlem yaparsa RTDN alır.
Fiyat değişikliği onayı için kullanıcı onayını işleme
Bir kullanıcı abonelik fiyat artışınızı kabul ettiğinde
SubscriptionNotification
mesaj
SUBSCRIPTION_PRICE_CHANGED_CONFIRMED
türünde. Kullanıcı onayı istenmeyen fiyatla
düştüğünde ya da abonelik fiyatı arttığında,
SUBSCRIPTION_RENEWED
türünde SubscriptionNotification
mesaj. Bunu tedavi et
diğer yenileme gibi bildirimler alırsınız.
Kullanıcı onayı istenen fiyat artışının kabul edilmediği durumları ele alma
Kullanıcı, kaydı uzatmak için önceden fiyat artışınızı kabul etmemişse
otomatik olarak iptal edilir ve daha yüksek bir fiyattan ücretlendirilirsiniz.
SubscriptionNotification
mesaj
SUBSCRIPTION_CANCELED
türünde. Bu etkinliği şurada açıklandığı gibi yönetebilirsiniz:
İptaller.
Kullanıcılar, kullanıcı onayı istenmeyen fiyat artışı için aboneliklerini iptal edebilir. çalışmasını sağlamalısınız.
Ön ödemeli planların yaşam döngüsünü yönetme
Otomatik yenilenen aboneliklerde olduğu gibi, ön ödemeli planları şu tarihten sonra kabul etmeniz gerekir: Her yeni satın alma işlemi için. Ön ödemeli planlar için hem ilk satın alma hem de para ekleme işlemleri, çünkü kullanıcının daha yakından inceleyeceğiz.
Ön ödemeli plan sürelerinin kısa olma ihtimali nedeniyle mümkün olan en kısa sürede onaylamanız gerekir. Şu süreye sahip ön ödemeli planlar: en az bir hafta 3 gün içinde kabul edilmelidir. Ön ödemeli planlar bir haftadan kısa süre, planın yarısında kabul edilmelidir gerekir. Örneğin, geliştiricilerin bir ürünün satın alınmasını onaylamak için 1,5 üç günlük ön ödemeli plan.
SubscriptionNotification
mesajı
SUBSCRIPTION_PURCHASED
türünde bir ileti, RTDN istemcinize
Her para ekleme de dahil olmak üzere ön ödemeli plan aboneliği satın alınır. Şunu çağırın:
purchases.subscriptionsv2.get
yöntemini kontrol edebilirsiniz.
Para ekleme işlemleri için yeni bir satın alma jetonu verilir ve
linkedPurchaseToken
alanında önceki satın alma jetonunu
abonelik satın alma durumu. Satın alma jetonu, abonelikten itibaren geçerlidir
geçerlilik süresi sona erdikten sonra 60 gün içinde kaydolması gerekir. Bu tarihten sonra satın alma jetonu
artık Google Play Developer API'yi çağırmak için kullanılamayacak.
Ön ödemeli plan satın alma işlemlerinde kullanılacak abonelik kaynağı şuna benzer: şu örneği inceleyin:
{
"kind": "androidpublisher#subscriptionPurchaseV2",
"startTime": "2022-04-22T18:39:58.270Z",
"regionCode": "US",
"subscriptionState": "SUBSCRIPTION_STATE_ACTIVE",
"latestOrderId": "GPA.3333-4137-0319-36762",
"acknowledgementState": "ACKNOWLEDGEMENT_STATE_ACKNOWLEDGED",
"lineItems": [
{
"productId": "prepaid_plan01",
"expiryTime": expiry_date,
"prepaidPlan": {
"allowExtendAfterTime": timestamp_after_which_topups_are_allowed
}
}
]
}
Yararlanma hakkının ne zaman sona erdiğini expiryTime
alanında görebilirsiniz. Para ekleme
satın alma işlemleri, hak kazanım süresini biriktirerek artırır. Yani, projenizin
Kullanıcı orijinal yararlanma hakkı sona ermeden para eklediğinde, yeni zaman eklenir
eklemesi gerekir.
Uygulamanızda, kullanıcıya, açılış sayfanızı veya oyununuzu
Ön ödemeli abonelikler para ekleyerek uzatılabilir. Kullanıcının ne zaman
para ekleyebiliyorsanız abonelikteki allowExtendAfterTime
alanını kontrol edin.
gösterir.
Ön ödemeli planlar otomatik olarak yenilenmediğinden iptal edilemez. Kullanıcı ön ödemeli planları iptal ettikleri takdirde, son kullanma tarihine ulaşabilecekler.