App Store & Play Store Development

Apple İade Otomasyonu: CONSUMPTION_REQUEST Yanıtları Nasıl Otomatikleştirilir

Bir müşteri Apple'dan iade talep ettiğinde, bir CONSUMPTION_REQUEST'e yanıt vermek için yaklaşık 12 saatiniz olur. İşte akışın nasıl çalıştığı, hangi verilerin gönderilmesi gerektiği ve bunun nasıl otomatikleştirileceği.

6 min read
Apple İade Otomasyonu: CONSUMPTION_REQUEST Yanıtları Nasıl Otomatikleştirilir

Hızlı yanıt: Bir müşteri bir uygulama içi satın alma veya abonelik için Apple'dan iade talep ettiğinde, App Store sunucunuza bir CONSUMPTION_REQUEST bildirimi gönderir ve Send Consumption Information uç noktası üzerinden tüketim verileriyle yanıt vermeniz için size yaklaşık 12 saat verir. Apple bu verileri kararında değerlendirir. Zamanında yanıt vermezseniz Apple sizin girdiniz olmadan karar verir ve haksız iadeler genellikle varsayılan olarak onaylanır. Bu yanıtı otomatikleştirmek, her talebin her seferinde zaman penceresi içinde yanıtlanmasını sağlar.

Kısaca

Ödeme altyapısının sahibi Apple'dır. Birisi uygulamanızda bir abonelik veya uygulama içi satın alma yaptığında, parayı Apple toplar, kendi payını alır ve iadeleri yönetir. Yıllarca geliştiricilerin iade kararlarında hiçbir söz hakkı olmadı.

Bu durum değişti. Apple artık müşterinin satın aldığı şeyi nasıl kullandığına dair yapılandırılmış kanıtlar içeren tüketim bilgisi göndermenize izin veriyor ve bunu iade kararına dahil ediyor. İadeyi kendiniz onaylama veya reddetme hakkınız yok; son kararı hâlâ Apple veriyor. Ancak sessizlik Apple'a değerlendirecek hiçbir şey vermez, iyi hazırlanmış bir yanıt ise ona bağlam sağlar.

İşin püf noktası zamanlama ve tutarlılıktır. Pencere kısadır, öngörülemeyen saatlerde açılır ve bunu gerçek hacimde manuel olarak yapmak imkânsızdır. Apple iade otomasyonunun çözdüğü sorun da tam olarak budur.

Apple'ın iade akışı gerçekte nasıl işliyor

İşte baştan sona sıralama:

  1. Müşteri iade talep eder. reportaproblem.apple.com adresine gider, satın alımı seçer, bir neden belirler ve talebi gönderir.

  2. Apple sunucunuzu bilgilendirir. Uygun satın alımlar için App Store, App Store Server Notifications V2 üzerinden bir CONSUMPTION_REQUEST bildirimi gönderir. Veri paketi, satın alımı tanımlayan imzalı işlem verilerini içerir. Otomatikleştirilmiş iş akışını tetikleyen şey bu app store server notifications'dır.

  3. Tüketim verisiyle yanıt verirsiniz. Orijinal işlem kimliği ve teslimat, kullanım, onay ile iade tercihinizi açıklayan yapılandırılmış bir ConsumptionRequest gövdesiyle Send Consumption Information'ı çağırırsınız. Bu süreçteki en önemli API adımı send consumption information uç noktasıdır.

  4. Apple karar verir. İade karar sistemi, verilerinizi müşterinin geçmişi ve diğer faktörlerle birlikte değerlendirerek bir karar verir.

  5. Sonuçtan haberdar edilirsiniz. Bir REFUND bildirimi iadenin onaylandığı anlamına gelir; bir REFUND_DECLINED bildirimi (StoreKit API üzerinden başlatılan talepler için) ise onaylanmadığı anlamına gelir.

Bir CONSUMPTION_REQUEST ne içerir ve siz ne geri gönderirsiniz

Bildirimin kendisi imzalı işlem bilgilerini ve müşterinin belirttiği nedeni (consumptionRequestReason) taşır. Gerçek iş sizin yanıtınızda gerçekleşir. Apple, aşağıdakiler dahil alanlar içeren yapılandırılmış bir ConsumptionRequest tanımlar:

Alan

Apple'a ne anlattığı

customerConsented

Müşterinin bu verinin paylaşılmasına onay verip vermediği. true olmalıdır, aksi takdirde Apple gönderimi reddeder.

consumptionStatus

Satın alınan içeriğin hiç kullanılmadığını, kısmen kullanıldığını veya tamamen kullanıldığını belirtir.

deliveryStatus

Uygulama içi değerin veya hizmetin gerçekten teslim edilip edilmediğini belirtir.

accountTenure

Müşterinin sizde ne kadar süredir hesabı olduğunu belirtir.

playTime

Müşterinin uygulamada ne kadar zaman geçirdiğini belirtir.

lifetimeDollarsPurchased

