Tüm makaleler
Deep dive8 dk okuma

Abonelik iadeleri tek seferlik iadeler gibi çalışmaz ve ne kadar söz hakkınız olduğuna bulunduğunuz mağaza karar verir

Bir abonelik iadesi tek bir satışı değil, tüm bir faturalandırma dönemini geri alır. App Store'da Apple karar verir ve sunucunuz yalnızca sonucu öğrenir. Google Play'de tam ya da orantılı iadeyi kendiniz seçersiniz. İşte her mağazanın abonelik iadelerini nasıl ele aldığı ve bir iadenin size neye mal olduğu.

Aylık yinelenen faturalandırma tarihleri daire içine alınmış bir duvar takvimi, üzerinde bir kredi kartı ve kısmen geri itilmiş madeni paralar, bir abonelik iadesinin bir faturalandırma dönemini nasıl geri aldığını gösteriyor

Önemli noktalar

  • Abonelik iadesi tek seferlik iadeyle aynı şey değildir. Geri alınan birim bir faturalandırma dönemidir ve her iki mağazada da bir abonelik siparişini iade etmek aboneliği iptal eder ve erişimi keser.
  • App Store'da her abonelik iadesine Apple karar verir. Müşteri reportaproblem.apple.com üzerinden Apple'a başvurur, Apple karar verir ve sunucunuz sonucu yalnızca bir REFUND, REFUND_DECLINED veya REFUND_REVERSED bildirimiyle öğrenir.
  • Apple bir abonelik iadesi verdiğinde, işlem bir revocationDate alır ve aboneliğin autoRenewStatus değeri false olarak ayarlanır, böylece yenilenmeyi durdurur ve müşteri erişimini kaybeder.
  • Apple otomatik yenilenen bir aboneliği kullanım metriklerinize göre değil, geçen süreye göre ölçer. Yıllık planın altı ayına gelmiş biri yaklaşık yüzde 50'sini tüketmiştir ve GRANT_PRORATED bunun için ifade edebileceğiniz tek iade tercihidir.
  • Google Play'de iadeyi kendiniz yaparsınız. purchases.subscriptionsv2.revoke ya mevcut dönemin tamamını geri veren fullRefund ya da yalnızca kullanılmamış hak süresini geri veren proratedRefund alır.
  • Google Play'de hangi siparişi iade ettiğiniz sonucu değiştirir. En son siparişi iade edin, abonelik hemen kaldırılır ve gelecekteki yenilemeler iptal edilir. Daha eski bir siparişi iade edin, abonelik etkin kalır.
  • Google Play sınırları katıdır. Üç yıldan eski siparişler iade edilemez, kısmi iadeler yalnızca March 2018 sonrası verilen siparişlerde işe yarar, ücretli uygulamalara uygulanmaz ve bir kez verilen hiçbir iade geri alınamaz.

Bir aboneliği iade etmek ile tek bir uygulama içi satın almayı iade etmek aynı düğme gibi hissettirir. Değildir. Tek seferlik bir satın alma, geri verdiğiniz tek bir ücrettir. Bir abonelik ise canlı bir erişim hakkına bağlı yinelenen bir ücrettir, bu yüzden abonelik iadeleri tek seferlik bir iadenin asla sormadığı iki soruyu yanıtlamak zorundadır: mevcut dönemin ne kadarını geri veriyorsunuz ve abonelik çalışmaya devam ediyor mu. App Store ve Google Play bu iki soruyu zıt şekillerde yanıtlar ve bu fark ne kadar kontrolünüz olduğuna ve hesabınızdan ne kadar para çıktığına karar verir.

İşte kısa harita. App Store'da karar Apple'a aittir ve siz olan biteni sonradan öğrenirsiniz. Google Play'de kontrol sizdedir ve tam ya da orantılıyı kendiniz seçersiniz. Bu yazı her iki mağazayı, her birinin kullandığı tam alanları ve bildirimleri, bir abonelik defalarca faturalandırıldığında hangi siparişe dokunduğunuzu ve zaten harcadığınız işlem gücünü saydığınızda bir abonelik iadesinin gerçekte neye mal olduğunu anlatır.

