Ana içeriğe geç
Esc
Aramaya başlamak için yazın...

Ödeme Sonucu

3D olmayan işlemlerin dönüş parametreleri #

  • İşlem sonucunda size gönderilen Response Hash'i (hashDataV2) mutlaka kontrol ediniz. Şayet sizin oluşturduğunuz hash ile size gönderilen hash farklıysa bu işlem paynkolaydan gelmiyor demektir, işlemi kesmeniz gerekir.
  • Ödeme alındı bilgisi için RESPONSE_CODE = 2 olmalı ve AUTH_CODE mutlaka geçerli bir değer (boş veya 0 olmayan) içermelidir.
  • İşlem sonucunun successURL sayfasına dönmesi işlemin başarılı olduğu anlamına gelmez. Bu nedenle, her zaman yukarıdaki kontrolleri yapmalısınız.
  • Burada dönüşü yapılan hashDataV2 değeri, Hash Yanıtı Hesaplama sayfasında anlatılan şekilde hesaplanıp size gönderilmiştir. Doğruluğunu teyit ediniz. Request oluştururken hesapladığınız hashDataV2'dan farklıdır.
RESPONSE_CODE: 2
RESPONSE_DATA: İşlem Başarılı
USE_3D: false
RND: 1630051651137
MERCHANT_NO: 400000001
AUTH_CODE: S00586
REFERENCE_CODE: IKSIRPF102168
CLIENT_REFERENCE_CODE: 42794212
TIMESTAMP: 2021-08-27
TRANSACTION_AMOUNT: 1.00
AUTHORIZATION_AMOUNT: 1.00
COMMISION: 0.00000000
COMMISION_RATE: null
INSTALLMENT: 1
hashData: bjb49lGdnE2D/D5Jze2/sn7Xfk0=
hashDataV2 : lunnRyNfDu6pdpNjjlFrlATE4PjUluM89iqAobpWkxEmzlDe9lNkP76Ua19WvYeb++yKufjhUa6ZRorBNfEzHA==

İşlem Başarılı mı? Nasıl Anlaşılır? #

flowchart LR
    A[İşlem sonucu alındı] --> B{hashDataV2 doğru mu?}
    B -- Hayır --> X[BAŞARISIZ]
    B -- Evet --> C{RESPONSE_CODE == 2 ?}
    C -- Hayır --> X
    C -- Evet --> D{AUTH_CODE boş, 0 veya 00 mu?}
    D -- Evet --> X
    D -- Hayır --> S[BAŞARILI]
payment-result.php
function isPaymentSuccessful(array $result): bool
{
    $code = $result['RESPONSE_CODE'] ?? null;
    $auth = trim((string)($result['AUTH_CODE'] ?? ''));

    // RESPONSE_CODE must be 2 AND AUTH_CODE must be a real value.
    return (string)$code == '2'
        && !in_array($auth, ['', '0', '00'], true);
}
function isPaymentSuccessful(result) {
  const code = String(result.RESPONSE_CODE ?? '');
  const auth = String(result.AUTH_CODE ?? '').trim();

  // RESPONSE_CODE must be 2 AND AUTH_CODE must be a real value.
  return code == '2' && !['', '0', '00'].includes(auth);
}
def is_payment_successful(result: dict) -> bool:
    code = str(result.get("RESPONSE_CODE", ""))
    auth = str(result.get("AUTH_CODE", "")).strip()

    # RESPONSE_CODE must be 2 AND AUTH_CODE must be a real value.
    return code == "2" and auth not in ("", "0", "00")
public static bool IsPaymentSuccessful(IDictionary<string, string> result)
{
    result.TryGetValue("RESPONSE_CODE", out var code);
    result.TryGetValue("AUTH_CODE", out var auth);
    auth = (auth ?? "").Trim();

    // RESPONSE_CODE must be 2 AND AUTH_CODE must be a real value.
    return code == "2"
        && auth != "" && auth != "0" && auth != "00";
}
public static boolean isPaymentSuccessful(Map<String, String> result) {
    String code = result.getOrDefault("RESPONSE_CODE", "");
    String auth = result.getOrDefault("AUTH_CODE", "").trim();

    // RESPONSE_CODE must be 2 AND AUTH_CODE must be a real value.
    return code.equals("2")
        && !auth.equals("") && !auth.equals("0") && !auth.equals("00");
}

3D İşlem Onay (AutoComplete) #

  • Başarılı işlem successUrl olarak girdiğiniz linke post edilir. İşlem başarısız olursa failUrl olarak girdiğiniz linke dönüş yapılacaktır.
  • İşlemin successUrl sayfasına dönmesi işlemin başarılı olduğu anlamına gelmemektedir.
  • AUTHORIZATION_AMOUNT karttan çekilen tutarı gösterir. İşlem sonrasında dönülen AUTHORIZATION_AMOUNT ile sizin ödeme sayfasına POST ettiğiniz amount (tutar) değerini karşılaştırmanız gerekir. AUTHORIZATION_AMOUNT sizin gönderdiğiniz tutara eşit veya büyük olmalıdır.
  • İşlem sonunda size gönderilen Response Hash'i (hashData) mutlaka kontrol ediniz. Şayet sizin oluşturduğunuz hash ile size gönderilen hash farklıysa bu işlem paynkolaydan gelmiyor demektir.
  • İşlem sonucu olarak RESPONSE_CODE = 2 olmalı ve AUTH_CODE mutlaka geçerli bir değer (boş veya 0 olmayan) içermelidir.

3D İşlem Onay (AutoComplete) Dönüş Parametreleri #

RESPONSE_CODE : 2
RESPONSE_DATA : İşlem Başarılı.
REFERENCE_CODE : IKSIRPF142277040
USE_3D : true
MERCHANT_NO : 400000002
AUTH_CODE : 345344
CLIENT_REFERENCE_CODE : 24809740|988922
TIMESTAMP : 2022-02-24 13:58:36.353
TRANSACTION_AMOUNT : 1.00
AUTHORIZATION_AMOUNT : 1.00
COMMISION : 0.00
COMMISION_RATE : 0.0000
INSTALLMENT : 1
RND : 1645700316156
hashData : +wDy2xeI1hOCnwaatSqylWhtj9E=
hashDataV2 : lunnRyNfDu6pdpNjjlFrlATE4PjUluM89iqAobpWkxEmzlDe9lNkP76Ua19WvYeb++yKufjhUa6ZRorBNfEzHA==
BANK_RESULT: Response : IKSIRPF142277040 ...
ERROR_CODE: 0
  • Başarılı işlem sonucu olarak RESPONSE_CODE = 2 olmalı ve AUTH_CODE mutlaka geçerli bir değer (boş veya 0 olmayan) değer içermelidir.
  • İşlem başarılı değil yani hatalı ise RESPONSE_CODE = 0 döner, RESPONSE_DATA içinde hata mesajı iletilir ve hatalı işlemde AUTH_CODE boştur.

İki aşamalı 3D Secure işlemlerinde ödeme tamamlama için Ödeme Kapatma Servisi ( 2 Aşamalı 3D secure için ) sayfasını inceleyiniz.