PHP lib for access download and parse finance transactions from your click.alfabank.ru account
Branch: master
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
examples
src
tests
.gitignore
.gitlab-ci.yml
LICENSE
composer.json
phpcs.xml.dist
phpunit.xml.dist
readme.md

readme.md

PHP client for click.alfabank.ru

Либа предоставляет полный набор инструментов для организации импорта ваших финансовых транзакций из интернет-банка "Альфа-Клик" в любую внешнюю систему.

AlfaBankClient служит для подключение к онлайн-банку и скачиванию csv с историей транзакций. Для работы необходим smart-selenium.

$logger = new SimpleLogger();
$driver = createWebDriver($config['selenium_host'], $config['selenium_port']);
$client = new AlfaBankClient($driver, $config['bank_login'], $config['bank_pass']);
$client->setLogger($logger);

$accounts = $client->getAccountsList();
if (count($accounts)) {
    $account = $accounts[0];
    $logger->info($account->getName() . ': ' . $account->getNumber());
    $csv = $client->downloadAccountHistory($account->getNumber());
    $logger->info($csv);
}

TransactionsComparator позволяет сравнивать уже импортированные транзакции со скаченной csv для того чтобы получить список обновлений.

$loader = new CsvLoader();
$currentCollection = YourStorage::loadCurrentTransactionsFromDb();
$newCollection = $loader->loadFromFile(__DIR__ .'/../tests/data/movementList_2018-03-07_19:45:18.csv');

$differ = new TransactionsComparator();
$diff = $differ->diff($currentCollection, $newCollection);

YourStorage::insertTransactionsToDb($diff->getNewCommitted());
YourStorage::insertTransactionsToDb($diff->getNewHold());
YourStorage::updateTransactionsInDb($diff->getUpdated());
YourStorage::deleteTransactionsFromDb($diff->getDeletedIds());