Ek Servisler

Ödeme Sonucu

successUrl'e dönmek başarı demek değildir — sonucu doğru okumanın tek yolu buradaki kontrollerdir.

Altın Kural

Ödeme yalnızca RESPONSE_CODE = 2 ve AUTH_CODE geçerli bir değerken başarılıdır. AUTH_CODE boş, 0 ya da 00 ise işlem başarısızdır — successUrl'e dönmüş olması hiçbir şey ifade etmez.

Karar Akışı

  1. 1hashDataV2 doğru mu?Yanıttaki imzayı Response Hash yöntemiyle kendiniz hesaplayıp karşılaştırın. Farklıysa işlem Paynkolay'dan gelmiyordur — işlemi kesin.
  2. 2RESPONSE_CODE 2 mi?Değilse işlem başarısızdır; RESPONSE_DATA hata mesajını taşır.
  3. 3AUTH_CODE geçerli mi?Boş, 0 veya 00 ise başarısız sayın.
  4. 4Tutarı karşılaştırınAUTHORIZATION_AMOUNT, gönderdiğiniz amount'a eşit ya da ondan büyük olmalıdır.

Hazır Kontrol Fonksiyonu

function isPaymentSuccessful(array $result): bool
{
    $code = $result['RESPONSE_CODE'] ?? null;
    $auth = trim((string)($result['AUTH_CODE'] ?? ''));
    // RESPONSE_CODE 2 olmalı VE AUTH_CODE gerçek bir değer olmalı
    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 2 olmalı VE AUTH_CODE gerçek bir değer olmalı
  return code == '2' && !['', '0', '00'].includes(auth);
}

Örnek Dönüş (3D · AutoComplete)

Başarılı işlem successUrl adresinize, başarısız işlem failUrl adresinize POST edilir.

successUrl'e POST edilen sonuç
RESPONSE_CODE: 2
RESPONSE_DATA: İşlem Başarılı.
REFERENCE_CODE: IKSIRPF142277040
USE_3D: true
AUTH_CODE: 345344
CLIENT_REFERENCE_CODE: 24809740|988922
TRANSACTION_AMOUNT: 1.00
AUTHORIZATION_AMOUNT: 1.00
INSTALLMENT: 1
RND: 1645700316156
hashDataV2: lunnRyNfDu6pdpNjjlFrlATE4PjUluM8…

Yanıttaki hashDataV2, istek imzasından farklı hesaplanır (Response Hash). Doğrulamadan siparişi asla onaylamayın. Hatalı işlemde RESPONSE_CODE = 0 döner ve AUTH_CODE boştur.

Son güncelleme: 4 Eylül 2026

v2 · Versiyonlar