İçeriğe geç
Hata normalizasyonu

Banka ve Sağlayıcı Hata Kodlarını Tahmin Etmeye Son

iyzico '12', Garanti '0051', PayTR '1004' dönerken Better Payment hepsini INSUFFICIENT_FUNDS koduna normalize eder. Kullanıcınıza her zaman doğru ve yerelleştirilmiş mesajı gösterin.

Hata normalizasyonu
  • iyzico10051
  • akbank51
  • paytrfailed_reason_code 6
  • ziraatProcReturnCode 51
error.code === "INSUFFICIENT_FUNDS"
Avantajlar

Bu özellik neden işinize yarar?

1

Ortak Hata Enum'ları

INSUFFICIENT_FUNDS, EXPIRED_CARD, INVALID_CVV, 3D_AUTH_FAILED ve NETWORK_ERROR.

2

Kullanıcı Dostu Açıklamalar

Müşterinize teknik hata kodları yerine ne yapması gerektiğini anlatan Türkçe ve İngilizce mesajlar.

3

Ham Sağlayıcı Yanıtına Erişim

Hata normalize edilirken sağlayıcının orijinal rawError nesnesi de hata içinde korunur.

4

Çift Çekim Engelleme

Ağ zaman aşımlarında (timeout) asla körü körüne yeniden deneme yapılmaz; durum NETWORK_ERROR döner.

Basit, anlaşılır ve doğrudan.

Better Payment olmadan

Her bankanın farklı hata kodlarını excel tablolarından arayıp if/else zincirleri yazmak.

Better Payment ile

Standart TypeScript enum'ları ile öngörülebilir ve güvenli hata yakalama blokları.

error-handling.tsTypeScript
try {
  await payment.createPayment({ ... });
} catch (error) {
  if (error instanceof BetterPaymentError) {
    switch (error.code) {
      case "INSUFFICIENT_FUNDS":
        return showToast("Kartınızın bakiyesi yetersiz.");
      case "EXPIRED_CARD":
        return showToast("Kartınızın son kullanma tarihi geçmiş.");
      case "3D_AUTH_FAILED":
        return showToast("SMS doğrulama kodu hatalı veya onaylanmadı.");
      default:
        return showToast("Ödeme alınamadı: " + error.message);
    }
  }
}