Arama Yap Mesaj Gönder
Biz Sizi Arayalım
+90
X

Lütfen Ülke (Bölge) Seçiniz

Türkiye (Türkçe)Türkiye (Türkçe) Almanya (German)Almanya (German) Worldwide (English)Worldwide (English)
X

Lütfen Para Birimi Seçiniz

Türk Lirası $ US Dollar Euro
X

Lütfen Ülke (Bölge) Seçiniz

Türkiye (Türkçe)Türkiye (Türkçe) Almanya (German)Almanya (German) Worldwide (English)Worldwide (English)
X

Lütfen Para Birimi Seçiniz

Türk Lirası $ US Dollar Euro

Bilgi Bankası

Anasayfa Bilgi Bankası Genel PayTR Direkt API Entegrasyonu: 2. A...

Bize Ulaşın

Konum Halkalı merkez mahallesi fatih cd ozgur apt no 46 , Küçükçekmece , İstanbul , 34303 , TR

PayTR Direkt API Entegrasyonu: 2. Adım Ödeme Sonuçlarının Bildirim URL ile Alınması

PayTR Direkt API entegrasyonunun tamamlanabilmesi için sadece ödeme formundan veri göndermek yeterli değildir. Ödeme sonucunun kesin ve doğrulanmış bir şekilde alınması için Bildirim URL entegrasyonu zorunludur.

Bağlantılı Rehber:


1) Bildirim URL Nedir?

  • Müşteri ödeme formunu doldurup gönderdiğinde PayTR ödeme sonucu doğrudan sizin belirlediğiniz Bildirim URL adresine POST ile veri yollar.

  • Buradan ödemenin başarılı veya başarısız olduğunu alırsınız.

  • Siparişi onaylayıp / iptal edip PayTR'a "OK" yanıtı dönmek zorundasınız.


2) POST ile Gelen Veriler

Alan Adı Zorunlu Açıklama
merchant_oid Evet Sipariş numarası
status Evet success veya failed
total_amount Evet Başarılı ise ödeme tutarı, başarısızsa 0
hash Evet Hash kontrol verisi
failed_reason_code Hayır Hata kodu (eğer hata varsa)
failed_reason_msg Hayır Hata mesajı (eğer hata varsa)
test_mode Evet Test mi?
payment_type Evet card veya eft
currency Hayır TL, USD vb.
payment_amount Hayır Sipariş tutarı
installment_count Hayır Taksit adedi

Yanıt Olarak: sadece echo "OK"; dönmelisiniz.


3) PHP Bildirim URL Örnek Kodu

$post = $_POST;

$merchant_key = 'MAGAZA_KEY';
$merchant_salt = 'MAGAZA_SALT';

$hash = base64_encode(hash_hmac('sha256', $post['merchant_oid'].$merchant_salt.$post['status'].$post['total_amount'], $merchant_key, true));

if($hash != $post['hash'])
    die('PAYTR notification failed: bad hash');

if($post['status'] == 'success') {
    // Siparişi Onayla
} else {
    // Siparişi İptal Et
}

echo "OK";
exit;

4) Kritik Dikkat Edilmesi Gerekenler

  • Bildirim URL'ye Giriş Kısıtlaması Koymayın: (IP / login koruması vs. olmasın)

  • Yanlızca OK dönün: HTML, whitespace vs. eklemeyin.

  • Hash Kontrolü yapın: Aksi halde fraud riski olur.

  • Bir sipariş için birden fazla bildirim gelebilir: Siparişi zaten onayladıysanız tekrar işleme almayın.

  • SSL kullanın: Bildirim URL adresiniz HTTPS olmalı.


5) Hata Kodları ve Anlamları

Kod Açıklama
0 Ödemenin detaylı hata mesajı
1 Kimlik doğrulama eksik
2 Kimlik doğrulama başarısız
3 Güvenlik kontrolü başarısız
6 Müşteri sayfayı terk etti
8 Kart taksit desteklemiyor
9 Kart ile işlem yetkisi yok
10 3D Secure zorunlu
11 Fraud uyarısı
99 Teknik entegrasyon hatası

6) Test Ödeme Sonrası Kontroller

  • PayTR Mağaza Paneli > İşlem Detaylarından gelen Bildirimleri kontrol edin.

  • "Başarılı" yerine "Devam Ediyor" görüyorsanız: Bildirim URL OK dönmemiş.

  • PHP error log kontrol edin.

  • Debug modu aktifse gelen POST verilerini kayıt altına alın.


Sonuç: Entegrasyonunuz Artık Hazır!

Doğru bir Bildirim URL entegrasyonu ile ödeme sisteminiz %100 sorunsuz çalışır. Bu adım, ödeme sistemlerinde profesyonel çalışmanın temelidir.

Bağlantılı Kaynaklar:

 

Aradığınız Bilgiyi Bulamıyor musunuz?

Bilgi bankasını detaylı olarak incelediniz, fakat ihtiyacınız olan bilgiyi bulamıyorsanız,

Bir Destek Talebi Oluşturun.
Faydalı Buldunuz mu?
(3029 defa görüntülendi. / 204 kişi faydalı buldu.)

Ürün ve hizmetlerimiz hakkında daha detaylı bilgi almak için hemen arayın.

Top