kduma / emszmal-api
emSzmal Banking API wrapper in PHP
4.0.2
2024-04-26 08:44 UTC
Requires
- php: ~8.1
- ext-json: *
- guzzlehttp/guzzle: ^7.0
README
emSzmal Banking API wrapper in PHP
Install
Via Composer
$ composer require kduma/emszmal-api
Usage
$api = new \KDuma\emSzmalAPI\emSzmalAPI( api_id: $api_id, api_key: $api_key, timeout: 120, cache_provider: new \KDuma\emSzmalAPI\CacheProviders\NoCacheProvider(), ); $session = $api->SayHello(); $BankCredentials = new \KDuma\emSzmalAPI\DTO\BankCredentials( provider: \KDuma\emSzmalAPI\Enums\Bank::PKOiPKO, login: 'Login', password: 'Password', user_context: '', token_value: '', ); $accounts = $api->GetAccountsList( session: $session, credentials: $BankCredentials, ); $transactions = $api->GetAccountHistory( session: $session, account_number: "account number", date_since: '2016-10-25', date_to: '2016-10-30', credentials: $BankCredentials, ); $api->SayBye( session: $session, );
Laravel Usage
Setup
Add following entries to your .env
file:
EMSZMAL_API_ID="<api id>"
EMSZMAL_API_KEY=<api key>
EMSZMAL_BANK_PROVIDER_ID=<provider ID>
EMSZMAL_BANK_LOGIN=<login>
EMSZMAL_BANK_PASSWORD=<password>
EMSZMAL_BANK_USER_TOKEN=<token from bank>
Usage
You can resolve emSzmalAPI::class
class:
$api = app(\KDuma\emSzmalAPI\emSzmalAPI::class); $session = $api->SayHello(); $accounts = $api->GetAccountsList( session: $session, ); $transactions = $api->GetAccountHistory( session: $session, account_number: 'account number', date_since: '2016-10-25', date_to: '2016-10-30', ); $api->SayBye( session: $session, );
or You can use injection container
Route::get('/api', function (\KDuma\emSzmalAPI\emSzmalAPI $api) { $session = $api->SayHello(); $accounts = $api->GetAccountsList( session: $session, ); $transactions = $api->GetAccountHistory( session: $session, account_number: 'account number', date_since: '2016-10-25', date_to: '2016-10-30', ); $api->SayBye( session: $session, ); });
Multiple Bank Credentials
You can use multiple bank credentials. First, run the following command to copy config file:
php artisan vendor:publish --provider="KDuma\emSzmalAPI\Laravel\ServiceProvider"
In Your config/emszmalapi.php
file, in bank_credentials
section add additional credentials:
'bank_credentials' => [ 'bank_1' => [ 'provider' => env('EMSZMAL_BANK_1_PROVIDER_ID'), 'login' => env('EMSZMAL_BANK_1_LOGIN'), 'password' => env('EMSZMAL_BANK_1_PASSWORD'), 'user_context' => env('EMSZMAL_BANK_1_USER_CONTEXT', "I"), 'token_value' => env('EMSZMAL_BANK_1_USER_TOKEN', ''), ], 'bank_2' => [ 'provider' => env('EMSZMAL_BANK_2_PROVIDER_ID'), 'login' => env('EMSZMAL_BANK_2_LOGIN'), 'password' => env('EMSZMAL_BANK_2_PASSWORD'), 'user_context' => env('EMSZMAL_BANK_2_USER_CONTEXT', "I"), 'token_value' => env('EMSZMAL_BANK_2_USER_TOKEN', ''), ], ],
Now you can use the alias when calling API methods:
$api = app(\KDuma\emSzmalAPI\emSzmalAPI::class); $session = $api->SayHello(); $bank_1_accounts = $api->GetAccountsList( session: $session, credentials: 'bank_1', ); $bank_1_transactions = $api->GetAccountHistory( session: $session, account_number: "account number", date_since: '2016-10-25', date_to: '2016-10-30', credentials: 'bank_1', ); $bank_2_accounts = $api->GetAccountsList( session: $session, credentials: 'bank_2', ); $bank_2_transactions = $api->GetAccountHistory( session: $session, account_number: "account number", date_since: '2016-10-25', date_to: '2016-10-30', credentials: 'bank_2', ); $api->SayBye( session: $session, );
Credits
License
The MIT License (MIT). Please see License File for more information.