Abonelikleri ve tek seferlik satın alma işlemlerini yönetme

Günlük iş süreçleri kapsamında abonelikler veya tek seferlik satın alma işlemleriyle ilgili yönetim işlemleri yapmanız gerekebilir. Örneğin, müşteri hizmetinizin kullanıcılara tam veya kısmi geri ödeme yapması gerekebilir ya da belirli durumlarda haklarınızı iptal etmeniz gerekebilir. Siparişleri Play Console'dan yönetebilirsiniz. Dilerseniz kendi sisteminizden yönetmek için 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 iptal işlemleri

Kullanıcılar, Play Store'u kullanarak Google Play aboneliklerini istedikleri zaman iptal edebilir. Uygun durumlarda, kullanıcıların uygulamanızda ve web sitenizde aboneliklerini iptal etmeleri için bir seçenek de sunmanız gerekir.

Kullanıcıların gönüllü olarak iptal etmesini sağlamanın en kolay yolu, uygulamanızda Play Store'a derin bağlantılar sağlamaktır. Bu bağlantılar sayesinde kullanıcılar aboneliklerini görüntüleyip yönetebilir.

Geliştirici tarafından başlatılan iptal işlemleri

Geliştirici olarak, iptalleri arka uçtan da tetiklemeniz gerekebilir. purchases.subscriptions.cancel API, abonelik satın alma işlemini 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şmeye devam eder.

Bu yöntem, cancellationType istek gövde 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 döneminin geri kalanı boyunca devam eder. Kullanıcılar, Play Store'dan aboneliği süresi dolmadan önce geri yükleyebilir veya temel planda etkinleştirildiyse süresi dolduktan sonra yeniden abone olabilir.

  • DEVELOPER_REQUESTED_STOP_PAYMENTS: Aboneliği iptal eder ve daha fazla ödeme yapılmasını engeller. Kullanıcılar Play Store'dan aboneliği geri yükleyemez veya aboneliğe yeniden kaydolamaz. Ancak uygulamanızda yeniden abone olmalarını sağlayabilirsiniz.

Kullanıcıların süresi dolmamış abonelikleri geri yüklemelerine olanak tanıyın

Bazı durumlarda, geliştirici olarak iptal işlemini tetikledikten sonra kullanıcıların süresi dolmamış abonelikleri Play abonelik merkezinden geri yüklemelerine izin vermeniz yararlı olabilir. Örneğin, özelleştirilmiş bir uygulama içi iptal akışı sunabilirsiniz. İş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 iptal işlemini geri alabileceğ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:

  • 1a2b3c4d5e6f7g8h9i0j aboneliğ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 içeriği:

{
  "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 aboneliğine 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 etkinleştirme

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_CANCELED gerçek zamanlı geliştirici bildirimini tetikler. Bu iptalleri İptaller bölümünde açıklandığı şekilde işleme alın.

Faturalandırmayı erteleme

Aboneliğin yararlanma süresini uzatmak için subscriptions.defer simgesini kullanın. Kullanıcı, erteleme süresi boyunca içeriğinize abone olmaya devam eder ancak ek süre için ödeme alınmaz. Bir aboneliğin faturalandırmasını ertelediğinizde durum bilgileri buna göre güncellenir ve bu güncelleme, satın alma durumu bilgilerindeki expiryTime alanına yansıtılır:

  • Etkin yinelenen aboneliklerde ertelenen faturalandırma, bir sonraki yenileme tarihini uzatır.
  • Ön ödemeli planlarda ertelenen faturalandırma, süre sonunu uzatır.

Ertelenen faturalandırmayı nasıl kullanabileceğinize dair bazı örnekler:

  • Kullanıcılara özel teklif olarak ücretsiz erişim verin. Örneğin, mevcut abonelere geri bildirim anketi doldurmaları karşılığında bir haftalık ücretsiz erişim verebilirsiniz.
  • Müşterilere, müşteri hizmetleri kapsamında ücretsiz erişim sunun. Örneğin, hizmetinizi kullanmalarını etkileyebilecek uzun süreli bir kesinti sonrasında bunu yapabilirsiniz.

Faturalandırma, API çağrısı başına en az bir gün ve en fazla bir yıl ertelenebilir. Kullanım hakkının sonunu daha da ertelemek için yeni geçerlilik bitiş tarihi gelmeden önce API'yi tekrar çağırın.

Bu işlem, SUBSCRIPTION_DEFERRED gerçek zamanlı geliştirici bildirimini 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:

  1. FitnessGoals yayın hizmeti, Şubat ayında düzenli egzersiz yapmayı teşvik etmek için bir promosyon yayınlamak istiyor.

  2. Fitness Hedefleri ile Şubat ayında en az 10 kez egzersiz yapan tüm abonelere ek bir aylık hizmet sunmaya karar verirler.

  3. Şirket, 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 subscriptions.defer API'yi çağırır.

  4. Bu kullanıcılar, normal egzersiz videolarına ek olarak bir ay boyunca ücretsiz olarak erişebilir. Bu kullanıcılar, Fitness Hedefleri'nin sağlıklı kalmalarına nasıl yardımcı olduğunu tüm arkadaşlarına anlatır.

Geri ödeme yapma ve iptal etme

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 ile, satın alma tarihinden itibaren üç yıl içinde herhangi bir sipariş için eksiksiz geri ödeme yapabilirsiniz. orders.refund yöntemi, geri ödemenin 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 feshedilir veSUBSCRIPTION_REVOKED gerçek zamanlı 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:

  1. Yeni dünya kupasının başlangıcını kutlamak isteyen 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 forma çekilişi yapmaya karar verir.

  2. Football-Not-Soccer, forma satın alma işlemlerinin geri ödemesini kazananlara yapmak için iptal parametresi iletmeden orders.refund API'yi kullanır.

Satın alma jetonuna göre 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 üzerinden eksiksiz geri ödemeler ve oransal geri ödemeler dahil olmak üzere iptal yöntemleri sunar. Bu uç noktayla, geri ödemenin nasıl hesaplanacağını belirlemek için revocationContext değerini belirtebilirsiniz.

Bu işlem, SUBSCRIPTION_REVOKED Gerçek Zamanlı Geliştirici Bildirimi'ni tetikler. Uygulamanız, bu iptalleri İptaller bölümünde açıklandığı şekilde işlemelidir.

Örnek:

  • 1a2b3c4d5e6f7g8h9i0j satın alma jetonuyla satın alma
  • com.your.app paket adına sahip uygulama
  • Orantısal geri ödeme yapma niyeti

HTTP POST isteği:

https://androidpublisher.googleapis.com/androidpublisher/v3/applications/com.your.app/purchases/subscriptionsv2/tokens/1a2b3c4d5e6f7g8h9i0j:revoke

İstek içeriği:

{
  "revocationContext": {
    "proratedRefund": {}
  }
}

Eksiksiz geri ödemeler

Bir aboneliği feshedip geçerli faturalandırma döneminin tutarını eksiksiz olarak geri ödemeniz gerekiyorsa eksiksiz geri ödeme yapın. purchases.subscriptionsv2.revoke işlevini kullanın ve geri ödeme türü olarak "fullRefund": {} değerini ayarlayın.

Örnek:

  1. Meral, otomatik olarak yenilenen 30 günlük bir SuperMovies akışı aylık planına abonedir. Maria, içeriğe erişmesini engelleyen bazı teknik sorunlarla karşılaştı. Müşteri, faturalandırma döneminin 3. gününde müşteri hizmetleriyle iletişime geçerek aboneliğe hiç erişemediğini belirtir.

  2. Müşteri hizmetleri, Maria'nın abonelik satın alma ayrıntılarını sistemlerinde bulur ve purchases.subscriptionsv2.revoke'a tam geri ödeme isteğinde bulunan bir arama yapar.

  3. Müşteri hizmetleri, Meral'e abonelik fiyatının% 100'ünün geri ödeneceğini ve artık plana abone olmadığını bildirir.

Prorata geri ödemeler

Bir aboneliği feshedip kalan uygunluk süresini kısmen geri ödemeniz gerekiyorsa oransal geri ödeme yapın. purchases.subscriptionsv2.revoke işlevini kullanın ve geri ödeme türü olarak "proratedRefund": {} değerini ayarlayın.

Örnek:

  1. Meral, otomatik olarak yenilenen 30 günlük bir SuperMovies aboneliğine (aylık plan) sahip. Hizmeti bir süredir memnuniyetle kullanıyor. Maria, faturalandırma 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ı belirtir.

  2. Müşteri hizmetleri, Maria'nın abonelik satın alma ayrıntılarını sistemlerinde bulur ve purchases.subscriptionsv2.revoke'a oransal geri ödeme isteğinde bulunan bir arama yapar.

  3. 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ı bildirir.