Abonelik iadeleri tek seferlik iadelerden nasıl farklıdır

Her iki mağaza da bir iadeyi belirli bir siparişin geri alınması olarak görür. Tek seferlik bir satın almada yalnızca tek bir sipariş vardır, dolayısıyla seçilecek bir şey yoktur. Bir abonelik, her faturalandırma dönemi için bir tane olmak üzere bir sipariş zinciridir ve etkin ya da etkin olmayan bir erişim hakkına sahiptir. Bir abonelik iadesinin tek seferlik bir iadenin taşımadığı seçimleri taşımasının nedeni bu yapıdır.

Geri alınan birim bir faturalandırma dönemidir

Bir aboneliği iade ettiğinizde, ömür boyu yapılan ödemeleri geri vermiyorsunuz. Zincirdeki tek bir sipariş üzerinde, genellikle en sonuncusu üzerinde işlem yapıyorsunuz ki bu tek bir faturalandırma dönemidir. Tam iade o dönemin tamamını geri verir. Orantılı iade yalnızca müşterinin henüz kullanmadığı bölümünü geri verir. Her iki durumda da geri aldığınız satış, müşterinin uygulamayla tüm geçmişi değil, bir dönemin fiyatıdır.

Asıl fark kimin karar verdiğidir

Daha keskin ayrım yetkidir. App Store'da bir abonelik iadesinin gerçekleşip gerçekleşmeyeceğine Apple karar verir ve siz en fazla bağlam sağlarsınız. Google Play'de siz karar verirsiniz ve API tam olarak söylediğinizi yapar. Müşteri için sonuç aynıdır, geliştirici için tamamen farklı bir koltuktur ve bu, her birini ele almak için ne inşa ettiğinizi değiştirir.

App Store bir abonelik iadesini nasıl ele alır

Apple tarafında küçük bir mikrofonu olan bir seyircisiniz. Müşteri Apple ile konuşur, Apple kararı verir ve sunucunuz sonucu okur.

Müşteri Apple'a başvurur ve Apple karar verir

Bir App Store müşterisi bir abonelik iadesini sizden değil, reportaproblem.apple.com üzerinden ister. Apple isteği kendi sinyallerine göre inceler ve karar verir. Siz onaylamazsınız ve Google Play'de olduğu gibi bir abonelik iadesi vermenizi sağlayan bir Apple konsol düğmesi yoktur. Apple'ın bir isteği incelemeye kabul etmek için satın almadan itibaren 90 days süresi vardır ve karar verdiğinde karar Apple'ındır.

İade geldiğinde sunucunuz ne görür

Sonucu App Store Server Notifications V2 aracılığıyla öğrenirsiniz. Verilen bir iade bir REFUND bildirimi olarak gelir ve işlem artık erişimin ne zaman sona ereceğini işaretleyen bir revocationDate taşır. Aboneliğin autoRenewStatus değeri false olarak ayarlanır, böylece yenilenmeyi durdurur ve müşteri erişim hakkını kaybeder. Apple isteği reddederse REFUND_DECLINED alırsınız ve Apple daha sonra verdiği bir iadeyi geri alırsa REFUND_REVERSED alırsınız ve abonelik geri döner. Sizin işiniz bunları okuyup erişimi değiştirmektir, oy kullanmak değil.

BildirimNe anlama gelirNe yaparsınız
REFUNDApple iadeyi verdi; işlem bir revocationDate alırErişimi iptal edin, autoRenewStatus değerini false olarak kabul edin
REFUND_DECLINEDApple müşterinin iade isteğini reddettiHiçbir şey değişmez; abonelik geçerli kalır
REFUND_REVERSEDApple verdiği bir iadeyi geri aldıErişimi ve satışı geri yükleyin

Apple bir aboneliği metriklerinize göre değil, zamana göre ölçer

