Ana içeriğe geç

Hata Yönetimi

API'den dönebilecek hatalar ve bunların nasıl yönetileceği.

HTTP Hata Kodları

KodAnlamıNe Yapmalı?
400Geçersiz istekİstek gövdesini kontrol edin
401YetkisizAPI key'inizi kontrol edin
404BulunamadıSession ID'nin doğru ve geçerli olduğunu kontrol edin
422Validasyon hatasıZorunlu alanları kontrol edin
429Rate limitBir süre bekleyin, istekleri azaltın
500Sunucu hatasıDestek ekibiyle iletişime geçin

Hata Yanıt Formatı

{
"detail": "Session not found or expired"
}

Ödeme Hataları

Ödeme işleminde dönebilecek hatalar:

{
"success": false,
"order_id": "ORD-xxx",
"status": "error",
"message": "Yetersiz bakiye"
}

Yaygın Hatalar ve Çözümleri

"Session not found or expired"

  • Session ID doğru mu kontrol edin
  • Session oluşturulduktan sonra 1 saat geçmişse yeni session oluşturun

"Invalid merchant API key"

  • API key'in doğru olduğundan emin olun
  • Odoo'da merchant'ın aktif olduğunu kontrol edin

CORS Hatası

  • API'nin CORS ayarlarında sitenizin domain'i ekli olmalı
  • http ve https fark eder, doğru protokolü kullandığınızdan emin olun

3D Secure Timeout

  • Müşteri 3D Secure sayfasında çok beklemiş olabilir
  • Yeni bir ödeme denemesi başlatın

Retry Stratejisi

async function payWithRetry(data, maxRetries = 3) {
for (let i = 0; i < maxRetries; i++) {
try {
const result = await makePayment(data);
return result;
} catch (error) {
if (error.response?.status === 429) {
// Rate limit - bekle ve tekrar dene
await new Promise(r => setTimeout(r, 2000 * (i + 1)));
continue;
}
if (error.response?.status >= 500) {
// Sunucu hatası - bekle ve tekrar dene
await new Promise(r => setTimeout(r, 1000 * (i + 1)));
continue;
}
// Diğer hatalar - tekrar deneme
throw error;
}
}
throw new Error("Maximum retry limit reached");
}