Geri Dönen Ödemeleri Listele

Bu servis ile transfer talebi yapılmış ancak alıcı hesap hatası nedeniyle geri dönen ödemelerin listesine ulaşabilirsiniz. Geri dönen ödemeler mağazanıza ait bir alt hesaba bakiye olarak işlenir. Geri dönen bu ödemeleri tekrar göndermek için “Geri Dönen Ödemeler – Hesaptan Gönder” servisini kullanabilirsiniz.

1- Geri dönen ödemelerin listesini alabilmek için tabloda belirtilen bilgileri POST ile ilgili URL’e gönderin: https://www.paytr.com/odeme/geri-donen-transfer

Token üretiminde kullanılacak veriler

Alan adı / tipi Açıklama Zorunlu Kısıtlar
merchant_id(integer) Mağaza no: PayTR tarafından size verilen Mağaza numarası Evet -
start_date(string) Başlangıç Tarihi Formatı: 2021-01-01 00:00:00 (YYYY-MM-DD hh:mm:ss) Evet -
end_date Bitiş Tarihi Formatı: 2021-01-01 23:59:59 (YYYY-MM-DD hh:mm:ss) 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:

Alan adı / tipi Açıklama Zorunlu Kısıtlar
merchant_id (string) Mağaza No: PayTR tarafından size verilen Mağaza numarası Evet -
start_date (integer) Başlangıç Tarihi Formatı: 2021-01-01 00:00:00 (YYYY-MM-DD hh:mm:ss) Evet -
end_date(integer) Bitiş Tarihi Formatı: 2021-01-01 23:59:59 (YYYY-MM-DD hh:mm:ss) Evet -
dummy(integer) Dummy veri oluşturmak için kullanılır Hayır 1 veya 0 (Dummy veri için 1 gönderilmesi gerekmektedir)
paytr_token(string) paytr_token: İsteğin sizden geldiğine veiçeriğin değişmediğine emin olmamız için oluşturacağınız değerdir Evet Hesaplama ile ilgili olarak örnek kodlara bakmalısınız.



2- Yaptığınız bu isteğe cevap JSON formatında döner. a. Verilen tarih aralığında eğer herhangi bir işlem / hareket yoksa status değeri failed olarak döner. b. Verilen tarih aralığında eğer herhangi bir işlem varsa status değeri success ve aşağıdaki tabloda bulunan bilgiler döner. c. Eğer sorguda bir hatanız varsa status değeri error döner. Bu durumda hata detayı için err_msg içeriğini kontrol etmelisiniz.

Status success durumunda dönen diğer bilgiler aşağıdaki tabloda detaylandırılmıştır. Satış ve İade işlemlerinde fark olmaksızın aynı değerler döner.

Açıklama Alan adı / tipi Değerler
Referans No: İşlemin ayırt edici numarası ref_no Örnek: 1000001
Geri dönen ödemenin tespit edildiği tarih date_detected Örnek: 2020-06-08
Ödemenin geri döndüğü tarih date_reimbursed Örnek: 2020-06-08
Transfer talebinde iletilen alıcı adı soyadı transfer_name Örnek: TEST USER
Transfer talebinde iletilen IBAN transfer_iban -
Transfer talebinde iletilen tutar transfer_amount Örnek: 35.18
Transfer talebinde iletilen para birimi. transfer_currency Örnek: TL
Transfer talebinin iletildiği tarih transfer_date Örnek: 2020-06-08


<?php

    ########################### İŞLEM DÖKÜMÜ ALMAK  İÇİN ÖRNEK KODLAR ##########################
    #                                                                                          #
    ################################ DÜZENLEMESİ ZORUNLU ALANLAR ###############################
    #
    ## API Entegrasyon Bilgileri - Mağaza paneline giriş yaparak BİLGİ sayfasından alabilirsiniz.

    $merchant_id    = 'XXXXXX';
    $merchant_key   = 'XXXXXXXXYYYYYYYY';
    $merchant_salt  = 'XXXXXXXXYYYYYYYY';

    ## Gerekli Bilgiler
    #
    $start_date = "2020-05-20 00:00:00";
    $end_date = "2020-06-16 23:59:59";
    # Başlangıç / Bitiş tarihi. En fazla 31 gün aralık tanımlanabilir.
    #
    ############################################################################################

    ################ Bu kısımda herhangi bir değişiklik yapmanıza gerek yoktur. ################

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

    $post_vals = array('merchant_id' => $merchant_id,
        'start_date' => $start_date,
        'end_date' => $end_date,
        'paytr_token' => $paytr_token
    );
    #
    ############################################################################################

    $ch = curl_init();
    curl_setopt($ch, CURLOPT_URL, "https://www.paytr.com/odeme/geri-donen-transfer");
    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);

    /*
      $result değeri içerisinde dönen yanıt örneği;

    [ref_no] => 1000001
    [date_detected] => 2020-06-10
    [date_reimbursed] => 2020-06-08
    [transfer_name] => ÖRNEK İSİM
    [transfer_iban] => TR100000000000000000000001
    [transfer_amount] => 35.18
    [transfer_currency] => TL
    [transfer_date] => 2020-06-08

    */

    if ($result[status] == 'success')
    {
        // VT işlemleri vs.
        print_r($result);
    }
    elseif ($result[status] == 'failed')
    {
        // sonuç bulunamadı
        echo "ilgili tarih araliginda islem bulunamadi";
    }
    else
    {
        // Hata durumu
        echo $result[err_no] . " - " . $result[err_msg];
    }

Geri dönen ödemeler örnek kodları indirmek için tıklayın.