Ö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ışı
- 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.
- 2RESPONSE_CODE 2 mi?Değilse işlem başarısızdır; RESPONSE_DATA hata mesajını taşır.
- 3AUTH_CODE geçerli mi?Boş, 0 veya 00 ise başarısız sayın.
- 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.
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