Müşterinin uygulamalarınızda toplamda ne kadar harcadığını belirtir.

lifetimeDollarsRefunded

Müşteriye daha önce toplamda ne kadar iade yapıldığını belirtir.

sampleContentProvided

Müşterinin satın almadan önce içeriği deneyip deneyemediğini belirtir.

userStatus

Müşterinin hesabının o anki durumu (aktif, askıya alınmış vb.).

refundPreference

Apple'a önerinizi: belirtilmemiş, onaylanmasını tercih et veya reddedilmesini tercih et.


Her alan bir sinyaldir. Boş bırakılırsa, bu Apple'ın hiçbir zaman alamayacağı bir bağlam demektir. Her alanı ve kabul edilen değerlerini CONSUMPTION_REQUEST Bildirimi Nedir? Alan Alan İnceleme başlıklı içerikte inceliyoruz. Bir apple refund api değerlendiren geliştiricilerin, bu alanların eksiksiz iade iş akışına nasıl uyduğunu da anlaması gerekir.

12 saatlik pencere

Üretim ortamında bir CONSUMPTION_REQUEST'e yanıt vermek için yaklaşık 12 saatiniz var. Bu süreyi kaçırırsanız girdi sağlama şansınızı kaybedersiniz; Apple elindeki bilgilerle karar verir.

Sorun pencerenin uzunluğu değil ne zaman açıldığıdır. İade talepleri mesai saatlerini beklemez. Pencere gece yarısı, hafta sonu veya bir tatil sırasında açılabilir ve manuel bir inceleme kuyruğu, sürekli nöbette birisi olmadan bunu karşılayamaz. Geliştiricilerin itiraz edebilecekleri iadeleri kaybetmesinin en yaygın tek nedeni budur: kötü bir yanıt değil, yanıt vermemektir. Bu konuyu 12 Saatlik Pencere: Geliştiricilerin Çoğu Neden İadeleri Varsayılan Olarak Kaybediyor başlıklı içerikte daha ayrıntılı ele alıyoruz.

Onay gereksinimi bunu atlamayın

Bu, neredeyse herkesin tökezlediği kısımdır ve bu sadece teknik değil, hukuki bir meseledir.

Apple'ın CONSUMPTION_REQUEST'i, müşterinin verilerini paylaşmaya onay verip vermediğini size söylemez. Bu kasıtlıdır Apple, herhangi bir tüketim verisi gönderilmeden önce onayın sunucunuz değil uygulamanız tarafından toplanıp onaylanmasını bekler. API çağrınızda customerConsented'ı true olarak ayarlamalısınız ve geliştirici olarak siz, geçerli bir onay almış olmaktan tek başına sorumlusunuz, çünkü kullanıcıdan topladığınız verileri paylaşan sizsiniz.

Bunu yanlış yaparsanız sadece reddedilen bir gönderim riskiyle kalmaz bir GDPR veya DPDP uyumluluk sorunu riskiyle karşı karşıya kalırsınız. Herhangi bir şeyi otomatikleştirmeden önce onayı uygulamanızın kullanım koşullarında ve satın alma akışında doğru şekilde ele alın. Nerede ve nasıl yapılacağını tam olarak Müşteri Onayı ve Consumption API: Apple Gerçekte Ne İstiyor başlıklı içerikte ele alıyoruz.

Bunu otomatikleştirmek gerçekte ne gerektirir

Kağıt üzerinde, yanıtı otomatikleştirmek bir hafta sonu projesi gibi görünür: bildirimi yakala, alanları doldur, uç noktayı çağır. Üretimde ise bu, sürekli ayakta tutulması gereken bir altyapı parçasıdır ve gerçekte neyin gerektiğini anlamak, "bunu kuracağız" ile "bunu atlayacağız" arasındaki farktır.

Güvenilir, şirket içi bir yanıtlayıcının; Apple'ın imzalı bildirimlerini alıp doğrulaması, bir talep geldiği anda her müşteri için doğru ve o anlık kullanım ve faturalama verilerini çekmesi, bu verileri Apple'ın tam ConsumptionRequest değerlerine eşleştirmesi ve hiç kimse izlemeden, günün her saatinde ~12 saatlik pencere içinde göndermesi gerekir. Bunun üzerine, son tarihe duyarlı yeniden denemelere, hata yönetimine, denetlenebilir günlük kayıtlarına, bir sorun olduğunda bilmenizi sağlayacak izlemeye ve Apple veri paketlerini veya alanlarını her değiştirdiğinde devam eden bakıma ihtiyacı vardır. Bunların hiçbiri ürününüz değildir. Tamamı, uygulamanızın yaptığı işle hiçbir ilgisi olmayan bir iş akışı için süresiz olarak sahip olacağınız bir altyapıdır. (Bildirim katmanını App Store Server Notifications V2 Kurulumu başlıklı içerikte daha ayrıntılı ele alıyoruz.)

