Pazartesi - Cumartesi: 09:00 - 18:00

27.03.2026 12 dk okuma Ödeme Sistemleri

PayTR Nedir?

PayTR, Türkiye'nin önde gelen sanal pos ve ödeme altyapısı sağlayıcısıdır. Tek entegrasyonla tüm banka kartları, kredi kartları ve alternatif ödeme yöntemlerini kabul etmenizi sağlar. Taksit desteği, 3D Secure ve kolay entegrasyon seçenekleri sunar.

Gerekli Bilgiler

PayTR entegrasyonu için merchant panelinden almanız gereken bilgiler:

  • Merchant ID: Mağaza numaranız
  • Merchant Key: API anahtarınız
  • Merchant Salt: Güvenlik tuz değeri
Not: Test ortamında çalışmak için PayTR sandbox hesabı açmanız gerekir. Canlıya almadan önce mutlaka test edin.

1. Konfigürasyon Dosyası

<?php
define('PAYTR_MERCHANT_ID', 'XXXXXX');
define('PAYTR_MERCHANT_KEY', 'XXXXXXXXXXXXXXXX');
define('PAYTR_MERCHANT_SALT', 'XXXXXXXXXXXXXXXX');
define('PAYTR_OK_URL', 'https://siteniz.com/odeme/basarili');
define('PAYTR_FAIL_URL', 'https://siteniz.com/odeme/hata');
define('PAYTR_TEST_MODE', 1);

2. Token Oluşturma ve iFrame Alma

$merchant_id    = PAYTR_MERCHANT_ID;
$merchant_key   = PAYTR_MERCHANT_KEY;
$merchant_salt  = PAYTR_MERCHANT_SALT;
$email          = '[email protected]';
$payment_amount = 1000;
$merchant_oid   = uniqid('ORD-');
$user_ip        = $_SERVER['REMOTE_ADDR'];
$currency       = 'TL';
$no_installment = '0';
$max_installment= '12';
$test_mode      = PAYTR_TEST_MODE;

$user_basket = base64_encode(
    json_encode([['Yazılım Lisansı', '10.00', 1]])
);

$hash_str = $merchant_id . $user_ip . $merchant_oid
    . $email . $payment_amount . $user_basket
    . $no_installment . $max_installment
    . $currency . $test_mode;

$paytr_token = base64_encode(
    hash_hmac('sha256',
        $hash_str . $merchant_salt,
        $merchant_key, true)
);

3. Callback İşleme

$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') {
    update_order_status($_POST['merchant_oid'], 'paid');
} else {
    update_order_status($_POST['merchant_oid'], 'failed');
}
echo 'OK';
Dikkat: Callback URL'nize gelen istekleri mutlaka hash doğrulaması ile kontrol edin.

Sıkça Sorulan Sorular

PayTR entegrasyonu için hangi belgeler gerekir?
Şirket vergi levhası, imza sirküleri ve banka hesap bilgileri gerekir.
PayTR test ortamı nasıl kullanılır?
PayTR merchant panelinden test modunu aktifleştirip test_mode parametresini 1 yaparak test kartları ile deneme yapabilirsiniz.
PayTR komisyon oranları nedir?
Komisyon oranları işlem hacmine göre değişir. Detaylı bilgi için PayTR satış ekibiyle iletişime geçin.
Callback URL neden önemlidir?
PayTR ödeme sonucunu callback URL'nize POST ile bildirir. Bu URL çalışmazsa ödeme durumunu öğrenemezsiniz.
Mesaj Gönderin0850 307 34 58
Hemen Arayın0850 307 34 58
Hemen Arayın WhatsApp