Tüm makaleler
Uygulama rehberi7 dk okuma

Müşterinin makbuzundaki App Store order ID, ne satın aldığını ve Apple'ın parayı çoktan iade edip etmediğini söyler

Apple'ın Look Up Order ID endpoint'i, müşterinin App Store makbuzundaki order ID'yi iade tarihleri ve nedenleri dahil signed transactions'a dönüştürür. İade e-postalarında nasıl kullanılacağı, neyi yapamadığı ve Google Play'in order ID'siyle farkı burada.

Dizüstü bilgisayarda bir gelen kutusu ve satın alma makbuzu gösteren bir iPhone bulunan destek masası, App Store order ID ile başlayan bir iade konuşması

Önemli noktalar

  • Apple, müşteri her uygulama içi satın alma yaptığında order ID içeren bir makbuz e-postası gönderir ve müşteriler order ID'lerini App Store satın alma geçmişlerinde de bulabilir.
  • Apple'ın App Store Server API endpoint'i Look Up Order ID (GET /inApps/v1/lookup/{orderId}), geçerli bir order ID için bir veya daha fazla signed transaction döndürür, böylece destek ekibi tahmin yürütmeden productId ve purchaseDate değerlerini görür.
  • Çözümlenmiş bir App Store transaction'ı revocationDate ve revocationReason taşır, bu yüzden order ID sorgusu Apple'ın satın almayı çoktan iade edip etmediğini gösterir. Neden 1, Apple'ın uygulamadaki gerçek veya algılanan bir sorun nedeniyle iade ettiği anlamına gelir.
  • Order ID uygulamanız için geçerli değilse Look Up Order ID, OrderLookupStatus 1 döndürür ve signedTransactions dizisi içermez. Bu, yanlış bir makbuza ya da başka bir uygulamadan yapılmış bir satın almaya işaret eder.
  • Look Up Order ID, Apple'ın sandbox ortamında kullanılamaz ve production'daki hız sınırı uygulama başına saniyede 10 istektir, saatlik olarak uygulanır.
  • Geliştiriciler App Store iadesi yapamaz. Apple iadelere reportaproblem.apple.com üzerinden karar verir ve geliştiricinin tek kanıt adımı CONSUMPTION_REQUEST'e 12 saat içinde yanıt vermektir.
  • Google Play her tek seferlik satın alma ve her abonelik yenilemesi için bir order ID e-postası gönderir ve geliştirici bu order ID'yi Play Console'da arayıp doğrudan iade edebilir. Play Console, bir iadenin geri alınamayacağını söyler.

Bir iPhone müşterisinin iade e-postasını yanıtlamadan önce Apple makbuzundaki App Store order ID'yi isteyin. Apple'ın Look Up Order ID endpoint'inden geçirilen bu tek dize, hangi ürünü aldıklarını, ne zaman aldıklarını ve Apple'ın çoktan iade edip etmediğini söyler. O olmadan bir ekran görüntüsünü ve bir e-posta adresini veritabanınızla eşleştirip umut edersiniz. Onunla, ödeme yapmış bir müşteriyle mi, Apple'ın parasını çoktan geri verdiği bir müşteriyle mi, yoksa başka bir uygulamanın makbuzunu tutan biriyle mi konuştuğunuzu saniyeler içinde bilirsiniz.

App Store order ID nereden gelir

Apple'ın belgeleri net. Müşteriler uygulamanızda bir veya daha fazla uygulama içi satın alma yaptığında App Store onlara bir makbuz e-postası gönderir ve bu makbuz bir order ID içerir. Müşteriler order ID'lerini App Store'daki satın alma geçmişlerinde de bulabilir. Apple'ın satın alma geçmişi sayfası reportaproblem.apple.com adresinde ve App Store uygulamasında Apps & Purchase History altında yer alır, varsayılan olarak son 90 günü gösterir ve daha eski satın almalar için filtreler sunar.

Yani anahtar zaten müşterinin elinde. Destek formunuzun sadece onu istemesi gerekiyor.

