Günlük işleriniz kapsamında abonelikler veya tek seferlik satın alımlar üzerinde yönetim işlemleri yapmanız gerekebilir. Örneğin, müşteri hizmetlerinizin kullanıcılar için tam veya kısmi geri ödeme yapması gerekebilir ya da belirli durumlarda hakları iptal etmeniz gerekebilir. Siparişleri Play Console'dan yönetebilirsiniz. Kendi sisteminizden yönetmek isterseniz Google Play Developer API'yi kullanabilirsiniz.
Abonelikleri iptal etme
Abonelik iptalleri kullanıcılar veya geliştiriciler tarafından başlatılabilir.
Kullanıcı tarafından başlatılan iptaller
Kullanıcılar, Play Store'u kullanarak Google Play aboneliklerini diledikleri zaman iptal edebilir. Geçerliyse uygulamanızda ve web sitenizde kullanıcılara aboneliklerini iptal etme seçeneği de sunmanız gerekir.
Kullanıcıların aboneliklerini kendi istekleriyle iptal etmelerini sağlamanın en kolay yolu, uygulamanızda Play Store'a derin bağlantılar sunmaktır. Bu bağlantılar aracılığıyla kullanıcılar aboneliklerini görüntüleyip yönetebilir.
Geliştirici tarafından başlatılan iptaller
Geliştirici olarak, iptalleri arka uçtan da tetiklemeniz gerekebilir.
purchases.subscriptions.cancel
API, abonelik satın alma işlemlerini iptal etmenize olanak tanır.
Örneğin, eski bir hizmeti devre dışı bırakmak için bu yöntemi kullanabilirsiniz.
Abonelik iptal edildiğinde geri ödeme yapılmaz ve kullanıcı, geçerli fatura döneminin sonuna kadar erişimini korur.
Bu yöntem, cancellationType istek gövdesi parametresinde aşağıdaki iptal türlerini belirtmenize olanak tanır:
USER_REQUESTED_STOP_RENEWALS: Aboneliği, kullanıcılar Play Store'dan iptal etmiş gibi iptal eder. Taksit ödemeleri, mevcut taahhüt süresinin geri kalanı boyunca devam eder. Kullanıcılar, Play Store'dan aboneliğin süresi dolmadan önce geri yükleyebilir veya temel plan için etkinleştirilmişse süresi dolduktan sonra yeniden abone olabilir.
DEVELOPER_REQUESTED_STOP_PAYMENTS: Aboneliği iptal eder ve başka ödeme yapılmasını engeller. Kullanıcılar, aboneliği Play Store'dan geri yükleyemez veya aboneliğe yeniden abone olamaz. Ancak uygulamanızda yeniden abone olmalarını sağlayabilirsiniz.
Kullanıcıların süresi dolmamış abonelikleri geri yüklemesine olanak tanıma
Bazı senaryolarda, geliştirici olarak iptal işlemini başlattıktan sonra kullanıcıların süresi dolmamış abonelikleri Play abonelik merkezinden geri yüklemelerine izin vermek faydalı olabilir. Örneğin, uygulama içi iptal akışını özelleştirmek isteyebilirsiniz. İşletme mantığınıza bağlı olarak, arka uçtan tetiklenen hangi iptallerin kullanıcılar tarafından geri yüklenebileceğine karar verebilirsiniz.
Kullanıcının iptali geri yükleyebileceğini belirtmek için purchases.subscriptions.cancel API'sine bir POST isteği gönderin ve cancellationType istek parametresini USER_REQUESTED_STOP_RENEWAL değerine ayarlayın.
Örnek:
1a2b3c4d5e6f7g8h9i0jaboneliğinin satın alma jetonu- Uygulama paketi adı
com.your.app - Abonelik kimliği
your-subscription-product
HTTP POST isteği:
https://androidpublisher.googleapis.com/androidpublisher/v3/applications/com.your.app/purchases/subscriptions/your-subscription-product/tokens/1a2b3c4d5e6f7g8h9i0j:cancel
İstek gövdesi:
{
"cancellationType": "USER_REQUESTED_STOP_RENEWAL"
}
Kullanıcıların süresi dolmuş aboneliklere yeniden abone olmalarını sağlama
Süresi dolmuş bir aboneliğin yeniden etkinleştirilmesine izin vermek için aboneliğin temel planında Yeniden abone ol seçeneğini etkinleştirmeniz ve ardından cancellationType parametresini USER_REQUESTED_STOP_RENEWAL değerine ayarlayarak aboneliği iptal etmeniz gerekir.
Kullanıcıların yalnızca uygulamanızda aboneliği yenilemelerini sağlama
cancellationType parametresini DEVELOPER_REQUESTED_STOP
_PAYMENTS olarak ayarladıysanız veya cancellationType parametresini ayarlamadıysanız kullanıcılar aboneliklerini Play abonelik merkezinden geri yükleyemez. Ancak kullanıcılar gerekirse uygulamanız üzerinden aboneliğe tekrar kaydolabilir.
Bu işlem, SUBSCRIPTION_CANCELEDgerçek zamanlı geliştirici bildirimi tetikler. Bu iptalleri İptaller bölümünde açıklandığı şekilde ele alın.
Faturalandırmayı erteleme
subscriptionsv2.defer yöntemini kullanarak bir aboneliğin yararlanma süresini uzatabilirsiniz. Eklenti içeren bir aboneliği ertelediğinizde, abonelikteki tüm öğeler aynı süre boyunca ertelenir. Erteleme süresince kullanıcı, içeriğinize abone olmaya devam eder ancak ek süre için ücret alınmaz. Bir aboneliğin faturalandırmasını ertelediğinizde durum bilgileri buna göre güncellenir ve satın alma durumu bilgilerindeki expiryTime alanında gösterilir:
- Yinelenen ve etkin durumda olan aboneliklerde, ertelenmiş faturalandırma bir sonraki yenileme tarihini uzatır.
- Ön ödemeli planlarda, ertelenmiş faturalandırma son kullanma süresini uzatır.
Ertelenmiş faturalandırmayı kullanabileceğiniz bazı örnekler:
- Kullanıcılara özel teklif kapsamında ücretsiz erişim sağlayın. Örneğin, mevcut abonelere geri bildirim anketini doldurmaları karşılığında bir hafta ücretsiz erişim sunabilirsiniz.
- Müşterilere müşteri hizmetleri kapsamında ücretsiz erişim sunun. Örneğin, hizmetinizi kullanma becerilerini etkilemiş olabilecek uzun süreli bir kesintinin ardından bu erişimi sağlayabilirsiniz.
Faturalandırma, API çağrısı başına en az bir gün ve en fazla bir yıl ertelenebilir. Hak süresinin bitişini daha da ertelemek için yeni geçerlilik bitiş tarihi gelmeden önce API'yi tekrar çağırın.
Bu işlem, SUBSCRIPTION_DEFERREDgerçek zamanlı geliştirici bildirimi tetikler. Bu etkinlikleri nasıl ele alacağınızı öğrenmek için Abonelikler hakkında bölümündeki Abonenin faturalandırmasını erteleme başlıklı makaleyi inceleyin.
Örnek:
FitnessGoals akış hizmeti, şubat ayında düzenli egzersizi teşvik etmek için bir promosyon yayınlamak istiyor.
Şubat ayı boyunca FitnessHedefleri ile en az 10 kez egzersiz yapan abonelere bir ay daha hizmet sunmaya karar verirler.
Bu kullanıcılar, yarışmanın sonuçlarını izler ve 1 Mart'ta Şubat ayında yarışmayı tamamlayan kullanıcılara ait her etkin abonelik satın alma işlemi için subscriptionsv2.defer yöntemini çağırır.
Bu kullanıcılar, bir ay boyunca ücretsiz olarak düzenli egzersiz videolarından yararlanır ve FitnessGoals'ın sağlıklı kalmalarına nasıl yardımcı olduğunu tüm arkadaşlarına anlatır.
Geri ödeme ve iptal işlemleri yapma
Abonelik veya tek seferlik satın alma işlemi için geri ödeme yapmak ya da erişimi iptal etmek isteyebileceğiniz birçok durum vardır.
Sipariş kimliğine göre siparişin tamamını geri ödeme
orders.refund
API'si ile satın alma tarihinden itibaren üç yıl içinde herhangi bir sipariş için tam geri ödeme yapabilirsiniz.
orders.refund yöntemi, geri ödeme yapmanın yanı sıra erişimin iptal edilip edilmeyeceğini belirten bir iptal parametresi alır.
Abonelik satın alma işlemi için geri ödeme çağrısıyla birlikte iptal işlemi yaparsanız abonelik hemen sonlandırılır ve SUBSCRIPTION_REVOKED
anlık geliştirici bildirimi tetiklenir. Bu etkinlikleri nasıl ele alacağınızı öğrenmek için abonelik yaşam döngüsü yönetimi kılavuzunun İptaller bölümünü okuyun.
Örnek:
Yeni dünya kupasının başlangıcını kutlamak için e-spor uygulaması Football-Not-Soccer, ilk 24 saat içinde yeni takım formaları satın alan tüm kullanıcılara ücretsiz sanal formalar hediye etmeye karar verir.
Football-Not-Soccer, forma satın alımlarının kazananlara geri ödenmesi için iptal parametresi iletmeden
orders.refundAPI'sini kullanıyor.
Satın alma jetonuyla aboneliği iptal etme ve geri ödeme yapma
Bazı kullanım alanlarında, kullanıcının aboneliğine erişimi iptal etmeniz ve geri ödeme yapmanız gerekebilir. Play Faturalandırma, subscriptionsv2.revoke API'si aracılığıyla eksiksiz geri ödemeler ve süreyle orantılı geri ödemeler gibi iptal yöntemleri sunar. Bu uç nokta ile geri ödemenin nasıl hesaplanacağını belirlemek için revocationContext değerini belirtebilirsiniz.
Bu işlem, SUBSCRIPTION_REVOKEDGerçek Zamanlı Geliştirici Bildirimi'ni tetikler. Uygulamanız, bu iptalleri İptaller bölümünde açıklandığı şekilde işlemelidir.
Örnek:
- Satın alma jetonuyla satın alma
1a2b3c4d5e6f7g8h9i0j com.your.apppaket adına sahip uygulama- Orantılı geri ödeme yapma amacı
HTTP POST isteği:
https://androidpublisher.googleapis.com/androidpublisher/v3/applications/com.your.app/purchases/subscriptionsv2/tokens/1a2b3c4d5e6f7g8h9i0j:revoke
İstek gövdesi:
{
"revocationContext": {
"proratedRefund": {}
}
}
Eksiksiz geri ödemeler
Bir aboneliği sonlandırmanız ve mevcut faturalandırma döneminin tam tutarını geri ödemeniz gerekiyorsa tam geri ödeme yapın. purchases.subscriptionsv2.revoke işlevini kullanın ve geri ödeme türünü "fullRefund": {} olarak ayarlayın.
Örnek:
Maria, SuperMovies streaming aylık planına 30 günlük otomatik yenilenen bir abonelik satın aldı. Maria, içeriğe erişmesini engelleyen bazı teknik sorunlarla karşılaştı. Fatura döneminin 3. gününde müşteri hizmetleriyle iletişime geçen kullanıcı, aboneliğe hiç erişemediğini belirtiyor.
Müşteri hizmetleri, Maria'nın abonelik satın alma ayrıntılarını sisteminde bulur ve
purchases.subscriptionsv2.revoke'a tam geri ödeme isteğinde bulunmak için bir çağrı başlatır.Müşteri hizmetleri, Maria'ya abonelik ücretinin% 100'ünün geri ödeneceğini ve artık plana abone olmadığını bildiriyor.
Geri ödemeleri orantılı olarak yapma
Bir aboneliği sonlandırmanız ve kalan hak süresinin kısmi geri ödemesini yapmanız gerekiyorsa orantılı geri ödeme yapın. purchases.subscriptionsv2.revoke işlevini kullanın ve geri ödeme türünü "proratedRefund": {} olarak ayarlayın.
Örnek:
Maria, SuperMovies streaming aylık planına 30 günlük otomatik yenilenen bir abonelik satın aldı. Bir süredir hizmeti memnuniyetle kullanıyor. Merve, fatura döneminin 15. gününde müşteri hizmetleriyle iletişime geçerek yurt dışına taşındığını ve ertesi günden itibaren hizmeti kullanamayacağını bildiriyor.
Müşteri hizmetleri, Maria'nın abonelik satın alma ayrıntılarını sisteminde bulur ve
purchases.subscriptionsv2.revoke'a orantılı geri ödeme isteğinde bulunmak için bir çağrı başlatır.Müşteri hizmetleri, Maria'ya abonelik fiyatının yaklaşık% 50'sinin geri ödeneceğini ve hizmete erişimin hemen sonlandırılacağını bildiriyor.