Siparişi ilk request_id ve değişmeyen parametrelerle yeniden gönderin. Bağlantı zaman aşımına uğradı diye yeni anahtar üretmeyin. NotPanel’de yeniden deneme, ilk siparişi replayed: true ile döndürür; ilk deneme hiç ulaşmadıysa siparişi oluşturur.
Müşteriniz tek satın alma yaptı. Panele gönderimden sonra yanıt kaybolursa sonraki adım bu satın almayı bulmaktır; belirsizlik yeni satın alma gerekçesi değildir.
Zaman aşımı üç ihtimal bırakır
- İstek ulaşmadı ve sipariş kabul edilmedi.
- Sipariş kabul edildi, fakat yanıt kayboldu.
- İstek bağlantı koparken ulaştı; aynı request_id ile yeniden deneme, yukarıdaki iki durumdan hangisinin yaşandığını netleştirir.
Zaman aşımı bu durumları ayırt etmez. HTTP tek başına sipariş oluşturan POST isteğini tekrar etmeyi güvenli kılmaz; korumayı API sözleşmesi sağlar. Bkz. RFC 9110, §9.2.2.
NotPanel yeniden denemeyi nasıl tanır?
request_id isteğe bağlıdır, boş olamaz ve en fazla 128 karakter içerir. idempotency_key uyumluluk takma adıdır; ikisi birlikte verilirse request_id kullanılır. Aynı hesap, anahtar ve tüm sipariş parametrelerini koruyun. Kabul edilen sipariş ilk ID’sini döndürür; aynı anahtarın farklı parametrelerle kullanılması reddedilir.
İki alan da yoksa NotPanel aynı hesaptaki özdeş add isteklerini 60 saniye korur: bu süre içindeki tekrar ikinci bir sipariş açmaz, ilk siparişi döndürür. Daha geç tekrarlar için bu kısa süreye güvenmeyin.
Bu süre içinde bilinçli olarak verilen iki özdeş satın alma da tek istek sayılır. Hemen iki ayrı sipariş oluşturmak için her yeni satın almaya ayrı request_id verin. Belirsiz bir sonucu aşmak amacıyla anahtarı değiştirmeyin.
Sipariş oluşturma parametreleri ve yanıtları
Zaman aşımından sonra ilk request_id değerini koruyun.
Aynı anahtar ve değişmeyen sipariş bilgileriyle tekrar deneyin.
Yeniden denemenin döndürdüğü ilk sipariş ID’sini kaydedin.
Göndermeden önce satın almayı tanımlayın
8427 numaralı satın almanın bir satırı için request_id ve tüm parametreleri ilk denemeden önce kaydedin. Şema yer tutucular ve satır sonları kullanır; gerçek formu normal biçimde kodlayın. Gerçek değerleri yalnızca ücretli sipariş vermek istediğinizde gönderin.
POST https://notpanel.com/api/v3
Content-Type: application/x-www-form-urlencoded
key=YOUR_API_KEY
&action=add
&service=YOUR_SERVICE_ID
&link=YOUR_TARGET_URL
&quantity=YOUR_VALID_QUANTITY
&request_id=checkout-8427-line-1Zaman aşımından sonra checkout-8427-line-1 değerini aynı hizmet, hedef, miktar ve isteğe bağlı alanlarla gönderin; uygulama yeniden başlasa da bunu koruyun. Dönen sipariş ID’sini kaydedip status için kullanın. request_id oluşturma isteğini tanımlar, durum sorgusunda sipariş ID’sinin yerine geçmez. Siparişi request_id ile bulmak için order_details kullanın.
Yanıtın tamamını okuyun
- Zaman aşımı veya belirsiz yanıt
- Anahtarı ve parametreleri koruyun. Deneme sayısını sınırlayın, aralık bırakın ve Retry-After değerine uyun. Denemeler bitince çözülmemiş kaydı saklayın.
- INTERNAL_ERROR, API_DISABLED veya ORDER_PLACEMENT_PAUSED (retryable: true)
- Bekleyin, varsa Retry-After değerine uyun ve aynı add isteğini aynı request_id ile gönderin. İlk siparişi ya da yalnızca bir yeni sipariş alırsınız. Başka anahtarla yerine yeni sipariş açmayın.
- REQUEST_ID_CONFLICT
- Kaydedilen parametreleri karşılaştırın. İlk sipariş için ilk bilgileri geri yükleyin; yeni anahtar yalnızca bilinçli olarak ayrı bir satın alma içindir.
- Doğrulama, kimlik veya istek sınırı hatası
- error_code ve retryable alanlarını okuyun. Verileri veya kimlik bilgilerini düzeltin ve bekleme sürelerine uyun. Her hatayı otomatik tekrarlamayın.
Müşteri siparişlerinden önce kurtarmayı test edin
Kendi test ortamınızda sahte bir API ile başlayın. Gerçek satın alma veya özel NotPanel test anahtarı gerekmez.
- Kabul edilmiş siparişin yanıtını kaybettirin; aynı anahtar ve parametrelerin tekrar kullanıldığını doğrulayın.
- İstemciyi yeniden başlatıp kayıtlı kimliği geri alın.
- Önce yeniden denenebilir bir 500 veya 503, sonra replayed: true içeren tekrar yanıtını taklit edin; tek sipariş ID’si saklanmalı.
- Çakışma veya tekrar edilemeyen hata verin; otomatik denemeler durmalı.
- İki yeni özdeş satın alma için ayrı anahtar üretin. Sonraki gerçek testte istediğiniz bir sipariş kullanın ve siparişle cüzdan kayıtlarını kontrol edin.
Sık sorulan sorular
Zaman aşımı iki kez ücret alındığı anlamına mı gelir?
Hayır. Uygulamanın kullanılabilir yanıt almadığını gösterir. İki ücret olduğu sonucuna varmadan önce bulunan siparişi ve cüzdan kayıtlarını kontrol edin.
request_id zorunlu mu?
Hayır. request_id ve idempotency_key isteğe bağlıdır. Bunlar olmadan aynı hesaptaki özdeş add istekleri 60 saniye korunur. Açık bir anahtar her satın almanın kimliğini belirler.
Her denemede yeni anahtar üretmeli miyim?
Hayır. İlk denemeden önce bir anahtar kaydedip değişmeyen siparişle yeniden kullanın. Yeni satın alma yeni anahtar alır.
request_id ile sipariş bulunabilir mi?
Evet, order_details ile: add isteğini yinelemeden siparişi ve numarasını almak için aynı request_id ile action=order_details gönderin. Hiç sipariş oluşmadıysa yanıt ORDER_NOT_FOUND olur. status işlemi ise yine sipariş numarası ister.
Devam edin: entegrasyon rehberi · webhook ve durum sorguları · hata referansı.



