4.2 Taksit Oranları Sorgulama

Direkt API entegrasyonu yapılırken, taksit oranlarını çekmek için taksit oranları sorgulama API kullanılır. Oranlar günlük olarak değişebilir. Bu nedenle bu oranları günlük olarak taksit oranları sorgulama API aracılığıyla çekip, veritabanına kaydedebilir, güncelleyebilirsiniz. Bu oranları taksitli işlemlerde ürün fiyatına göre uygulayabilirsiniz. Aşağıda yer alan tablolarda result değişkeni içinde dönen değerler ayrıntılı olarak anlatılmıştır.

Token üretiminde kullanılacak veriler

Alan adı / tipi Açıklama Zorunlu Kısıtlar
merchant_id PayTR Mağaza Paneli > Destek & Kurulum > Entegrasyon Bilgileri sayfası üzerinden ulaşabileceğiniz, mağazanıza özgü değer. Evet -
request_id İstek atılırken oluşturulacak random değer. Evet -
merchant_salt PayTR Mağaza Paneli > Destek & Kurulum > Entegrasyon Bilgileri sayfası üzerinden ulaşabileceğiniz, mağazanıza özgü değer. Evet -
merchant_key PayTR Mağaza Paneli > Destek & Kurulum > Entegrasyon Bilgileri sayfası üzerinden ulaşabileceğiniz, mağazanıza özgü değer. Evet -


POST REQUEST içeriğinde gönderilecek değerler:

Değişkenler Açıklamalar Zorunlu
merchant_id PayTR Mağaza Paneli > Destek & Kurulum > Entegrasyon Bilgileri sayfası üzerinden ulaşabileceğiniz, mağazanıza özgü değer. Evet
request_id En fazla 32 karakterden oluşan (string) istek ID'si. Yanıt içerisinde tekrar geri döner. Evet
paytr_token Evet
single_ratio 1 veya 0 (Mağaza tek çekim oranı için 1 gönderilmelidir) Hayır
abroad_ratio 1 veya 0 (Mağaza yurtdışı tek çekim oranı için 1 gönderilmelidir) Hayır


Result değişkeni içinde dönen değerler:

Değişkenler Açıklamalar
status Success olarak dönerse veritabanı işlemleri yapılır
request_id En fazla 32 karakterden oluşan (string) istek ID'si. Yanıtta geri döner
err_msg Hata mesajı döner (Örnek:"Zorunlu alan degeri gecersiz veya gonderilmedi:")
max_inst_non_bus Mağazanıza tanımlı maksimum taksit sayısı
oranlar Mağazanıza tanımlı taksit sayısının oranları kart tipine göre (axess, world, maximum, cardfinans, paraf, advantage, combo, bonus) array formatında döner


Taksit sorgulama örnek kodları: Örnek kodlar içinde nasıl yapılacağı detaylı olarak anlatılmaktadır.

<?php
    $merchant_id='XXXXXX';
    $merchant_key='YYYYYYYYYYYYYY';
    $merchant_salt='ZZZZZZZZZZZZZZ';
    $request_id=time();

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

    $post_vals=array(
        'merchant_id'=>$merchant_id,
        'request_id'=>$request_id,
        'paytr_token'=>$paytr_token
    );

    $ch=curl_init();
    curl_setopt($ch, CURLOPT_URL, "https://www.paytr.com/odeme/taksit-oranlari");
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
    curl_setopt($ch, CURLOPT_POST, 1) ;
    curl_setopt($ch, CURLOPT_POSTFIELDS, $post_vals);
    curl_setopt($ch, CURLOPT_FRESH_CONNECT, true);
    curl_setopt($ch, CURLOPT_TIMEOUT, 90);
    curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 90);

    //XXX: DİKKAT: lokal makinanızda "SSL certificate problem: unable to get local issuer certificate" uyarısı alırsanız eğer
    //aşağıdaki kodu açıp deneyebilirsiniz. ANCAK, güvenlik nedeniyle sunucunuzda (gerçek ortamınızda) bu kodun kapalı kalması çok önemlidir!
    //curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0);

    $result = @curl_exec($ch);

    if(curl_errno($ch))
    {
        echo curl_error($ch);
        curl_close($ch);
        exit;
    }

    curl_close($ch);
    $result=json_decode($result,1);

    if($result[status]=='success')
    {
        //VT işlemleri vs.
        print_r($result);
    }
    else //Örn. $result -> array('status'=>'error', "err_msg" => "Zorunlu alan degeri gecersiz veya gonderilmedi: "
    {
        echo $result[err_msg];
    }

Taksit sorgulama örnek kodlarını indirmek için tıklayın.