Jak wygenerować raport transakcji w formie w formie tabeli?
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
- Pobierz biblioteki Tpay z serwisu Github.com
- 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(); } }
- 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()); } }
- 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');
- Metoda może przyjmować również zakres końcowy, wtedy jako drugi argument funkcji ($dateEnd) nalezy przesłać datę końca raportu na przykład '2017-01-31':
(new TransactionReportsApi())->getReportTransaction('2017-01-01', '2017-01-31');
Czy odpowiedź była przydatna?