Neden bir e-posta adresi yetmez

Apple, müşterinin Apple Account e-postasını sizinle paylaşmaz. Destek kutunuza yazan adresin ödeme yapan hesapla hiçbir ilgisi olmayabilir. Satın alma sırasında bir appAccountToken ayarladıysanız transaction'ı kendi kullanıcı kimliğinize bağlayabilirsiniz, ama yalnızca kendi tarafınızdan. Order ID ise müşterinin tarafından, tek dokunuşla iletebilecekleri bir makbuzdan çalışır.

Look Up Order ID ne döndürür

Look Up Order ID, App Store Server API'nin bir parçasıdır ve 1.1.0 sürümünden beri kullanılabilir. İmzalı JWT'nizle GET https://api.storekit.apple.com/inApps/v1/lookup/{orderId} çağrısını yaparsınız. Apple, yanıtın müşterinin uygulama içi satın alma geçmişine dayandığını, müşterinin uygulamayı yüklemiş, kaldırmış ya da yeniden yüklemiş olmasından bağımsız olduğunu söyler.

Alan veya davranışApple'ın belgeleri ne diyorDestek bununla ne yapar
OrderLookupStatus 0Geçerli order ID. Yanıt bir veya daha fazla signed transaction içeren bir dizi barındırırHer birini çözümleyin ve satın almayı okuyun
OrderLookupStatus 1Yanıt signedTransactions dizisi içermezOrder ID'yi uygulamanız için geçersiz sayın. Doğru makbuzu isteyin
productId ve purchaseDateApple bunları müşteri desteği için kullanılacak alanlar olarak belirtirNeyin ne zaman satın alındığını doğrulayın
revocationDateApp Store'un transaction'ı iade ettiği veya Family Sharing'den geri aldığı zamanVarsa Apple müşteriye parasını çoktan geri vermiştir
revocationReason0: yanlışlıkla satın alma gibi başka nedenlerle iade. 1: uygulamanızdaki gerçek veya algılanan bir sorun nedeniyle iade1 bir ürün sinyalidir, sadece bir destek talebi değil
appAccountTokenSatın alma sırasında ayarladıysanız sizin belirlediğiniz UUIDSiparişi kendi kullanıcı kaydınızla eşleştirin
price ve currencyApple bunların gelir mutabakatı için kullanılmamasını söylerPara için App Store Connect raporlarını kullanın
SandboxEndpoint sandbox ortamında kullanılamazYalnızca production order ID'leriyle test edin
Hız sınırıUygulama başına saniyede 10 istek, saatlik uygulanır. Aşım, Retry-After başlığıyla HTTP 429 döndürürBir destek masası için bol, toplu taramalar için değil

Bu, uygulamam için geçerli bir makbuz mu?

OrderLookupStatus önce bu soruyu yanıtlar. 1, order ID'nin uygulamanızdaki satın almalarla eşleşmediği anlamına gelir. Yaygın durumlar bir yazım hatası, başka bir uygulamanın makbuzu ya da hiç App Store'dan gelmeyen bir makbuzdur. 1 aldığınızda hiçbir şeyi iade etmeyin, kredi vermeyin ya da geri yüklemeyin. Müşteriden makbuzu tekrar kontrol etmesini isteyin.

Apple bu satın almayı çoktan iade etti mi?

Çözümlenmiş her transaction'da revocationDate'i kontrol edin. Ayarlıysa Apple o satın almayı çoktan iade etmiş ya da Family Sharing'den geri almıştır ve müşteri parasını almıştır. App Store Server Notifications'ınız aynı transaction için bir REFUND göndermiş olmalı, bu yüzden bu aynı zamanda sunucunuzun erişimi gerçekten kaldırdığını doğrulamanın ucuz bir yoludur.

Bir geliştirici, iade talebini yanıtlamadan önce App Store order ID'yi kontrol ederek basılı bir App Store makbuzunu dizüstü bilgisayardaki transaction satırlarıyla karşılaştırıyor

