Seri iade istismarı size iki kez pahalıya patlar, işte mağazaların karşılık vermenize izin verdiği yol
Tekrar tekrar iade alan müşteri bir kaza değildir. İade istismarı size hem geri verdiğiniz parayı hem de daha önce harcadığınız işlem gücünü kaybettirir, ve her iki mağaza da bu deseni birbirine bağlamanız için bir kimlik sinyali verir, Apple'ın appAccountToken değeri ve Google'ın gizlenmiş hesap kimliği.

Önemli noktalar
- Bir geliştiricinin iade istismarına karşı kanıt sunmasına izin veren yalnızca iki iade akışı vardır: Apple'ın 12 hours penceresi olan CONSUMPTION_REQUEST akışı ve Google Play'in Review Refund API üzerinden 24 hours penceresi olan ters ibraz incelemesi.
- Apple'ın appAccountToken değeri, sizin ürettiğiniz ve bir satın almaya iliştirdiğiniz bir UUID değeridir, ve StoreKit bunu ortaya çıkan işleme bağlar, böylece sunucunuz her iadeyi onu yapan tam hesaba geri bağlayabilir.
- Google Play'in gizlenmiş hesap kimliği, en fazla 64 characters ile sınırlı, hash'lenmiş bir dizedir, ve Google bunu, kısa bir pencerede tek bir hesap üzerinden birçok cihazın satın alma yapması gibi düzensiz etkinlikleri tespit etmek için kendisi kullanır.
- Google'ın gizlenmiş hesap kimliğinde açık metin kişisel veri saklamak satın almalarınızı engelletir, bu yüzden alan şifrelenmiş bir değer veya tek yönlü bir hash olmalı, asla ham bir email olmamalıdır.
- Google Play'in voidedReason alanı, friendly_fraud ve fraud değerlerini sıradan bir remorse iadesinden farklı nedenler olarak işaretler, bu da tekrar eden istismarcıları otomatik bir iade et ve unut yolu yerine bir inceleme kuyruğuna yönlendirmenizi sağlar.
- Google, 2022 yılında $2 billion doların üzerinde hileli ve istismarcı işlemi engellediğini söylüyor, ve o sistemi besleyen kimlik alanları yalnızca onları her satın almada doldurursanız çalışır.
- Erişimini koruyan her iade edilmiş satın alma, zaten geri verdiğiniz para üzerinden ödemeye devam ettiğiniz işlem gücü, depolama ve API harcamasıdır, ve seri iadeci bu faturayı kasıtlı olarak katlar.
Tek bir iade iş yapmanın bir maliyetidir. Aynı hesabın, her seferinde satın aldığını kullandıktan sonra dördüncü kez iade alması iade istismarıdır, ve bu yalnızca her satın alma sizin kontrol ettiğiniz bir kimlik taşırsa görebileceğiniz bir desendir. Apple ve Google'ın ikisi de size bu kimliği verir, ve ikisi de bir iade ya da ters ibraz kararlaştırılmadan önce onu mağazaya sunmanız için dar bir pencere verir. Pencereyi kaçırın ya da kimliği hiç iliştirmeyin, ve bir seri iadeci tam olarak ilk kez memnun olmayan bir müşteri gibi görünür. İşte onları nasıl ayırt edeceğiniz ve bu farkın parasal olarak neye değdiği.
İade istismarı neden bir iade sorunu değil, bir kimlik sorunudur
İadeye mağaza karar verir. Bir müşterinin talep etmesini engelleyemezsiniz, ve çoğu akışta mağazanın onaylamasını da engelleyemezsiniz. Yapabileceğiniz şey, belirli bir hesabın bunu daha önce yapıp yapmadığına ve satın aldığı içeriğin gerçekten teslim edilip kullanılıp kullanılmadığına karar vermektir. Bunların ikisi de kimlikle ilgili sorulardır: bu işlemin arkasında hangi kullanıcınız var ve geçmişi nedir. Satın almalarınız kendi kullanıcı kayıtlarınıza geri işaret eden sabit bir tanımlayıcı taşımıyorsa, iki soruyu da yanıtlayamazsınız, ve her iade bağlamsız gelir.
Asıl boşluk budur. İade mekaniği politikayla sabittir. Ona getirdiğiniz kanıt tamamen sizin inşa etmenize kalmıştır, ve iade anında değil, satın alma anında başlar.
Kanıtın sonucu değiştirdiği iki pencere
Gönderdiğiniz herhangi bir şeyin bir kararı etkileyebileceği tam olarak iki akış vardır. Apple'ın CONSUMPTION_REQUEST akışı, bir müşteri tüketilebilir bir üründe ya da otomatik yenilenen bir abonelikte iade istediğinde tetiklenir, ve yanıt vermek için 12 hours süreniz vardır. Google Play'in ters ibraz incelemesi, bir kullanıcı bir ücreti bankasıyla itiraz ettiğinde tetiklenir, ve Review Refund API üzerinden yanıt vermek için 24 hours süreniz vardır. Diğer her iade, 48-hour Play kendi kendine iadesi, destek tarafından verilen bir iade, onaylanmamış satın alma otomatik iadesi, siz olmadan kararlaştırılır.
Bu kanıt kanallarının ikisi de, işlem zaten sizin tanımlayıcınızı taşıdığında çok daha güçlüdür. Apple'ın tüketim bilgisi, hesabın geçmişi ve harcamasıyla birlikte appAccountToken değerini içerebilir, ve Google'ın incelemesi, satın almadan beri izlediği gizlenmiş hesap kimliğine dayanabilir. Tanımlayıcısı olmayan bir hesap, sunulacak geçmişi olmayan bir hesaptır.
İki kimlik alanı, yan yana
Apple ve Google aynı sorunu neredeyse aynı şekilde, farklı isimler ve farklı kurallarla çözdü. İkisi de bir satın almayı, kendi kullanıcı kaydınıza geri işaret eden bir değerle damgalamanıza izin verir. Hiçbiri varsayılan olarak açık değildir. İkisi de onları satın alma anında ayarlamazsanız işe yaramaz.
Apple: appAccountToken
appAccountToken, bir satın alma başladığında ürettiğiniz ve ilettiğiniz bir UUID değeridir. StoreKit onu ortaya çıkan işlemle ilişkilendirir, ve o, sunucunuzun doğruladığı işlem verisinde ve bir CONSUMPTION_REQUEST sırasında geri gönderdiğiniz tüketim bilgisinde görünür. Sizin değeriniz olduğu için, bir mağaza işlemini email ya da isim karışmadan doğrudan veritabanınızdaki hesaba eşler. Gerçek bir UUID olmak zorundadır, ve başka herhangi bir şey reddedilir. Apple daha sonra, tokeni geçmiş işlemlere iliştiren ya da güncelleyen bir Set App Account Token uç noktası ekledi, buna teklif kodu kullanımı gibi uygulamanızın dışında yapılan satın almalar da dahildir.
Google Play: gizlenmiş hesap kimliği
Google'ın eşdeğeri setObfuscatedAccountId değeridir, satın alan hesaba bağlı isteğe bağlı bir dizedir. Google'ın kendi belgeleri amacı konusunda açıktır: Google Play bunu, kısa bir zaman diliminde aynı hesap üzerinden birçok cihazın satın alma yapması gibi düzensiz etkinlikleri tespit etmek ve bazı hileli işlemleri tamamlanmadan önce engellemek için kullanır. 64 characters ile sınırlıdır, ve açık metin kişisel veri taşımamalıdır. Oraya ham bir email saklayın, ve Google satın almayı doğrudan engeller, çünkü alan şifrelenmiş bir değer ya da tek yönlü bir hash bekler. Bir hesabın birden çok profil tuttuğu uygulamalar için kardeş bir alan, setObfuscatedProfileId, vardır.
| Alan | Mağaza | Tür ve sınır | Ayarlayan | Varsayılan | Mağaza onunla ne yapar |
|---|---|---|---|---|---|
| appAccountToken | Apple | UUID | Siz, satın almada | Ayarlı değil | İşlemi kullanıcınıza bağlar, işlem ve tüketim verisinde döndürülür |
| obfuscatedAccountId | Google Play | Hash'lenmiş dize, en fazla 64 karakter | Siz, satın almada | Ayarlı değil | Düzensiz etkinliği tespit eder ve bazı hileleri tamamlanmadan engeller |
Bir seri istismarcının iadesi gerçekte neye mal olur
İadenin kendisi faturanın en küçük parçasıdır. Bir mağaza bir iade onayladığında, geliri geri verirsiniz, ve o kadarı defterde görünür. İade satırında olmayan şey, artık ücretsiz olan ürünü teslim etmek için harcadığınız her şeydir.
Gerçek iş tetikleyen bir tüketilebilir ürünü hayal edin: bir görüntü üretimi, bir model sağlayıcısına yapılan bir dizi API çağrısı, bir video dışa aktarımı, bir içerik üreticisine yapılan bir ödeme. Müşteri onu kullandığı anda o işlem gücü için ödediniz. İade fiyatı geri çeker, ama sağlayıcı faturasını geri çekmez. Bir seri iadeci, içeriğin iadeden sağ çıktığını öğrenmiş biridir, bu yüzden döngüyü yeniden çalıştırır: satın al, tüket, iade al, tekrarla. Her döngüde teslim maliyetini ikinci kez yersiniz.
Bir de mağazanın kendi maliyet kaydırması var. August 3 2026 tarihinden itibaren Google Play, o tarihten sonra verilen siparişler için satın alma fiyatını ve bankanın ters ibraz ücretlerini geliştiriciye kaydırıyor. Eskiden çoğunlukla Google'ın sorunu olan bir ters ibraz, sizin geliriniz artı bir ücret haline gelir, ve tekrar eden bir itirazcı bu sayıyı her seferinde yükseltir. Kimlik alanları, 24 hours penceresi içinde meşru olmayan bir itiraza karşı çıkmak için Review Refund API'ye kanıt beslemenizi sağlayan şeydir.
Google ölçeği açıkça ifade ediyor: 2022 yılında $2 billion doların üzerinde hileli ve istismarcı işlemi engellediğini söylüyor. O sayı, sinyaller, aralarında gizlenmiş hesap kimliği de olmak üzere, doldurulduğu için var. Satın almaları boş kimlik alanlarıyla gönderen bir uygulama, o korumadan feragat eder.

