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) należy przesłać datę końca raportu na przykład '2017-01-31':
(new TransactionReportsApi())->getReportTransaction('2017-01-01', '2017-01-31');