Tüketilebilir bir ürün için Apple'a tüketim verileriyle ne kadar kullanıldığını bildirebilirsiniz. Otomatik yenilenen bir abonelik için Apple tüketimi geçen süreye göre kendisi hesaplar. Apple'ın kendi örneği, yıllık aboneliğin altı ayına gelmiş ve yaklaşık yüzde 50'sini tüketmiş bir müşteridir. Yani kullanım metrikleriniz bir abonelik için sayıyı belirlemez. Çekebileceğiniz tek kol refundPreference'tır ve bir abonelik için ilgili değer, Apple'ın yalnızca kullanılmamış kısmı geri vermesini tercih ettiğinizi söyleyen GRANT_PRORATED'tır. Bu bir tercihtir, bir karar değil. Yine de Apple karar verir.

Google Play bir abonelik iadesini nasıl ele alır

Google Play kararı sizin ellerinize verir. Bir aboneliği doğrudan iade etmenize, ne kadarını iade edeceğinizi seçmenize ve erişimin sona erip ermeyeceğine karar vermenize izin veren bir Play Console ekranı ve bir dizi API yöntemi vardır. Bu Apple'ın tam tersi bir duruştur ve doğru yapmanız gereken seçimlerle birlikte gelir.

Tam ya da orantılı ve bu sizin kararınız

Bir aboneliği iade edip iptal etmenin güncel yolu, bir revocationContext ile çağrılan purchases.subscriptionsv2.revoke'tir. fullRefund geçirin, Google Play aboneliği sonlandırır ve mevcut faturalandırma döneminin tam tutarını geri verir. proratedRefund geçirin, Google Play aboneliği sonlandırır ve yalnızca kalan, kullanılmamış hak süresini geri verir. Daha eski yöntem yalnızca tam iade yapabiliyordu, yenisini kullanmanın nedeni budur. Orantılı bir iptal iki satırlık bir gövdedir, proratedRefund'ı saran bir revocationContext'tir ve tüm dönem için fullRefund'ı yerine koyarsınız. Her iki iptal de bir SUBSCRIPTION_REVOKED gerçek zamanlı geliştirici bildirimi tetikler ki bu, erişimi kesme sinyalinizdir.

Hangi siparişi iade ettiğiniz ne olacağını değiştirir

Google Play ayrıca orders.refund aracılığıyla iptal etmeden bir siparişi iade etmenize de izin verir ve burada ince bir kural devreye girer. Bir abonelikteki en son siparişi iade ederseniz, sipariş iade edilir, abonelik hemen kaldırılır ve gelecekteki yinelemeler iptal edilir. Zincirdeki daha eski bir siparişi iade ederseniz, o sipariş iade edilir ama abonelik etkin kalır. orders.refund'da revoke parametresi yalnızca sipariş en sonuncu olduğunda iptal eder, dolayısıyla etkin bir aboneliğin erişimini sonlandırmak için bunun yerine purchases.subscriptionsv2.revoke kullanırsınız.

Eylemİade edilen siparişAboneliğe ne olur
En son siparişi iade etEn son faturalandırma dönemiHemen kaldırılır, gelecekteki yenilemeler iptal edilir
Daha eski bir siparişi iade etGeçmiş bir faturalandırma dönemiEtkin kalır, yenilenmeye devam eder
subscriptionsv2.revoke, tam ya da orantılıMevcut dönemŞimdi sonlandırılır, SUBSCRIPTION_REVOKED gönderilir
Karanlık bir masada yan yana iki akıllı telefon abonelik ödeme ekranlarını gösteriyor, aralarında kısmi bir geri verilmiş madeni para yığını var, App Store ve Google Play'de tam ile orantılı abonelik iadesini gösteriyor

Geliştiricileri tökezleten sınırlar

