Beta sürümün dokümanını görüntülüyorsunuz.Stabil dokümana geç
Better Payment
Referans

Hata kodları

Başarısız sonuçlardaki sağlayıcıdan bağımsız hata kodları ve müşteriye gösterilebilecek mesaj önerileri.

Beta sürümün dokümanını görüntülüyorsunuz

Beta sürümü kurmak için npm install better-payment@beta. Stabil dokümana geç

Her başarısız sonuçta iki hata alanı vardır:

  • code: bir PaymentErrorCode; tüm sağlayıcılarda aynıdır. Kararlarınızı buna göre verin.
  • errorCode: sağlayıcının ham kodu (iyzico 10051, PayTR failed_reason_code, Akbank VPS-xxxx, ...). Loglayın ve sağlayıcı desteğine iletin.
import { PaymentErrorCode, PaymentStatus } from 'better-payment';

const result = await payment.use('iyzico').createPayment(order);

if (result.status === PaymentStatus.FAILURE) {
  switch (result.code) {
    case PaymentErrorCode.INSUFFICIENT_FUNDS:
    case PaymentErrorCode.LIMIT_EXCEEDED:
      return askForAnotherCard();
    case PaymentErrorCode.INVALID_HASH:
    case PaymentErrorCode.FRAUD_SUSPECTED:
      return flagForReview(result);
    default:
      return showGenericError();
  }
}

code yalnızca başarısız sonuçlarda ve NETWORK_ERROR içeren pending sonuçlarda bulunur; başarılı sonuçlarda yoktur. Henüz eşlenmemiş sağlayıcı kodları UNKNOWN olur ve ham değer errorCode'da kalır.

PaymentErrorCode, better-payment/client'tan da dışa açılır; böylece tarayıcı kodu da ona göre karar verebilir.

Aşağıdaki önerilen mesajlar localizedErrors plugin'inde hazır gelir; plugin bunları müşterinin dilinde errorMessage alanına yazar.

Kodlar

KodAnlamıÖnerilen mesaj (EN)Önerilen mesaj (TR)
INSUFFICIENT_FUNDSBakiye ya da kredi limiti yetersizYour card has insufficient funds. Try another card.Kartınızın bakiyesi veya limiti yetersiz. Başka bir kart deneyin.
CARD_DECLINEDBanka belirli bir sebep belirtmeden reddettiYour bank declined the payment. Contact your bank or try another card.Bankanız ödemeyi onaylamadı. Bankanızla görüşün veya başka bir kart deneyin.
INVALID_CARDKart numarası, BIN ya da kartı çıkaran banka geçersizCheck your card number.Kart numaranızı kontrol edin.
EXPIRED_CARDSüresi dolmuş kart ya da yanlış son kullanma tarihiCheck your card's expiry date.Kartınızın son kullanma tarihini kontrol edin.
INVALID_CVCYanlış CVC/CVVCheck the security code on the back of your card.Kartınızın arkasındaki güvenlik kodunu kontrol edin.
THREEDS_FAILED3D Secure doğrulaması başarısız oldu ya da tamamlanmadıVerification failed. Try again and complete the SMS step.Doğrulama başarısız oldu. Tekrar deneyin ve SMS adımını tamamlayın.
FRAUD_SUSPECTEDDolandırıcılık şüphesi ya da kayıp/çalıntı bildirilmiş kartWe couldn't complete this payment. Contact your bank.Bu ödeme tamamlanamadı. Bankanızla görüşün.
LIMIT_EXCEEDEDTutar ya da işlem sayısı limiti aşıldıYour card's limit was exceeded. Try another card.Kartınızın işlem limiti aşıldı. Başka bir kart deneyin.
DUPLICATE_ORDERSipariş numarası daha önce kullanılmışThis order was already submitted.Bu sipariş zaten gönderildi.
CANCELLED_BY_CUSTOMERMüşteri ödeme sayfasından ayrıldıPayment was cancelled.Ödeme iptal edildi.
INVALID_REQUESTSağlayıcıya ulaşmadan reddedildi (eksik ya da geçersiz alan)Something went wrong. Please try again.Bir sorun oluştu. Lütfen tekrar deneyin.
NETWORK_ERRORSağlayıcıdan yanıt gelmedi; sonuç bilinmiyor (pending)We're checking your payment. Don't pay again.Ödemeniz kontrol ediliyor. Lütfen tekrar ödeme yapmayın.
INVALID_HASHCallback imzası doğrulanamadı (sahte kabul edin)Payment could not be verified.Ödeme doğrulanamadı.
PROVIDER_ERRORSağlayıcı, banka ya da üye işyeri yapılandırması sorunuPayment is temporarily unavailable. Please try again later.Ödeme geçici olarak yapılamıyor. Lütfen daha sonra tekrar deneyin.
UNKNOWNHenüz eşlenmemiş; errorCode'a bakınPayment failed. Please try again or use another card.Ödeme başarısız oldu. Tekrar deneyin veya başka bir kart kullanın.

INVALID_HASH ya da FRAUD_SUSPECTED ayrıntılarını asla müşteriye göstermeyin. INVALID_REQUEST için isteği kendi tarafınızda düzeltin; hata mesajı alanın adını verir. NETWORK_ERROR için müşterinin tekrar denemesine izin vermeden önce ödemeyi getPayment() ile kontrol edin.

Neler eşleniyor

Sağlayıcıcode'un kaynağı
iyzicoÖdeme hata kodları (10005, 10051, 10054, 10084, 102xx, ...). Tablo IYZICO_ERROR_CODES olarak dışa açılır.
PayTRfailed_reason_code 1–3, 6, 8–11 ve 99. 0 kodunun sebebi serbest metindir ve UNKNOWN kalır. Tablo PAYTR_ERROR_CODES olarak dışa açılır.
AkbankBankanın ISO 8583 hostResponseCode'u (51, 05, 54, ...); ISO8583_ERROR_CODES olarak dışa açılır. VPS-xxxx kodu errorCode'da kalır.
ParamposParam döndürdüğünde bankanın Banka_Sonuc_Kod alanındaki ISO 8583 kodu (51, 05, 54, ...), yoksa Param'ın negatif Sonuc kodları (-105, -119, -2xx, ...). Sonuc tablosu PARAMPOS_ERROR_CODES olarak dışa açılır. Sonuc errorCode'da kalır.

Tüm sağlayıcılar Better Payment'in kendi atadığı kodları da kullanır: NETWORK_ERROR, INVALID_HASH, 3D Secure hataları (MD_STATUS_x) ve istek doğrulama (VALIDATION_ERROR → INVALID_REQUEST).

Eksik bir kod mu var? Sağlayıcıyı, ham errorCode'u ve mesajını yazarak bir issue açın.

On this page