Order ID App Store'da neyi yapamaz

İade yapamaz. Geliştiricilerin App Store iade düğmesi yoktur. İadelere Apple karar verir ve destek makalesi müşterileri reportaproblem.apple.com adresine yönlendirir. Orada "I'd like to", ardından "Request a refund" seçer, bir neden belirler ve öğeyi seçerler. Apple ayrıca bekleyen bir ücretin, müşteri e-posta makbuzunu alana kadar iade edilemeyeceğini söyler.

Söz hakkınız olan tek yer Apple'ın CONSUMPTION_REQUEST'idir. Bir müşteri Apple'dan iade istediğinde Apple bu bildirimi gönderebilir ve Send Consumption Information ile yanıt vermek için 12 saatiniz olur. Order ID sorgusu bir destek aracıdır. O pencereyi açmaz ve uzatmaz.

Sorguyu atladığınızda bir iade e-postası size neye mal olur

Order ID olmadan yapılan destek, paranın sessizce sızdığı yerdir. Üç örüntü tekrar tekrar görülür.

  • İadenin üstüne jest. Apple satın almayı iade eder, müşteri size de yazar ve destek ücretsiz kredi ya da fazladan bir ay verir. Verdiğiniz her kredi, parasını sizin ödediğiniz compute, API calls ve storage üzerinde çalışır, hem de parası çoktan geri ödenmiş bir hesapta.
  • Hiç kaldırılmamış erişim. REFUND işlemeniz başarısız olduysa iade alan müşteri kullanım üretmeye devam eder. Veritabanınız hâlâ aktif derken revocationDate gösteren bir sorgu, üzerinde fiyat etiketi olan bir hata raporudur.
  • Yanlış hesap, yanlış çözüm. Order ID başka birine aitken iletilmiş bir e-postanın arkasındaki hesabı geri yüklemek ya da ona kredi vermek, ücretli hizmeti hiç satın almamış birine verir.

Bunların hiçbirinin zarar vermesi için bir itiraza ya da süre sınırına gerek yok. Bunlar sadece gerçeklere dayanmadan verilmiş destek yanıtlarıdır. Talep başına bir API çağrısı tahmini ortadan kaldırır.

revocationReason 1 bir hata yaptığım anlamına mı gelir?

Şart değil. Apple, neden 1'in satın almayı uygulamanızdaki gerçek veya algılanan bir sorun nedeniyle iade ettiği anlamına geldiğini söyler. Buradaki algılanan kelimesi çok iş görüyor. Ama tek bir sürümden sonra tek bir üründe toplanan neden 1 iadeleri, Apple'ın size verdiği en net ürün geri bildirimidir. Onları sayın.

Google Play'in order ID'si nasıl farklı

Google Play tam tersi çalışır. Google'ın faturalandırma belgeleri, kullanıcıların her tek seferlik ürün satın alımı, ilk abonelik satın alımı ve her yinelenen yenileme için benzersiz bir order ID içeren bir e-posta aldığını ve order ID'yi Play Console'da iadeleri yönetmek için kullanabileceğinizi söyler. Order management'ta order ID ya da kullanıcının tam e-posta adresiyle arama yapar, ardından iadeyi kendiniz yaparsınız.

SoruApp Store order IDGoogle Play order ID
Müşteri onu nerede bulurE-posta makbuzu ve App Store satın alma geçmişiHer satın alma ve her yenileme için e-posta makbuzu
Onu nasıl sorgularsınızApp Store Server API'deki Look Up Order IDPlay Console'da Order management araması
Onunla iade yapabilir misinizHayır. Apple karar verirEvet. Tam iadeler ve uygulama içi satın almalar ile aboneliklerde kısmi iadeler
İade için kanıt penceresiCONSUMPTION_REQUEST, 12 saat, Apple karar verirorders.reviewrefund üzerinden chargeback incelemesi, 24 saat
Bir iade geri alınabilir miSizin tarafınızdan değilHayır. Play Console bir iadenin geri alınamayacağını söyler