Çoğu ekibin sonunda yaptığı hesap budur: mekanikler öğrenilebilir, ancak uyumlu, son tarihe duyarlı bir yanıtlayıcıyı kurmak ve sürekli gözetlemek, uygulamanın kendisine hiçbir fayda sağlamayan kalıcı bir maliyettir. Bu, tam olarak yönetilen bir hizmetin var olma amacı olan, farklılaştırılmamış bir altyapı işidir.

RefundSensor'ın yaptığı tam olarak budur. Tek bir webhook URL'si ile App Store Connect kurulumunuza bağlanır SDK yok, kod değişikliği yok, uygulama yeniden gönderimi yok ardından Apple'ın penceresi içinde her CONSUMPTION_REQUEST'i otomatik olarak yanıtlar, alanları verilerinizden eşleştirir, yeniden denemeleri ve izlemeyi yönetir, Apple'ın değişiklikleriyle güncel kalır ve her sonucu tek bir dashboard'da kaydeder. İyi kurulmuş bir yanıtlayıcının sonucunu, onu kurmadan veya bakımını yapmadan elde edersiniz. Apple refund automation software arayan ekipler için bu, iş akışını şirket içinde sürdürmeye yönetilen bir alternatif sunar.

Yanıt vermek gerçekten iadeleri azaltır mı?

Evet, ancak sonuçlar değişkenlik gösterir ve son kararı her zaman Apple verir. Doğru tüketim verisi göndermek, Apple'ın sistemine daha fazla bağlam sağlar ve tutarlı şekilde yanıt veren geliştiriciler, talepleri yanıtsız bırakan geliştiricilere kıyasla genellikle daha az onaylanan iade görür. Kanıtınızın gerçekten desteklediği durumlarda "reddedilmesini tercih et" önerisini seçmek, Apple'ın değerlendirdiği bir girdi daha sağlar. Bu, büyük ölçekte bir abonelik iadesi iş akışını yönetirken özellikle önemli olabilir.

Otomasyon ne yapabilir, ne yapamaz

Sınırlar konusunda kendinize karşı dürüst olun:

  • Yapamaz belirli bir iadenin reddedileceğini garanti edemez. Her zaman son kararı Apple verir.

  • Yapamaz hiçbir zaman bir CONSUMPTION_REQUEST oluşturmayan iadelere itiraz edemez — her iade bunu oluşturmaz.

  • Yapabilir uygun her talebin, tutarlı ve doğru verilerle pencere içinde yanıtlanmasını sağlayarak, sadece kimse bildirimi görmediği için bir iadeyi kaybetmemenizi garanti eder.

İşte asıl değer bu son noktadadır. Apple'ı geçersiz kılmıyorsunuz her zaman söz söyleme hakkınızı alabildiğinizden emin oluyorsunuz.

Ayrıntılar için Apple'ın kendi materyallerini son referans olarak kabul edin:

Sektörün, geliştiricilere iadelerde söz hakkı kazandırması 15 yıl sürdü. Bunu her zaman kullanın. RefundSensor, Apple CONSUMPTION_REQUEST bildirimlerine pencere içinde otomatik olarak yanıt verir ve Apple ile Google Play için her sonucu takip eder.Ücretsiz başla

Sık sorulan sorular

Bir müşteri, uygun bir uygulama içi satın alma veya abonelik için iade talep ettiğinde Apple'ın sunucunuza gönderdiği bir App Store Server Notification'dır. Bu, Apple'ın iade kararında değerlendireceği tüketim verisiyle yanıt vermeniz için bir işarettir.

Üretim ortamında yaklaşık 12 saat. Zamanında yanıt vermezseniz Apple sizin girdiniz olmadan karar verir ve yanıtsız bırakılan talepler genellikle varsayılan olarak onaylanır.

Hayır. Reddedilmesini öneren bir refundPreference gönderebilirsiniz, ancak son kararı her zaman Apple verir. Otomasyon, her seferinde doğru verilerin gönderilmesini sağlayarak şansınızı artırır, size veto hakkı vermez.

Evet. Uygulamanızda geçerli bir onay almalı ve customerConsented'ı true olarak ayarlamalısınız. Apple bunu sizin için toplamaz ve onay olmadan veri göndermek, sorumlusu sizin olacağınız bir gizlilik uyumluluğu riski oluşturur.

Hayır. CONSUMPTION_REQUEST'e yanıt verme işlemi, App Store Server Notifications ve Consumption API üzerinden sunucu tarafında gerçekleşir. RefundSensor ile App Store Connect'e tek bir webhook URL'si yapıştırırsınız, SDK yok, kod değişikliği yok, yeniden gönderim yok.

Apple sizin verileriniz olmadan devam eder. Bağlam sağlama şansınızı kaybedersiniz ve haksız olanlar da dahil olmak üzere iadelerin onaylanma olasılığı artar.

#apple refund automation#consumption request#send consumption information#app store server notifications#apple refund api#subscription refund
Refund SensorRefund Sensor TeamRefund defense for App Store and Google Play developers