Birkaç sert köşe insanları yakalar ve hiçbiri mutlu yolda değildir.

  • Üç yıldan eski siparişler hiç iade edilemez.
  • Kısmi iadeler yalnızca March 2018 sonrası verilen siparişlerde işe yarar ve asla ücretli uygulama satın almalarında değil.
  • Bir siparişte birden fazla kısmi iadeyi üst üste koyabilirsiniz ama sipariş toplamına kadar ya da onu aşacak şekilde değil.
  • Bir iade, bir kez verildikten sonra geri alınamaz.

Google Play genellikle bir iade kararını bir gün içinde verir, ancak dörde kadar sürebilir. Bir iadenin kendi erişim kontrollerinize yansıması gerektiğinde bu gecikmeyi hesaba katın.

Bir abonelik iadesi gerçekte size neye mal olur

İade edilen ücret asla tüm fatura değildir. Bir abonelik siparişi teslim edildiği anda, üzerine zaten gerçek para harcamıştınız: işlem gücü, model API çağrıları, depolama ve o döneme bağlı her türlü ödeme. Bir iade satışı geri verir. Ona hizmet etmek için harcadığınızı geri vermez. Bir abonelikte kaybın şekli hangi iadeyi verdiğinize bağlıdır.

Tam ile orantılı bir para kararıdır

Google Play'de tam iade mevcut dönemin tamamını geri verir, yani o dönemde zaten üstlendiğiniz her masrafı korurken tüm dönemin gelirini kaybedersiniz. Orantılı iade yalnızca kullanılmamış dilimi geri verir, yani müşterinin gerçekten sahip olduğu bölümün gelirini korursunuz. Bir müşteri 10 dolarlık bir planda aylık dönemin yüzde 60'ında ise, tam iade size tam 10 dolara mal olur ve orantılı iade size yaklaşık 4 dolara, kullanılmamış yüzde 40'a mal olur. Apple bir abonelik iadesinin boyutunu belirlerken kendi tarafında aynı geçen süre mantığını uygular.

İade türüMüşteri neyi geri alırNeyi elde tutarsınız
Tam iadeMevcut dönemin tamamı, 10.00Bu dönemden hiçbir şey
Orantılı iadeKullanılmamış yüzde 40, yaklaşık 4.00Kullanılmış yüzde 60, yaklaşık 6.00

Asla geri gelmeyen masraflar

Hangi iadeyi verirseniz verin, o dönemin sonraki masrafları gitmiştir. Ödediğiniz bir model API çağrısı, işlediğiniz bir video, sağladığınız depolama, zaten gönderdiğiniz bir içerik üreticisi ödemesi, abonelik iadesi netleştiğinde bunların hiçbiri geri dönmez. İadenin boyutunu müşterinin ne kadar önce abone olduğuna göre değil, gerçekte ne kadar kullandığına göre belirleyin, çünkü geçen süre bir masraf değildir ve hiçbir mağaza onu öyle görmez. Ve August 3, 2026 sonrasında, bir Google Play abonelik ücreti sizin verdiğiniz bir iade yerine bir banka ters ibrazıyla sonuçlanırsa, önce vereceğiniz bir iadenin önlediği banka ters ibraz ücretini de siz üstlenirsiniz.

Abonelik iadeleri birinin başında beklemesine gerek kalmadan nasıl ele alınır

Bunların hiçbiri birinin bir paneli okumasını beklememelidir. Bildirimler her saatte gelir ve erişim ertesi sabah değil, bir iade geldiği anda değişmelidir.

Sonucu okuyun ve her iki mağazada erişimi iptal edin

App Store'da REFUND, REFUND_DECLINED ve REFUND_REVERSED bildirimlerini dinleyin ve erişimi otomatik olarak sonlandırmak ya da geri yüklemek için revocationDate ve autoRenewStatus'u kullanın. Google Play'de SUBSCRIPTION_REVOKED ve iptal edilmiş satın alma sinyallerini dinleyin ve aynısını yapın. RefundHalt'ın sizin için çalıştırdığı tesisat budur: bildirim girer, hesap eşleştirilir, erişim değiştirilir, döngüde hiç kimse yoktur.

Anlaşmazlıktan önce kanıtı hazır tutun