Google Play'de order ID daha da önemlidir, çünkü düğmeye basan sizsiniz. Play Console, en son abonelik siparişini iade etmenin aboneliği hemen kaldırdığını ve gelecekteki yenilemeleri iptal ettiğini, daha eski bir siparişi iade etmenin ise yalnızca iade olduğunu ve aboneliği aktif bıraktığını söyler. Kısmi iadeler yalnızca Mart 2018'den sonra verilen siparişler için desteklenir ve ücretli bir uygulamayı kısmen iade edemezsiniz.

Order ID'yi iade destek akışınızın en başına koyun

  • Destek formunuzda order ID'yi tek satırlık bir ipucuyla isteyin: Apple veya Google Play makbuz e-postasında yer alır.
  • iOS'ta Look Up Order ID'yi çağırın, her transaction'ı çözümleyin ve destek ekibine productId, purchaseDate, revocationDate ve revocationReason değerlerini tek ekranda gösterin.
  • OrderLookupStatus 1 ise durun ve doğru makbuzu isteyin. Hiçbir şey vermeyin.
  • revocationDate ayarlıysa erişimin sunucunuzda zaten kaldırıldığını doğrulayın, ardından talebi kapatın. Üstüne jest yok.
  • Ayarlı değilse ve müşteri parasını geri istiyorsa onu reportaproblem.apple.com adresine yönlendirin ve 12 saatlik pencere için CONSUMPTION_REQUEST işleyicinizi hazır tutun. RefundHalt bu talebi Apple'ın istediği tüketim verileriyle yanıtlar.
  • Android'de iade yapmadan önce Play Console'da tam siparişi bulun ve yalnızca iade ile iade ve erişimi kaldırma arasında bilinçli olarak seçim yapın.

Sık sorulan sorular

Bir geliştirici olarak App Store order ID'yi nasıl sorgularım?
App Store Server API endpoint'i Look Up Order ID'yi, GET https://api.storekit.apple.com/inApps/v1/lookup/{orderId}, imzalı JWT'nizle çağırın. Geçerli bir order ID, OrderLookupStatus 0 ve productId, purchaseDate ile varsa iade ayrıntılarını okumak için çözümlediğiniz bir veya daha fazla signed transaction döndürür. Endpoint sandbox'ta kullanılamaz.
Müşteri App Store order ID'sini nerede bulur?
Apple'ın her uygulama içi satın almada gönderdiği e-posta makbuzunda ve reportaproblem.apple.com adresindeki ya da App Store uygulamasındaki Apps & Purchase History altındaki App Store satın alma geçmişinde. Satın alma geçmişi varsayılan olarak son 90 günü gösterir ve daha eski satın almalar için filtreler sunar.
Order ID ile bir App Store satın almasını iade edebilir miyim?
Hayır. Geliştiriciler App Store iadesi yapamaz. Müşteri reportaproblem.apple.com üzerinden talep ettiğinde Apple karar verir. Sizin katkınız, Apple'ın CONSUMPTION_REQUEST'ine Send Consumption Information ile 12 saat içinde yanıt vermektir.
Apple'ın bir satın almayı çoktan iade ettiğini nasıl anlarım?
Order ID'yi sorgulayın ve çözümlenmiş her transaction'da revocationDate'i kontrol edin. Ayarlıysa Apple satın almayı iade etmiş ya da Family Sharing'den geri almıştır. revocationReason 0 yanlışlıkla satın alma gibi başka nedenler, 1 ise uygulamanızdaki gerçek veya algılanan bir sorun anlamına gelir.
OrderLookupStatus 1 ne anlama gelir?
Order ID'nin uygulamanız için geçerli olmadığı ve yanıtta signedTransactions dizisi bulunmadığı anlamına gelir. Genellikle müşteri başka bir uygulamanın makbuzunu göndermiş, kimliği yanlış yazmış ya da App Store'dan olmayan bir makbuz göndermiştir. Herhangi bir şey vermeden önce doğru makbuzu isteyin.

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.