Mağaza karar vermeden önce tekrar eden iadecileri nasıl yakalarsınız
Her satın almayı sahip olduğunuz bir kimlikle etiketleyin
Her StoreKit satın almasında appAccountToken değerini ve her Play Billing satın almasında setObfuscatedAccountId değerini, ikisini de kendi kullanıcı kaydınızdan üreterek ayarlayın. Apple'da hesaba eşlenmiş gerçek bir UUID kullanın. Google'da hesap anahtarını hash'leyin, böylece hiçbir kişisel veri açık metin olarak yolculuk etmez. Bunu satın alma anında yapın, çünkü Google'da bu, sonradan geri kazanamayacağınız tek adımdır.
O kimlik üzerinde anahtarlanan bir defter tutun
Her satın almayı, teslimatı, tüketim olayını ve iadeyi tanımlayıcıya karşı saklayın. Bir CONSUMPTION_REQUEST ya da bir ters ibraz incelemesi geldiğinde, hesabın tam geçmişi, önceki iadeler dahil, bir sorgu uzaklıktadır. Apple'ın tüketim bilgisinin tam olarak bunun için açık alanları vardır: consumptionStatus, deliveryStatus, playTime, accountTenure, lifetimeDollarsPurchased ve sizin refundPreference değeriniz.
voidedReason değerini okuyun ve istismarcıları farklı yönlendirin
Bir Google satın alması iptal edildiğinde, voidedReason alanı size nedenini söyler, ve friendly_fraud ile fraud, sıradan bir remorse iadesinden ayrı değerlerdir. Bunları, ilk kez yapılan bir iade ile aynı otomatik yola değil, bir inceleme kuyruğuna ve daha katı bir politikaya yönlendirin. Google'ın kendi yönlendirmesi çok vuruşlu bir modeldir: ilk suçluyu uyarın, tekrar edenlere daha sert davranın, ve devam eden bir hesap için satın almaları devre dışı bırakın.
Pencereye her seferinde yanıt verin
Kanıt yalnızca iki pencere içinde sayılır. CONSUMPTION_REQUEST yanıtını 12 hours içinde rahatça tetiklenecek şekilde, ters ibraz incelemesini de 24 saat içinde tetiklenecek şekilde otomatikleştirin. Geç sunduğunuz kusursuz bir geçmiş, mağazanın asla okumadığı bir geçmiştir.
| Yakalamak istediğiniz sinyal | Nerede bulunur | Onu ortaya çıkaran alan ya da akış |
|---|---|---|
| Aynı hesap, birçok cihaz, kısa pencere | Google Play | Gizlenmiş hesap kimliği düzensiz etkinlik tespiti |
| Bu hesap daha önce iade almış | Sizin defteriniz | appAccountToken ya da gizlenmiş hesap kimliği üzerinde anahtarlanan geçmiş |
| İçerik teslim edildi ve tüketildi | Apple | Tüketim bilgisindeki deliveryStatus ve consumptionStatus |
| Bir itiraz aslında birinci taraf dolandırıcılığı | Google Play | voidedReason değeri friendly_fraud |
Mağazaların sizin için yapacağı ve yapmayacağı şeyler
İş bölümü konusunda kesin olmakta fayda var, çünkü mağazaların istismarla ilgilendiğini varsaymak kolaydır, ve ilgilenmedikleri zaman çoğunlukla size söylemezler. Google, bir satın alma tamamlanmadan önce bazı dolandırıcılıkları engellemek için gizlenmiş hesap kimliğini etkin biçimde kullanır, ve sistemleri büyük bir kısmı platform düzeyinde yakalar. Apple her iadeye kendisi karar verir ve tüketim bilginizi bir girdi olarak ele alır, asla bir oy olarak değil. Hiçbir mağaza sizin için istismarcı listenizi tutmaz, iade edilmiş bir tüketilebilir ürünü bakiyenizden düşmez, ya da tekrar eden bir iadeciye sizin adınıza hayır demez. Kimlik, mağazanın kenarlarda üzerine harekete geçeceği ve sizin geri kalan her yerde üzerine harekete geçeceğiniz şeydir.
RefundHalt'ın her şeyi satın alma kimliği üzerinde anahtarlamasının nedeni de budur: aynı hesap için bir iade, bir ters ibraz incelemesi ve bir tüketim isteği tek bir geçmişte çözülür, böylece bir seri iadeci, zaten ödediğiniz dördüncü faturadan sonra değil, tekrar ettikleri ilk seferde bir desen olarak ortaya çıkar.
Sık sorulan sorular
- Bir uygulamada iade istismarı nedir?
- İade istismarı, bir müşterinin satın aldığını aldıktan ve kullandıktan sonra tekrar tekrar iade talep etmesidir, böylece parayı geri alırken içeriği ya da faydayı elinde tutar. Uygulama mağazalarında genellikle aynı hesabın tüketilebilir ürünleri ya da abonelikleri tekrar tekrar iade etmesi olarak, ya da meşru bir ücretin bankayla itiraz edildiği friendly fraud olarak ortaya çıkar.
- Bir uygulama içi satın almayı belirli bir kullanıcıya nasıl bağlarım?
- Apple'da bir UUID üretin ve satın alma başladığında onu appAccountToken olarak iletin, StoreKit onu işleme bağlar ve işlem ile tüketim verisinde döndürür. Google Play'de, hesaba bağlı hash'lenmiş bir değerle setObfuscatedAccountId çağırın. İkisi de bir mağaza işlemini kişisel veriyi açığa çıkarmadan kendi kullanıcı kaydınıza eşler.
- Apple ya da Google bana bir hesabın tekrar eden bir iadeci olduğunu söyleyebilir mi?
- Doğrudan değil. Google, düzensiz etkinliği tespit etmek ve satın almadan önce bazı dolandırıcılıkları engellemek için gizlenmiş hesap kimliğini kullanır, ve Apple bir tüketim isteği sırasında hesap geçmişi sunmanıza izin verir, ama hiçbir mağaza size tekrar eden iadecilerin bir listesini vermez. Bunu, kimlik alanları üzerinde anahtarlanan kendi defterinizden kendiniz oluşturursunuz.
- Hesap kimliğini ayarladığımda Google satın almamı neden engelliyor?
- Çünkü gizlenmiş hesap kimliği açık metin kişisel veri içermemelidir. İçinde ham bir email adresi gibi bir şey saklamak, Google Play'in satın almayı engellemesine neden olur. Şifrelenmiş bir değer ya da tek yönlü bir hash kullanın, ve 64 characters sınırı içinde tutun.
- Tüketim isteği üzerinden iadelere itiraz etmek istismarı durdurur mu?
- Onu azaltabilir. CONSUMPTION_REQUEST, kanıtınızın mağaza karar vermeden önce ona ulaştığı yalnızca iki akıştan biridir, ve hesap geçmişi artı teslimat ve tüketim verisi, Apple'ın iade istismarını ve friendly fraud olayını tespit etmesine yardımcı olur. Yine de bir engelleme değildir. Apple yine de karar verir, ve itiraz edilemeyen akışlar üzerinden gelen istismar etkilenmez.
Kaynaklar ve ek okumalar
- Apple: appAccountToken (App Store Server API)
- Apple: ConsumptionRequest (App Store Server API)
- Android: BillingFlowParams.Builder.setObfuscatedAccountId
- Android: Fight fraud and abuse (Play Billing security)
- Google Play Developer API: Voided Purchases
- Google Play Billing: Provide refund and chargeback suggestions (Review Refund API)
- Android Developers Blog: Play Commerce prevented over $2 billion in fraudulent and abusive transactions in 2022
- Google Play Console Help: Updates to refund protection and chargeback cost responsibility
RefundHalt
App Store ve Google Play için geri ödeme otomatik pilotu
Okumaya devam edin
The refunds you cannot contest: what Apple and Google decide without asking you
Only two refund flows ever ask for your evidence: Apple's consumption request and Google Play's chargeback review. Everything else, the 48-hour Play refund, support refunds, voided purchases, unacknowledged trials, is decided without you. Here is the full map, what you can prevent, and what you can only record.
Apple's CONSUMPTION_REQUEST, explained: the 12 hours that decide your refund
When a customer asks Apple for a refund, Apple asks you first. Here's exactly what the CONSUMPTION_REQUEST notification contains, what Apple expects back, how to answer one end to end, and why most developers silently forfeit.