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.
- iyzico10051
- akbank51
- paytrfailed_reason_code 6
- ziraatProcReturnCode 51
Bu özellik neden işinize yarar?
Ortak Hata Enum'ları
INSUFFICIENT_FUNDS, EXPIRED_CARD, INVALID_CVV, 3D_AUTH_FAILED ve NETWORK_ERROR.
Kullanıcı Dostu Açıklamalar
Müşterinize teknik hata kodları yerine ne yapması gerektiğini anlatan Türkçe ve İngilizce mesajlar.
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.
Ç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ı.
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);
}
}
}