PHP (7.2+) SDK for integration internet-acquiring of the Uniteller (unofficial). This documentation is available in Russian language. Also, this SDK integrated with Payum library and you can use gateway.
Features:
- payment (method
pay
) - recurrent (method
recurrent
) - cancel (method
unblock
) - receive results
- callback (method for verify incoming signature)
- general error handler for any request
- general statuses (In the requests/responses may to meet
canceled
orcancelled
variants. They will be converted to general status like ascancelled
.)
TODO:
- translate to English comments and system (error) messages
- validation
- implement method
card
- implement method
confirm
For install package follow this command:
composer require tmconsulting/uniteller-php-sdk
A few usage example the current SDK your can found on the examples
folder.
Just follow instruction on README.md
file.
<?php
$uniteller = new \Tmconsulting\Uniteller\Client();
$uniteller->setShopId('you_shop_id');
$uniteller->setLogin('you_login_number');
$uniteller->setPassword('you_password');
$uniteller->setBaseUri('https://wpay.uniteller.ru');
So, for redirect to page your enough to run payment
method with parameters like as:
<?php
use Tmconsulting\Uniteller\Payment\PaymentBuilder;
$builder = new PaymentBuilder();
$builder
->setOrderIdp(mt_rand(10000, 99999))
->setSubtotalP(10)
->setCustomerIdp(mt_rand(10000, 99999))
->setUrlReturnOk('http://google.ru/?q=success')
->setUrlReturnNo('http://google.ru/?q=failure');
$uniteller->payment($builder)->go();
// if you don't need redirect
// $uniteller->payment($builder)->getUri();
or use plain array
<?php
$uniteller->payment([
'Order_IDP' => mt_rand(10000, 99999),
// ... other parameters
])->go();
<?php
use Tmconsulting\Uniteller\Recurrent\RecurrentBuilder;
$builder = (new RecurrentBuilder())
->setOrderIdp(mt_rand(10000, 99999))
->setSubtotalP(15)
->setParentOrderIdp(00000) // order id of any past payment
->setParentShopIdp($uniteller->getShopId()); // optional
$results = $uniteller->recurrent($builder);
or use plain array
<?php
$results = $uniteller->recurrent([
'Order_IDP' => mt_rand(10000, 99999),
// ... other parameters
]);
<?php
use Tmconsulting\Uniteller\Cancel\CancelBuilder;
$builder = (new CancelBuilder())->setBillNumber('RRN Number, (12 digits)');
$results = $uniteller->cancel($builder);
or
<?php
use Tmconsulting\Uniteller\Order\Status;
$results = $uniteller->cancel([
'Billnumber' => 'RRN Number, (12 digits)',
// ...
]);
foreach ($results as $payment) {
// see Tmconsulting\Uniteller\Order\Order for other methods.
if ($payment->getStatus() === Status::CANCELLED) {
// payment was cancelled
}
}
<?php
$results = $uniteller->results([
'ShopOrderNumber' => 'Order_IDP number'
]);
var_dump($results);
// $results[0]->getCardNumber();
Receive incoming parameters from gateway and verifying signature.
<?php
if (! $uniteller->verifyCallbackRequest(['all_parameters_from_post_with_signature'])) {
return 'invalid_signature';
}
vendor/bin/phpunit
MIT.