PayTR Link API sayesinde müşterileriniz için doğrudan ödeme alabileceğiniz linkler oluşturabilirsiniz. Bu yöntem, e-ticaret siteniz olmasa bile ürün, hizmet ya da fatura tahsilatları için online ödeme almanızı kolaylaştırır.
Bu makalede, PayTR Link API ile adım adım ödeme linki oluşturmayı anlatacağız ve kullanılacak verileri örnek kodlarla detaylandıracağız. Ayrıca ilgili diğer entegrasyon adımlarına da backlink veriyoruz:
-
PayTR iFrame API Entegrasyonu: Adım Adım Bilgilendirici Rehber
-
PayTR Bildirim URL (2. Adım) Entegrasyonu: Ödeme Sonucu Onaylama Rehberi
-
API Endpointlerinde Middleware Kullanımı ile Güvenlik Nasıl Artırılır?
PayTR Link API Kullanım Adımları
1. Token Oluşturma
Token oluşturmak için ürün/hizmet bilgilerinizden bir hash değeri hesaplamalısınız.
Gerekli Alanlar:
-
name (4-200 karakter aralığında)
-
price (100 ile çarpılmış integer)
-
currency (TL, USD, EUR, GBP, RUB)
-
max_installment (2-12 arası)
-
link_type ("product" veya "collection")
-
lang ("tr" veya "en")
-
merchant_key ve merchant_salt (Mağaza panelinizden alırsınız)
Token Hesaplama Örneği (PHP):
$required = $name.$price.$currency.$max_installment.$link_type.$lang;
$paytr_token = base64_encode(hash_hmac('sha256', $required.$merchant_salt, $merchant_key, true));
2. Ödeme Linki Oluşturma (POST İsteği)
Token ve diğer bilgileri kullanarak şu adrese POST isteği gönderilir:
https://www.paytr.com/odeme/api/link/create
POST Parametreleri:
-
merchant_id
-
name
-
price
-
currency
-
max_installment
-
link_type
-
lang
-
paytr_token
-
(Opsiyonel: min_count, max_count, expiry_date, callback_link, callback_id, get_qr, debug_on)
PHP Örnek POST:
$post_vals = array(
'merchant_id' => $merchant_id,
'name' => $name,
'price' => $price,
'currency' => $currency,
'max_installment' => $max_installment,
'link_type' => $link_type,
'lang' => $lang,
'paytr_token' => $paytr_token,
'debug_on' => 1
);
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, "https://www.paytr.com/odeme/api/link/create");
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, $post_vals);
$result = curl_exec($ch);
curl_close($ch);
print_r(json_decode($result, true));
3. Gelen Yanıt
Yanıt JSON formatında gelir:
-
status: success / error / failed
-
id: benzersiz link ID'si
-
link: oluşan ödeme linki
-
reason: hata açıklaması (hata durumunda)
Örnek Başarılı Yanıt:
{
"status":"success",
"id":"NB2Zlz3",
"link":"https://www.paytr.com/link/NB2Zlz3"
}
Opsiyonel Özellikler
-
get_qr: 1 gönderirseniz linkin QR kodunu da Base64 formatında alabilirsiniz.
-
expiry_date: Linkin son kullanma tarihini belirtebilirsiniz.
-
callback_link: Ödeme sonucunun bildirileceği URL.
-
max_count: Belirli bir stok adedi limiti koyabilirsiniz.
Link Silme (Delete API)
Birden fazla linki topluca silmek için ayrıca PayTR Link Delete API kullanabilirsiniz. Bunun için "id" değerlerini göndererek silme işlemi yaparsınız.
PHP Silme Örneği:
$hash_str = $id . $merchant_id . $merchant_salt;
$paytr_token = base64_encode(hash_hmac('sha256', $hash_str, $merchant_key, true));
$post_vals = array(
'merchant_id' => $merchant_id,
'id' => $id,
'paytr_token' => $paytr_token,
'debug_on' => 1
);
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, "https://www.paytr.com/odeme/api/link/delete");
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, $post_vals);
$result = curl_exec($ch);
curl_close($ch);
print_r(json_decode($result, true));
Sonuç: PayTR Link API ile Hızlı ve Kolay Tahsilat
PayTR Link API kullanarak dakikalar içinde satış veya tahsilat linkleri oluşturabilirsiniz. Sistemli kullanım ve güvenlik önlemleri ile müşterilerinize profesyonel bir ödeme deneyimi sunabilirsiniz.
Daha fazla bilgi ve bağlantılı entegrasyon rehberleri için aşağıdaki makaleleri mutlaka inceleyin:
-
PayTR iFrame API Entegrasyonu: Adım Adım Bilgilendirici Rehber
-
PayTR Bildirim URL (2. Adım) Entegrasyonu: Ödeme Sonucu Onaylama Rehberi
-
Frontend ve Backend Ayrı Sunulurken Güvenlik Nasıl Sağlanır? REST API İletişimi ve Güvenlik Rehberi