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
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';