Skip to content

Commit

Permalink
Documentation was translated to English language.
Browse files Browse the repository at this point in the history
  • Loading branch information
roquie committed May 16, 2017
1 parent 23e00f5 commit e1d540e
Show file tree
Hide file tree
Showing 5 changed files with 243 additions and 72 deletions.
2 changes: 1 addition & 1 deletion .travis.yml
Original file line number Diff line number Diff line change
Expand Up @@ -25,4 +25,4 @@ before_script:
- composer config --list --global

script:
- composer test
- vendor/bin/phpunit
121 changes: 57 additions & 64 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,46 +1,59 @@
# Uniteller PHP SDK

[![Build Status](https://travis-ci.org/tmconsulting/uniteller-php-sdk.svg?branch=master)](https://travis-ci.org/tmconsulting/uniteller-php-sdk)
[![Latest Stable Version](https://poser.pugx.org/tmconsulting/uniteller-php-sdk/v/stable)](https://packagist.org/packages/tmconsulting/uniteller-php-sdk)
[![License](https://poser.pugx.org/tmconsulting/uniteller-php-sdk/license)](https://packagist.org/packages/tmconsulting/uniteller-php-sdk)
[![composer.lock](https://poser.pugx.org/tmconsulting/uniteller-php-sdk/composerlock)](https://packagist.org/packages/tmconsulting/uniteller-php-sdk)

<br />

<p align="center">
<img src="https://www.uniteller.ru//local/templates/index/img/base/logo.svg" width="220">
</p>

<br />
<br />

<p align="center">
<a href="https://travis-ci.org/tmconsulting/uniteller-php-sdk" target="_blank">
<img src="https://travis-ci.org/tmconsulting/uniteller-php-sdk.svg?branch=master" />
</a>
<a href="https://packagist.org/packages/tmconsulting/uniteller-php-sdk" target="_blank">
<img src="https://poser.pugx.org/tmconsulting/uniteller-php-sdk/v/stable" />
</a>
<a href="https://packagist.org/packages/tmconsulting/uniteller-php-sdk" target="_blank">
<img src="https://poser.pugx.org/tmconsulting/uniteller-php-sdk/license" />
</a>
<a href="https://packagist.org/packages/tmconsulting/uniteller-php-sdk" target="_blank">
<img src="https://poser.pugx.org/tmconsulting/uniteller-php-sdk/composerlock" />
</a>
</p>

<br />

PHP (5.6+) SDK для интеграции с интернет-эквайрингом от Uniteller.
PHP (5.6+) SDK for integration internet-acquiring of the Uniteller. [The documentation is available in Russian language](README_RU.md).

Реализовано:
* оплата (метод `pay`)
* отмена (метод `unblock`)
* получение результатов
* callback (проверка сигнатуры)
* обработчик ошибок, кидает эксепшены даже на строку `ERROR: %s` в теле ответа на запрос
* единство статусов.
Features:
* payment (method `pay`)
* 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` or `cancelled` variants. They will be converted to general status like as `cancelled`.)

Что осталось:
* прикрутить валидацию, используя декораторы
* добавить билдер для метода `results`
* метод `card`
* метод `recurrent`
* метод `confirm`
TODO:
* validation
* implement method `card`
* implement method `recurrent`
* implement method `confirm`

## Установка
## Install

Чтобы установить пакет, достаточно подключить его в проект, как зависимость:
For install package follow this command:

`composer require tmconsulting/uniteller-php-sdk`

## Использование
## Usage

Примеры использования SDK лежат в папке `./examples`, а так-же `README.md` файл,
в котором написан способ установки.
A few usage example the current SDK your can found on the `examples` folder.
Just follow instruction on `README.md` file.

### Установка учетных данных
### Configure credentials

```php
<?php
Expand All @@ -51,10 +64,9 @@ $uniteller->setPassword('you_password');
$uniteller->setBaseUri('https://wpay.uniteller.ru');
```

### Переход к оплате
### Redirect to page payment

Чтобы произвести оплату, достаточно вызвать метод `payment`,
он принимает первым аргументом либо построитель запроса, либо обычный массив параметров.
So, for redirect to page your enough to run `payment` method with parameters like as:

```php
<?php
Expand All @@ -69,36 +81,22 @@ $builder
->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
<?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([
'Order_IDP' => mt_rand(10000, 99999),
// ... прочие параметры
// ... other parameters
])->go();

// Если переходить к оплате сразу нет необходимости,
// можно получить готовую ссылку для оплаты
// $uniteller->payment($builder)->getUri();

```

### Отмена платежа
### Cancel payment

```php
<?php
Expand All @@ -108,7 +106,7 @@ $builder = (new CancelBuilder())->setBillNumber('RRN Number, (12 digits)');
$results = $uniteller->cancel($builder);
```

или
or

```php
<?php
Expand All @@ -119,17 +117,15 @@ $results = $uniteller->cancel([
// ...
]);

var_dump($results);

// разница статусов в Uniteller API учтена.
if ($results[0]->getStatus() === Status::CANCELLED) {
// платёж отменен
}

// доп. методы Tmconsulting\Uniteller\Order\Order
foreach ($results as $payment) {
// see Tmconsulting\Uniteller\Order\Order for other methods.
if ($payment->getStatus() === Status::CANCELLED) {
// payment was cancelled
}
}
```

### Получение результатов
### Receive results

```php
<?php
Expand All @@ -143,24 +139,21 @@ var_dump($results);
// $results[0]->getCardNumber();
```

### Callback
### Callback (gateway notification)

Приём данных от шлюза и проверка сигнатуры.
Receive incoming parameters from gateway and verifying signature.

```php
<?php

if (! $uniteller->getSignature()->verify('signature_from_post_params', ['all_parameters_from_post'])) {
return 'invalid_signature';
}

```

## Tests

## Тесты

Есть, но мало ;) Пока в процессе написания, буду рад любой помощи.
`vendor/bin/phpunit`

## Лицензия
## License

MIT.
165 changes: 165 additions & 0 deletions README_RU.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,165 @@
# Uniteller PHP SDK

<br />

<p align="center">
<img src="https://www.uniteller.ru//local/templates/index/img/base/logo.svg" width="220">
</p>

<br />
<br />

<p align="center">
<a href="https://travis-ci.org/tmconsulting/uniteller-php-sdk" target="_blank">
<img src="https://travis-ci.org/tmconsulting/uniteller-php-sdk.svg?branch=master" />
</a>
<a href="https://packagist.org/packages/tmconsulting/uniteller-php-sdk" target="_blank">
<img src="https://poser.pugx.org/tmconsulting/uniteller-php-sdk/v/stable" />
</a>
<a href="https://packagist.org/packages/tmconsulting/uniteller-php-sdk" target="_blank">
<img src="https://poser.pugx.org/tmconsulting/uniteller-php-sdk/license" />
</a>
<a href="https://packagist.org/packages/tmconsulting/uniteller-php-sdk" target="_blank">
<img src="https://poser.pugx.org/tmconsulting/uniteller-php-sdk/composerlock" />
</a>
</p>

<br />

PHP (5.6+) SDK для интеграции с интернет-эквайрингом от Uniteller.

Реализовано:
* оплата (метод `pay`)
* отмена (метод `unblock`)
* получение результатов
* callback (проверка сигнатуры)
* обработчик ошибок, кидает эксепшены даже на строку `ERROR: %s` в теле ответа на запрос
* единство статусов.

Что осталось:
* прикрутить валидацию, используя декораторы
* добавить билдер для метода `results`
* метод `card`
* метод `recurrent`
* метод `confirm`

## Установка

Чтобы установить пакет, достаточно подключить его в проект, как зависимость:

`composer require tmconsulting/uniteller-php-sdk`

## Использование

Примеры использования SDK лежат в папке `./examples`, а так-же `README.md` файл,
в котором написан способ установки.

### Установка учетных данных

```php
<?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');
```

### Переход к оплате

Чтобы произвести оплату, достаточно вызвать метод `payment`,
он принимает первым аргументом либо построитель запроса, либо обычный массив параметров.

```php
<?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();
// Если переходить к оплате сразу нет необходимости,
// можно получить готовую ссылку для оплаты
// $uniteller->payment($builder)->getUri();

```

или

```php
<?php
$uniteller->payment([
'Order_IDP' => mt_rand(10000, 99999),
// ... прочие параметры
])->go();
```

### Отмена платежа

```php
<?php
use Tmconsulting\Uniteller\Cancel\CancelBuilder;

$builder = (new CancelBuilder())->setBillNumber('RRN Number, (12 digits)');
$results = $uniteller->cancel($builder);
```

или

```php
<?php
use Tmconsulting\Uniteller\Order\Status;

$results = $uniteller->cancel([
'Billnumber' => 'RRN Number, (12 digits)',
// ...
]);

var_dump($results);

foreach ($results as $payment) {
// смотрите в Tmconsulting\Uniteller\Order\Order остальные методы.
if ($payment->getStatus() === Status::CANCELLED) {
// платеж отменён
}
}
```

### Получение результатов

```php
<?php

$results = $uniteller->results([
'ShopOrderNumber' => 'Order_IDP number'
]);

var_dump($results);

// $results[0]->getCardNumber();
```

### Callback

Приём данных от шлюза и проверка сигнатуры.

```php
<?php
if (! $uniteller->getSignature()->verify('signature_from_post_params', ['all_parameters_from_post'])) {
return 'invalid_signature';
}
```


## Тесты

`vendor/bin/phpunit`

## Лицензия

MIT.
13 changes: 6 additions & 7 deletions example/README.md
Original file line number Diff line number Diff line change
@@ -1,14 +1,13 @@
# Client Payment Sample
# SDK Payment Sample

Простейший пример использования Client PHP SDK.
Simple example of usage Client PHP SDK.

## Установка
## Install

* `git clone ${THIS_REPO_URI}`
* `git clone [email protected]:tmconsulting/uniteller-php-sdk.git`
* `composer install`
* `cd ./examples`
* `mv ./credentials.example.php ./credentials.php`

Теперь осталось прописать свои доступы в файле `./credentials.php`
и запустить веб-сервер: `php -S localhost:8080`

First, your should be fill `./credentials.php` file with your credentials.
Second, run server: `php -S localhost:8080`
Loading

0 comments on commit e1d540e

Please sign in to comment.