PayTR Link API kullanımının tamamlanabilmesi ve ödeme alınmasının güvence altına alınabilmesi için Callback Servisi entegrasyonu kritik bir önem taşır. Bu makalede, PayTR ödeme linkleri için başarılı ödeme bildiriminin nasıl alınacağını, hash doğrulamasını ve doğru entegrasyon önerilerini adım adım anlatacağız.
Ayrıca diğer PayTR API adımları için bu rehberlere de göz atmanızı öneririz:
-
PayTR iFrame API Entegrasyonu: Adım Adım Bilgilendirici Rehber
-
PayTR Bildirim URL (2. Adım) Entegrasyonu: Ödeme Sonucu Onaylama Rehberi
PayTR Link API Callback Nedir?
-
Yalnızca başarılı ödeme gerçekleştirildiğinde çalışır.
-
Create isteğinde belirttiğiniz callback_url adresine POST yapılır.
-
Mağaza Paneli'ndeki Bildirim URL'den ayrı ayrıdır, sadece Link API için çalışır.
Bilgi: Eğer link oluştururken callback_url belirtmediyseniz bu entegrasyonu yapmanıza gerek yoktur.
Callback ile Gelen POST Parametreleri
Parametre | Açıklama |
---|---|
hash | Bildirimin değerlerinin doğruluğunu kontrol etmek için kullanılır |
merchant_oid | Sipariş numarası (PayTR tarafından oluşturulur) |
status | success (her zaman başarılı için gelir) |
total_amount | Gerçekte tahsil edilen tutar (kuruş bazında) |
payment_amount | Sipariş tutarı |
payment_type | Ödeme tipi (card, bex vb.) |
currency | Para birimi (TL, USD, EUR, GBP, RUB) |
callback_id | Link oluştururken belirttiğiniz ID |
merchant_id | Mağaza numaranız |
test_mode | Test modunda mı yapıldı belirtir |
Callback URL Entegrasyonu Adımları
1. POST Verilerini Alın
$post = $_POST;
2. Hash Doğrulaması Yapın
$merchant_key = 'Sizin_Merchant_Key';
$merchant_salt = 'Sizin_Merchant_Salt';
$hash = base64_encode( hash_hmac('sha256', $post['callback_id'].$post['merchant_oid'].$merchant_salt.$post['status'].$post['total_amount'], $merchant_key, true) );
if( $hash != $post['hash'] ) {
die('PAYTR notification failed: bad hash');
}
3. Ödeme Onaylama İşlemleri
if( $post['status'] == 'success' ) {
// Ödemeyi veri tabanınızda onaylayın
// Müşteriye SMS/E-posta bilgilendirmesi yapabilirsiniz
}
4. Mutlaka OK Cevabı Dönün
echo "OK";
exit;
ÖNEMLİ: Eğer "OK" cevabı gönderilmezse, PayTR sistemi bildirimi başarısız kabul eder ve tekrar tekrar gönderim yapabilir.
Callback Servisinde Sık Yapılan Hatalar
-
OK dışı bir çıktı dönmek.
-
POST hash doğrulaması yapmamak.
-
Session değişkenleri kullanmaya çalışmak.
-
Birden fazla bildirimde aynı siparişi tekrar tekrar işlemek.
Test Aşamaları
-
Ödeme Linki oluşturun (callback_url tanımlı).
-
Test ödemesi yapın.
-
Callback URL'nize bildirim geliyor ve "OK" cevabı doğru dönüyorsa, PayTR Mağaza Paneli'nde İşlem "Başarılı" olarak görünecektir.
Önemli Not:
SSL kullanıyorsanız, callback_url'yi HTTPS protokolüyle kaydedin.
Sonuç: PayTR Link API Callback Servisi ile Sorunsuz Ödeme Onayı
Link API üzerinden yapılan ödemelerin profesyonel bir şekilde sisteminize entegre olabilmesi için Callback URL servisi kesinlikle doğru uygulanmalıdır. Hash doğrulaması, OK cevabı ve idempotent (tekrar eden işlemleri tek sefer sayma) yapı ile tüm süreç problemsiz yürütülebilir.
Bağlantılı Bilgilendirici Makaleler:
-
PayTR iFrame API Entegrasyonu: Adım Adım Bilgilendirici Rehber
-
PayTR Bildirim URL (2. Adım) Entegrasyonu: Ödeme Sonucu Onaylama Rehberi