Library provide ability to make requests to TransactPRO Gateway API.
Library are supported by me, and not by TransactPRO. So, submit all requests, issues and questions directly here (on GitHub).
Library provided as is.
You must adopt library for your projects by yourselves, I only provide basic functionality to make requests.
Recommended way of installation is through composer.
Run command line command composer require transact-pro/gate
or add to your composer.json:
"require": {
"transact-pro/gate": "^v1.1"
}
And then install with:
$ composer.phar install
You can manually download library and use autoloader.
require_once 'lib/autoloader.php'
Field | Mandatory | Type | Description |
---|---|---|---|
apiUrl | yes | string | Api URL. Can be aquired via Integration manual. |
guid | yes | string | Merchant GUID. |
pwd | yes | string | Unecrypted password. It will be encrypted by client. |
verifySSL | no | bool | Default: true . Must be set to false for test environment |
use TransactPRO\Gate\GateClient;
$gateClient = new GateClient(array(
'apiUrl' => 'https://www.payment-api.com',
'guid' => 'AAAA-AAAA-AAAA-AAAA',
'pwd' => '111'
));
use TransactPRO\Gate\GateClient;
$gateClient = new GateClient(array(
'apiUrl' => 'https://www.payment-api.com',
'guid' => 'AAAA-AAAA-AAAA-AAAA',
'pwd' => '111',
'verifySSL' => false
));
GateClient instance provide number of actions, such as 'charge' or 'status_request'. All data passed into action are validated and if mandatory field missed, then exception will be raised. Please check integration manual, to get more info about required data for each action.
$response = $gateClient->init(array(
'rs' => 'AAAA',
'merchant_transaction_id' => '1',
'user_ip' => '127.0.0.1',
'description' => 'Test description',
'amount' => '100',
'currency' => 'LVL',
'name_on_card' => 'Vasyly Pupkin',
'street' => 'Main street 1',
'zip' => 'LV-0000',
'city' => 'Riga',
'country' => 'LV',
'state' => 'NA',
'email' => 'email@example.lv',
'phone' => '+371 11111111',
'card_bin' => '511111',
'bin_name' => 'BANK',
'bin_phone' => '+371 11111111',
'merchant_site_url' => 'http://www.example.com'
));
$response = $gateClient->charge(array(
'f_extended' => '5',
'init_transaction_id' => '13hpf5rp1e0ss72dypjnhalzn1wmrkfmsjtwzocg',
'cc' => '5111111111111111',
'cvv' => '111',
'expire' => '01/20',
'browser_accept_header' => "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8",
'browser_java_enabled' => true,
'browser_javascript_enabled' => true,
'browser_language' => "en-US",
'browser_color_depth' => "24",
'browser_screen_height' => "1080",
'browser_screen_width' => "1920",
'browser_tz' => "-180" ,
'browser_user_agent' => "Mozilla/5.0 (Windows NT 6.1; Win64; x64; rv:47.0) Gecko/20100101 Firefox/47.0",
));
$response = $gateClient->initDms(array(
'rs' => 'AAAA',
'merchant_transaction_id' => microtime(true),
'user_ip' => '127.0.0.1',
'description' => 'Test description',
'amount' => '100',
'currency' => 'LVL',
'name_on_card' => 'Vasyly Pupkin',
'street' => 'Main street 1',
'zip' => 'LV-0000',
'city' => 'Riga',
'country' => 'LV',
'state' => 'NA',
'email' => 'email@example.lv',
'phone' => '+371 11111111',
'card_bin' => '511111',
'bin_name' => 'BANK',
'bin_phone' => '+371 11111111',
'merchant_site_url' => 'http://www.example.com'
));
$response = $gateClient->makeHold(array(
'f_extended' => '5',
'init_transaction_id' => '13hpf5rp1e0ss72dypjnhalzn1wmrkfmsjtwzocg',
'cc' => '5111111111111111',
'cvv' => '111',
'expire' => '01/20'
));
$response = $gateClient->chargeHold(array(
'init_transaction_id' => '13hpf5rp1e0ss72dypjnhalzn1wmrkfmsjtwzocg'
));
$response = $gateClient->cancelDms(array(
'init_transaction_id' => '13hpf5rp1e0ss72dypjnhalzn1wmrkfmsjtwzocg',
'amount_to_refund' => '100'
));
$response = $gateClient->cancelRequest(array(
'init_transaction_id' => '13hpf5rp1e0ss72dypjnhalzn1wmrkfmsjtwzocg'
));
$response = $gateClient->refund(array(
'init_transaction_id' => '13hpf5rp1e0ss72dypjnhalzn1wmrkfmsjtwzocg',
'amount_to_refund' => '100'
));
$response = $gateClient->statusRequest(array(
'request_type' => 'transaction_status',
'init_transaction_id' => '13hpf5rp1e0ss72dypjnhalzn1wmrkfmsjtwzocg',
'f_extended' => '5'
));
$response = $gateClient->initP2P(array(
'rs' => 'AAAA',
'merchant_transaction_id' => microtime(true),
'user_ip' => '127.0.0.1',
'description' => 'Test description',
'amount' => '100',
'currency' => 'LVL',
'name_on_card' => 'Vasyly Pupkin',
'street' => 'Main street 1',
'zip' => 'LV-0000',
'city' => 'Riga',
'country' => 'LV',
'state' => 'NA',
'email' => 'email@example.lv',
'phone' => '+371 11111111',
'card_bin' => '511111',
'bin_name' => 'BANK',
'bin_phone' => '+371 11111111',
'merchant_site_url' => 'http://www.example.com',
'save_card' => '1',
'cardname' => 'John Doe',
'recipient_name' => 'Jane Doe',
'client_birth_date' => '06291988',
));
$response = $gateClient->doP2P(array(
'f_extended' => '5',
'init_transaction_id' => '13hpf5rp1e0ss72dypjnhalzn1wmrkfmsjtwzocg',
'cc_2' => '5111111111111111',
));
$response = $gateClient->initB2P(array(
'rs' => 'AAAA',
'merchant_transaction_id' => microtime(true),
'user_ip' => '127.0.0.1',
'description' => 'Test description',
'amount' => '10',
'currency' => 'RUB',
'name_on_card' => 'John Doe 1',
'street' => 'Main street 1',
'zip' => 'LV-0000',
'city' => 'Riga',
'country' => 'LV',
'state' => 'NA',
'email' => 'noemail@example.lv',
'phone' => '+371 11111111',
'card_bin' => '511111',
'bin_name' => 'BANK',
'bin_phone' => '+371 11111111',
'client_birth_date' => '15101970',
'merchant_site_url' => 'http://www.example.com',
));
$response = $gateClient->chargeB2P(array(
'f_extended' => '5',
'init_transaction_id' => '13hpf5rp1e0ss72dypjnhalzn1wmrkfmsjtwzocg',
'cc_2' => '5111111111111111',
'expire2' => '11/22',
));
$response = $gateClient->initCredit(array(
'rs' => 'AAAA',
'merchant_transaction_id' => microtime(true),
'user_ip' => '127.0.0.1',
'description' => 'Test description',
'amount' => '100',
'currency' => 'LVL',
'name_on_card' => 'Vasyly Pupkin',
'street' => 'Main street 1',
'zip' => 'LV-0000',
'city' => 'Riga',
'country' => 'LV',
'state' => 'NA',
'email' => 'email@example.lv',
'phone' => '+371 11111111',
'card_bin' => '511111',
'bin_name' => 'BANK',
'bin_phone' => '+371 11111111',
'merchant_site_url' => 'http://www.example.com',
));
$response = $gateClient->doCredit(array(
'f_extended' => '5',
'init_transaction_id' => '13hpf5rp1e0ss72dypjnhalzn1wmrkfmsjtwzocg',
'cc' => '5111111111111111',
'cvv' => '111',
'expire' => '01/20',
'merchant_referring_url' => 'http://www.payment.example.com/id=example_referring_id',
));
$response = $gateClient->initA2A(array(
'rs' => 'AAAA',
'merchant_transaction_id' => microtime(true),
'user_ip' => '127.0.0.1',
'description' => 'Test description',
'amount' => '100',
'currency' => 'LVL',
'name_on_card' => 'Vasyly Pupkin',
'street' => 'Main street 1',
'zip' => 'LV-0000',
'city' => 'Riga',
'country' => 'LV',
'state' => 'NA',
'email' => 'email@example.lv',
'phone' => '+371 11111111',
'card_bin' => '511111',
'bin_name' => 'BANK',
'bin_phone' => '+371 11111111',
'merchant_site_url' => 'http://www.example.com',
'save_card' => '1',
'cardname' => 'John Doe',
'client_birth_date' => '29061988',
));
$response = $gateClient->doA2A(array(
'f_extended' => '5',
'init_transaction_id' => '13hpf5rp1e0ss72dypjnhalzn1wmrkfmsjtwzocg',
'cc_2' => '5111111111111111',
));
$response = $gateClient->initStoreCardSms(array(
'rs' => 'AAAA',
'merchant_transaction_id' => '1',
'user_ip' => '127.0.0.1',
'description' => 'Test description',
'amount' => '100',
'currency' => 'LVL',
'name_on_card' => 'Vasyly Pupkin',
'street' => 'Main street 1',
'zip' => 'LV-0000',
'city' => 'Riga',
'country' => 'LV',
'state' => 'NA',
'email' => 'email@example.lv',
'phone' => '+371 11111111',
'card_bin' => '511111',
'bin_name' => 'BANK',
'bin_phone' => '+371 11111111',
'merchant_site_url' => 'http://www.example.com'
));
$response = $gateClient->initStoreCardCredit(array(
'rs' => 'AAAA',
'merchant_transaction_id' => microtime(true),
'user_ip' => '127.0.0.1',
'description' => 'Test description',
'amount' => '100',
'currency' => 'LVL',
'name_on_card' => 'Vasyly Pupkin',
'street' => 'Main street 1',
'zip' => 'LV-0000',
'city' => 'Riga',
'country' => 'LV',
'state' => 'NA',
'email' => 'email@example.lv',
'phone' => '+371 11111111',
'card_bin' => '511111',
'bin_name' => 'BANK',
'bin_phone' => '+371 11111111',
'merchant_site_url' => 'http://www.example.com',
));
$response = $gateClient->initStoreCardP2P(array(
'rs' => 'AAAA',
'merchant_transaction_id' => microtime(true),
'user_ip' => '127.0.0.1',
'description' => 'Test description',
'amount' => '100',
'currency' => 'LVL',
'name_on_card' => 'Vasyly Pupkin',
'street' => 'Main street 1',
'zip' => 'LV-0000',
'city' => 'Riga',
'country' => 'LV',
'state' => 'NA',
'email' => 'email@example.lv',
'phone' => '+371 11111111',
'card_bin' => '511111',
'bin_name' => 'BANK',
'bin_phone' => '+371 11111111',
'merchant_site_url' => 'http://www.example.com',
'save_card' => '1',
'cardname' => 'John Doe',
'recipient_name' => 'Jane Doe',
'client_birth_date' => '06291988',
));
$response = $gateClient->storeCard(array(
'f_extended' => '5',
'init_transaction_id' => '13hpf5rp1e0ss72dypjnhalzn1wmrkfmsjtwzocg',
'cc' => '5111111111111111',
'expire' => '01/20'
));
For usual Recurrent use:
- initRecurrent
For P2P recurrent use:
- initRecurrentCredit
For Credit recurrent use:
- initRecurrentP2P
For Credit recurrent use:
- initRecurrentA2A
Fields in these requests are same, read documetation for details.
Example:
$response = $gateClient->initRecurrent(array(
'rs' => 'AAAA',
'original_init_id' => '13hpf5rp1e0ss72dypjnhalzn1wmrkfmsjtwzocg',
'merchant_transaction_id' => microtime(true),
'amount' => '100',
'description' => 'Test description',
));
For usual Recurrent use:
- chargeRecurrent
For P2P recurrent use:
- doRecurrentCredit
For Credit recurrent use:
- doRecurrentP2P
For A2A recurrent use:
- doRecurrentA2A
Example:
$response = $gateClient->chargeRecurrent(array(
'f_extended' => '5',
'init_transaction_id' => '13hpf5rp1e0ss72dypjnhalzn1wmrkfmsjtwzocg',
));
Response instance returned as action result.
To check if curl request was successful, you can use isSuccessful
method;
$response->isSuccessful(); // Return bool.
To get raw response you can use getResponseContent
.
If request was successful, then API response was returned. If not, then curl_error was returned.
$response->getResponseContent(); // Return string.
$response->getParsedResponse(); // Parsed response content.
If you wish to run tests, you need to install development dependencies:
$ composer.phar install --dev
And then run them with:
$ vendor/bin/phpunit