Jak wygenerować raport transakcji w formie tabeli?

Ostatnia aktualizacja: 23.11.2024

Metoda report wywoływana przez API pozwala na pobranie raportu zawierającego transakcje i obciążenia konta sprzedawcy w określonym przedziale czasowym.

 

Poprawne wywołanie tej metody zwraca dane zakodowane w base64, po których odkodowaniu otrzymujemy wartość typu string zawierającą informacje w formacie CSV (oddzielone średnikami).

 

Gotowy skrypt PHP w bibliotekach Tpay pozwala na automatyczne przekształcenie tego formatu na tablicę asocjacyjną, gdzie każda transakcja jest osobnym elementem tablicy z nazwą pola i wartością.

 

Przykład zwracanych danych:

array(0 => 
    array (
      'ID transakcji' => 'TR-BRA-KGZK0X',
      'Bank' => string 'BLIK',
      'Kwota transakcji' => '0,02',
      'Zapłacono' => '0,02',
      'Prowizja %' => '0,00%',
      'Prowizja stała' => '0,00',
      'Pobrana prowizja' => '0,00',
      'CRC transakcji' => '3214',
      'Opis transakcji' => 'Payment for order X',
      'Data płatności' => '2017-09-19 14:21:53',
      'Data zwrotu' => '',
      'E-mail' => '[email protected]',
      'Imię i nazwisko' => 'john doe',
      'Adres' => 'Sunny street 25/7',
      'Kod' => '61-505',
      'Miasto' => 'New York',
      'Kraj' => 'PL',
      'Telefon' => '123456789',
      'Opis dodatkowy (Elavon)' => '',
      'RRN (Elavon)' => '',
      'Bin karty' => '-',
      'Typ karty' => '-',
      ),
  ...
);

Przykład wdrożenia w oparciu o biblioteki PHP Tpay

  1. Pobierz biblioteki Tpay z serwisu Github.com
  2. Stwórz plik TransactionReportsApi.php (np. w folderze examples) rozszerzający klasę BasicReports, w którego konstruktorze podaj swoje dane dostępowe do API:
    <?php
    namespace tpayLibs\examples;
    
    use tpayLibs\src\_class_tpay\Reports\BasicReports;
    use tpayLibs\src\_class_tpay\Utilities\TException;
    
    include_once 'config.php';
    include_once 'loader.php';
    
    class TransactionReportsApi extends BasicReports
    {
        public function __construct()
        {
            $this->merchantSecret = 'demo';
            $this->merchantId = 1010;
            $this->trApiKey = '75f86137a6635df826e3efe2e66f7c9a946fdde1';
            $this->trApiPass = 'p@$$w0rd#@!';
            parent::__construct();
        }
    
    }
    
  3. Utwórz funkcję, która pobierze raport wykonując zapytanie do serwera Tpay:
    /**
    * @param string $dateStart 'report date start range'
    * @param bool|string $dateEnd 'report date end range - false if to current date'
    * @param bool $csv 'decide if return report in csv format or table associated'
    */
    public function getReportTransaction($dateStart, $dateEnd = false, $csv = false)
    {
        /**
         * Get report
         */
        try {
            $result = $this->report($dateStart, $dateEnd, $csv);
            if (is_null($result)) {
                echo 'Report is empty for this time range.';
            } else {
                //Will return report
                var_dump($result);
            }
        } catch (TException $e) {
            var_dump($e->getMessage());
        }
    }
  4. Na końcu pliku, poza klasą, wystarczy dodać wywołanie z parametrami wejściowymi, np. żeby pobrać raport od początku 2017 roku do obecnej daty wystarczy wywołać:
    (new TransactionReportsApi())->getReportTransaction('2017-01-01');
  5. Metoda może przyjmować również zakres końcowy, wtedy jako drugi argument funkcji ($dateEnd) należy przesłać datę końca raportu na przykład '2017-01-31':
    (new TransactionReportsApi())->getReportTransaction('2017-01-01', '2017-01-31');​