<?php

require_once dirname(__FILE__) . "/../../TransactionsApiClient.class.php";
require_once dirname(__FILE__) . "/../config.php";
$client = new TransactionsApiClient(INVIPAY_API_URL, INVIPAY_API_KEY, INVIPAY_SIGNATURE_KEY, INVIPAY_PARTNER_API_KEY, INVIPAY_PARTNER_SIGNATURE_KEY);
$orderId = null;
Logger::info('Searching for an order transaction');
$filter = new TransactionsFilter();
$filter->setSide(TransactionSide::SALE);
$filter->setType(TransactionType::ORDER);
$result = $client->listTransactions($filter);
$ordersCount = count($result);
Logger::info('Found {0} orders', $ordersCount);
if ($ordersCount > 0) {
    $orderId = $result[0]->getId();
    Logger::info('Using order {0} for further processing', $orderId);
}
// Convert order to invoice
if ($orderId !== null) {
    Logger::info('Converting order {0} into invoice', $orderId);
    $pdf = new FileData();
    $pdf->setFromFile(dirname(__FILE__) . '/../test.pdf');
    $data = new OrderConversionData();
    $data->setTransactionId($orderId);
    $data->setInvoiceDocumentNumber("Converted from order " . uniqid());
    $data->setIssueDate(date('Y-m-d', time()));
    $data->setDueDate(date('Y-m-d', time() + 30 * 24 * 60 * 60));
    $data->setInvoiceDocument($pdf);
    $result = $client->convertOrderToInvoice($data);
    Logger::info('Result is: {0}', $result);
}
Logger::debug('Received from callback: {0}', $data);
$paymentId = $data->getPaymentId();
if ($data->getDataType() == 'PaymentDetails') {
    $file = dirname(__FILE__) . "/repository/" . $paymentId;
    $newData = array('version' => 0, 'data' => $data);
    if (file_exists($file)) {
        $oldData = unserialize(file_get_contents($file));
        if (!empty($oldData)) {
            $newData['version'] = $oldData['version'] + 1;
        }
    }
    Logger::info("Putting new data into repository {0}:\r\n{1}", $file, $newData);
    file_put_contents($file, serialize($newData));
} else {
    if ($data->getDataType() == 'PaymentOperationFinalizationInfo') {
        // Call transactions api to confirm this event and fetch full transaction details
        $transactionsApiClient = new TransactionsApiClient(INVIPAY_API_URL, INVIPAY_API_KEY, INVIPAY_SIGNATURE_KEY);
        $transactionDetails = $transactionsApiClient->getTransaction($data->getData()->getTransactionId());
        $file = dirname(__FILE__) . "/repository/" . $paymentId . "_finalization_info.txt";
        Logger::info("Putting transaction data into file {0}\r\n{1}", $file, $transactionDetails);
        file_put_contents($file, Logger::format('{0}', $transactionDetails));
    } else {
        if ($data->getDataType() == 'ApiOperationException') {
            $file = dirname(__FILE__) . "/repository/" . $paymentId . "_exception.txt";
            Logger::info('Putting exception info into file {0}', $file);
            file_put_contents($file, Logger::format('{0}', $data->getData()));
        } else {
            Logger::info("Got unknown data for payment {0}:\r\n{1}", $paymentId, $data->getData());
        }
    }
}
<?php