Girdinizi gerçekten isteyen dar pencereler, Apple'ın tüketilebilir ürünlerdeki 12 saatlik CONSUMPTION_REQUEST'i ve Google Play'in 24 saatlik ters ibraz incelemesi, yalnızca kanıt zaten varsa işe yarar. Her satın almaya bir hesap tanımlayıcısı ekleyin, Apple'da bir appAccountToken UUID'si ve Google Play'de 64 characters ya da daha kısa hashlenmiş bir setObfuscatedAccountId, ve her ödenen dönemin neyi teslim ettiğini kaydedin. O zaman bir jeton geldiğinde dava zaten kurulmuştur ve pencere içinde yanıt vermek bir telaş değil, bir makinenin işidir.

Sık sorulan sorular

Bir aboneliği iade etmek tek seferlik bir satın almayı iade etmekten farklı mıdır?
Evet. Tek seferlik bir satın alma, geri verdiğiniz tek bir sipariştir. Bir abonelik, canlı bir erişim hakkına sahip bir sipariş zinciridir, dolayısıyla bir abonelik iadesi bir faturalandırma dönemi üzerinde işlem yapar ve ayrıca aboneliğin çalışmaya devam edip etmeyeceğine karar verir. Hem App Store'da hem de Google Play'de bir abonelik siparişini iade etmek aboneliği iptal eder ve erişimi sonlandırır ve genellikle tüm dönemi ya da yalnızca kullanılmamış kısmı geri vermek arasında seçim yapabilirsiniz.
Bir geliştirici bir App Store abonelik iadesini doğrudan verebilir mi?
Hayır. App Store abonelik iadelerine Apple karar verir. Müşteri bir iadeyi reportaproblem.apple.com üzerinden ister, Apple karar verir ve siz sonucu bir REFUND, REFUND_DECLINED veya REFUND_REVERSED bildirimiyle öğrenirsiniz. Sunabileceğiniz tek girdi, GRANT_PRORATED gibi bir refundPreference'tır ve Apple bunu bir karar değil, bir tercih olarak görür.
Google Play'de orantılı bir abonelik iadesini nasıl verirsiniz?
purchases.subscriptionsv2.revoke'i revocationContext proratedRefund olarak ayarlanmış şekilde çağırın. Google Play aboneliği sonlandırır ve yalnızca kalan, kullanılmamış hak süresini geri verir, ardından bir SUBSCRIPTION_REVOKED bildirimi gönderir. Tüm mevcut dönemi geri vermek için bunun yerine fullRefund geçirin. Daha eski iptal yöntemi yalnızca tam iade yapabiliyordu.
Google Play iademiz neden aboneliği iptal etmedi?
Çünkü zincirdeki daha eski bir siparişi iade ettiniz. Google Play'de en son siparişi iade etmek aboneliği hemen kaldırır ve gelecekteki yenilemeleri iptal eder, ama daha eski bir siparişi iade etmek o dönemi iade ederken abonelik etkin kalır. orders.refund'daki revoke parametresi yalnızca sipariş en sonuncu olduğunda iptal eder, dolayısıyla etkin bir aboneliği sonlandırmak için purchases.subscriptionsv2.revoke kullanın.
Bir abonelik siparişini ne kadar geriye dönük iade edebilirsiniz?
Google Play'de üç yıldan eski siparişler iade edilemez. Kısmi iadeler yalnızca March 2018 sonrası verilen siparişlerde işe yarar ve asla ücretli uygulamalarda değil ve bir kez verilen hiçbir iade geri alınamaz. App Store'da Apple müşteri iade isteklerini satın almadan itibaren 90 days'e kadar kabul eder ve her birine kendisi karar verir.

Kaynaklar ve ek okumalar

RefundHalt

App Store ve Google Play için geri ödeme otomatik pilotu

Okumaya devam edin

Bir sonraki geri ödeme talebi şimdiden yolda.

İtiraz edemediğiniz bir geri ödemeyle ilgili başka bir destek e-postasını okumak için gereken sürede RefundHalt'ı kurun.