rusproj / uniteller-php-sdk
PHP Library for integration with Uniteller payment processing.
Requires
- php: >=5.5
- guzzlehttp/guzzle: ^6.5
- php-http/guzzle6-adapter: ^1.1
- php-http/httplug: ^1.1
Requires (Dev)
- phpunit/phpunit: ^5
- symfony/var-dumper: ^3.2
This package is auto-updated.
Last update: 2024-10-23 20:54:18 UTC
README
PHP (5.6+) 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
Install
For install package follow this command:
composer require tmconsulting/uniteller-php-sdk
Usage
A few usage example the current SDK your can found on the examples
folder.
Just follow instruction on README.md
file.
Configure credentials
<?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');
Redirect to page payment
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();
Recurrent payment
<?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 ]);
Cancel payment
<?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 } }
Receive results
<?php $results = $uniteller->results([ 'ShopOrderNumber' => 'Order_IDP number' ]); var_dump($results); // $results[0]->getCardNumber();
Callback (gateway notification)
Receive incoming parameters from gateway and verifying signature.
<?php if (! $uniteller->verifyCallbackRequest(['all_parameters_from_post_with_signature'])) { return 'invalid_signature'; }
Tests
vendor/bin/phpunit
License
MIT.