require_once dirname(__FILE__) . "/../../TransactionsApiClient.class.php";
require_once dirname(__FILE__) . "/../config.php";
$client = new TransactionsApiClient(INVIPAY_API_URL, INVIPAY_API_KEY, INVIPAY_SIGNATURE_KEY, INVIPAY_PARTNER_API_KEY, INVIPAY_PARTNER_SIGNATURE_KEY);
$randomItemId = null;
$randomItemAttachmentId = null;
Logger::info('Listing transactions');
$filter = new TransactionsFilter();
$filter->setSide(TransactionSide::SALE);
$result = $client->listTransactions($filter);
$randomItemIndex = array_rand($result);
if ($randomItemIndex !== false && $randomItemIndex !== null) {
    $randomItemId = $result[$randomItemIndex]->getId();
    $randomItemAttachmentId = $result[$randomItemIndex]->getAttachment() !== null ? $result[$randomItemIndex]->getAttachment()->getId() : null;
}
Logger::info('Result is: {0}', $result);
print_separator();
if ($randomItemId !== null) {
    Logger::info('Getting details of transaction {0}', $randomItemId);
    $result = $client->getTransaction($randomItemId);
    Logger::info('Result is: {0}', $result);
    print_separator();
}
if ($randomItemAttachmentId !== null) {
    Logger::info('Downloading document {0} of transaction {1}', $randomItemAttachmentId, $randomItemId);
    $result = $client->downloadDocument($randomItemAttachmentId);
    $outputPath = dirname(__FILE__) . '/' . $randomItemAttachmentId . '.pdf';
    file_put_contents($outputPath, $result);
    Logger::info('Saved {0} bytes of data to file {1}', strlen($result), $outputPath);
}
<?php

require_once dirname(__FILE__) . "/../../TransactionsApiClient.class.php";
require_once dirname(__FILE__) . "/../config.php";
$client = new TransactionsApiClient(INVIPAY_API_URL, INVIPAY_API_KEY, INVIPAY_SIGNATURE_KEY, INVIPAY_PARTNER_API_KEY, INVIPAY_PARTNER_SIGNATURE_KEY);
Logger::info('Creating new order');
$request = new OrderData();
$request->setDocumentNumber('Test/' . uniqid());
$request->setIssueDate(date('Y-m-d', time()));
$request->setPriceGross(123);
$request->setCurrency('PLN');
$request->setNote('Test transaction from API');
$request->setNoRisk(true);
$contractor = new Contractor();
$contractor->setName('Test contractor ' . uniqid());
$contractor->setTaxPayerNumber('8429067910');
$contractor->setEmail('*****@*****.**');
$contractor->setFax('12312123');
$contractor->setPhone('234234234');
$contractor->setWww('www.esr24.pl');
$contractorAccount = new BankAccount();
$contractorAccount->setBankName('Test bank');
$contractorAccount->setNumber('PL123123123123123123123');
$contractor->setAccount($contractorAccount);
$contractorAddress = new AddressData();
$contractorAddress->setStreet('Test street 1/2');
$contractorAddress->setCity('Testville');
$contractorAddress->setPostCode('00-111');
$contractorAddress->setCountryCode('PL');
$contractor->setAddress($contractorAddress);
$request->setContractor($contractor);
<?php

require_once dirname(__FILE__) . "/../../TransactionsApiClient.class.php";
require_once dirname(__FILE__) . "/../config.php";
$client = new TransactionsApiClient(ApiUrl::URL_LOCAL, INVIPAY_API_KEY, INVIPAY_SIGNATURE_KEY, INVIPAY_PARTNER_API_KEY, INVIPAY_PARTNER_SIGNATURE_KEY);
$transactionId = '5f28fb93-db4a-4d1c-9529-4f6e81603ffc';
Logger::info('Getting details of transaction {0}', $transactionId);
$result = $client->getTransaction($transactionId);
Logger::info('Result is: {0}', $result);
print_separator();
<?php

require_once dirname(__FILE__) . "/../../TransactionsApiClient.class.php";
require_once dirname(__FILE__) . "/../config.php";
$client = new TransactionsApiClient(INVIPAY_API_URL, INVIPAY_API_KEY, INVIPAY_SIGNATURE_KEY, INVIPAY_PARTNER_API_KEY, INVIPAY_PARTNER_SIGNATURE_KEY);
$orderId = null;
Logger::info('Getting payoff cost calculation');
$transactionIds = array('4e95f6d9-6b64-4129-8332-ab7163e012f9', '5e15f6d9-6b64-4129-8332-ab7163e012f2');
$result = $client->calculatePayoffCost($transactionIds);
Logger::info('Result is: {0}', $result);
Logger::info('Getting payoff cost calculation');
$transactionIds = array('4e95f6d9-6b64-4129-8332-ab7163e012f9', '5e15f6d9-6b64-4129-8332-ab7163e012f2');
$result = $client->startPayoff($transactionIds);
Logger::info('Result is: {0}', $result);