PHPackages                             qiwi/bill-payments-php-sdk - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [Payment Processing](/categories/payments)
4. /
5. qiwi/bill-payments-php-sdk

ActiveLibrary[Payment Processing](/categories/payments)

qiwi/bill-payments-php-sdk
==========================

Universal payments API SDK

0.2.2(4y ago)57196.3k↓56.3%17[8 issues](https://github.com/QIWI-API/bill-payments-php-sdk/issues)2MITPHPPHP &gt;=5.6.0CI failing

Since Oct 23Pushed 4y ago7 watchersCompare

[ Source](https://github.com/QIWI-API/bill-payments-php-sdk)[ Packagist](https://packagist.org/packages/qiwi/bill-payments-php-sdk)[ Docs](https://github.com/QIWI-API/bill-payments-php-sdk)[ RSS](/packages/qiwi-bill-payments-php-sdk/feed)WikiDiscussions master Synced 2d ago

READMEChangelog (6)Dependencies (4)Versions (7)Used By (2)

Universal payments API PHP SDK
==============================

[](#universal-payments-api-php-sdk)

[![Build Status](https://camo.githubusercontent.com/9917136f062d7ccae0f8b3217bbd9e5745ac7ef6dbf623e3835a8cb53d402438/68747470733a2f2f7472617669732d63692e6f72672f514957492d4150492f62696c6c2d7061796d656e74732d7068702d73646b2e7376673f6272616e63683d6d6173746572)](https://travis-ci.org/QIWI-API/bill-payments-php-sdk)[![Latest Stable Version](https://camo.githubusercontent.com/ab1e202727cc2756c4027470bc79d9df4caa3a37bab8bab9d06731846889d81b/68747470733a2f2f706f7365722e707567782e6f72672f716977692f62696c6c2d7061796d656e74732d7068702d73646b2f76657273696f6e)](https://packagist.org/packages/qiwi/bill-payments-php-sdk)[![Total Downloads](https://camo.githubusercontent.com/22168f523a96c0362255ac986e9b271bf9eacc20af42d55532afbff903bd4609/68747470733a2f2f706f7365722e707567782e6f72672f716977692f62696c6c2d7061796d656e74732d7068702d73646b2f646f776e6c6f616473)](https://packagist.org/packages/qiwi/bill-payments-php-sdk)

PHP SDK модуль для внедрения единого платежного протокола эквайринга и QIWI Кошелька.

Установка и подключение
-----------------------

[](#установка-и-подключение)

Установка с помощью [composer](https://getcomposer.org/download/):

```
$ composer require qiwi/bill-payments-php-sdk
```

Документация
------------

[](#документация)

**Пошаговое руководство по работе с SDK (для физических лиц)**:
**API P2P-счетов (для физических лиц)**:
**API QIWI Кассы (для юридических лиц)**:

Генерация авто-документации `composer run docs`.

Авторизация
-----------

[](#авторизация)

Для использования SDK требуется `SECRET_KEY`, подробности в документации — [для физ.лиц](https://developer.qiwi.com/ru/p2p-payments/#auth), [для юр.лиц](https://developer.qiwi.com/ru/bill-payments/#auth).

```

```

Смена `SECRET_KEY` на новый:

```

```

Примеры
-------

[](#примеры)

По умолчанию пользователю доступно несколько способов оплаты. В платежной форме параметры счета передаются в открытом виде в ссылке. Далее клиенту отображается форма с выбором способа оплаты. При использовании этого способа нельзя гарантировать, что все счета выставлены мерчантом, в отличие от выставления по API. Через API все параметры передаются в закрытом виде , так же в API поддерживаются операции выставления и отмены счетов, возврата средств по оплаченным счетам (только для юр. лиц), а также проверки статуса выполнения операций.

### Платежная форма

[](#платежная-форма)

Простой способ для интеграции. При открытии формы клиенту автоматически выставляется счет. Параметры счета передаются в открытом виде в ссылке. Далее клиенту отображается платежная форма с выбором способа оплаты. При использовании этого способа нельзя гарантировать, что все счета выставлены мерчантом, в отличие от выставления по API.

Метод `createPaymentForm` создает платежную форму. В параметрах нужно указать: ключ идентификации провайдера `publicKey`, полученный в личном кабинете QIWI, идентификатор счета `billId` внутри вашей системы и сумму `amount`. В результате будет получена ссылка на форму оплаты, которую можно передать клиенту. Подробнее о доступных параметрах в документации — [для физ. лиц](https://developer.qiwi.com/ru/p2p-payments/#http), [для юр. лиц](https://developer.qiwi.com/ru/bill-payments/#http).

```

```

Вывод:

```
https://oplata.qiwi.com/create?publicKey=2tbp1WQvsgQeziGY9vTLe9vDZNg7tmCymb4Lh6STQokqKrpCC6qrUUKEDZAJ7mvFnzr1yTebUiQaBLDnebLMMxL8nc6FF5zfmGQnypdXCbQJqHEJW5RJmKfj8nvgc&amount=200&billId=cc961e8d-d4d6-4f02-b737-2297e51fb48e&successUrl=http%3A%2F%2Ftest.ru%2F

```

### Выставление счета

[](#выставление-счета)

Надежный способ для интеграции. Параметры передаются server2server с использованием авторизации. Метод позволяет выставить счет, при успешном выполнении запроса в ответе вернется параметр `payUrl` - ссылка для редиректа пользователя на платежную форму.

Метод `createBill` выставляет новый счет. В параметрах нужно указать: идентификатор счета `billId` внутри вашей системы и дополнительными параметрами `fields`. В результате будет получен ответ с данными о выставленном счете.

Подробное описание параметров для выставления счёта представлено в [руководстве по использованию SDK](https://developer.qiwi.com/ru/p2p-sdk-guide/#step4), а так же в документации [для физ.лиц](https://developer.qiwi.com/ru/p2p-payments/#create) и [для юр. лиц](https://developer.qiwi.com/ru/bill-payments/#create)

```

```

Вывод:

```
Array
(
    [siteId] => 270305
    [billId] => cc961e8d-d4d6-4f02-b737-2297e51fb48e
    [amount] => Array
        (
            [currency] => RUB
            [value] => 200.34
        )

    [status] => Array
        (
            [value] => WAITING
            [changedDateTime] => 2018-07-12T10:28:38.855+03:00
        )

    [comment] => test
    [creationDateTime] => 2018-07-12T10:28:38.855+03:00
    [expirationDateTime] => 2018-08-26T10:28:38.855+03:00
    [payUrl] => https://oplata.qiwi.com/form/?invoice_uid=cc961e8d-d4d6-4f02-b737-2297e51fb48e&successUrl=http%3A%2F%2Ftest.ru%2F
)

```

### Информация о счете

[](#информация-о-счете)

Метод `getBillInfo` возвращает информацию о счете. В параметрах нужно указать идентификатор счета `billId` внутри вашей системы, в результате будет получен ответ со статусом счета. Подробнее в документации — [для физ.лиц](https://developer.qiwi.com/ru/p2p-payments/#invoice-status), [для юр.лиц](https://developer.qiwi.com/ru/bill-payments/#invoice-status).

```

```

Вывод:

```
Array
(
    [siteId] => 270305
    [billId] => cc961e8d-d4d6-4f02-b737-2297e51fb48e
    [amount] => Array
        (
            [currency] => RUB
            [value] => 200.34
        )

    [status] => Array
        (
            [value] => WAITING
            [changedDateTime] => 2018-07-12T10:31:06.846+03:00
        )

    [comment] => test
    [creationDateTime] => 2018-07-12T10:31:06.846+03:00
    [expirationDateTime] => 2018-08-26T10:31:06.846+03:00
    [payUrl] => https://oplata.qiwi.com/form/?invoice_uid=cc961e8d-d4d6-4f02-b737-2297e51fb48e
)

```

### Отмена неоплаченного счета

[](#отмена-неоплаченного-счета)

Метод `cancelBill` отменяет неоплаченный счет. В параметрах нужно указать идентификатор счета `billId` внутри вашей системы, в результате будет получен ответ с информацией о счете. Подробнее в документации — [для физ.лиц](https://developer.qiwi.com/ru/p2p-payments/#cancel), [для юр.лиц](https://developer.qiwi.com/ru/bill-payments/#cancel).

```

```

Вывод:

```
Array
(
    [siteId] => 270305
    [billId] => cc961e8d-d4d6-4f02-b737-2297e51fb48e
    [amount] => Array
        (
            [currency] => RUB
            [value] => 200.34
        )

    [status] => Array
        (
            [value] => REJECTED
            [changedDateTime] => 2018-07-12T10:32:17.595+03:00
        )

    [comment] => test
    [creationDateTime] => 2018-07-12T10:32:17.481+03:00
    [expirationDateTime] => 2018-08-26T10:32:17.481+03:00
    [payUrl] => https://oplata.qiwi.com/form/?invoice_uid=cc961e8d-d4d6-4f02-b737-2297e51fb48e
)

```

### Возврат средств

[](#возврат-средств)

#### ! Метод недоступен для физических лиц

[](#-метод-недоступен-для-физических-лиц)

Методом `refund` производит возврат средств. В параметрах нужно указать идентификатор счета `billId`, идентификатор возврата `refundId` внутри вашей системы, сумму возврата `amount` и валюту возврата `currency`. Подробнее в [документации](https://developer.qiwi.com/ru/bill-payments/#refund).

```

```

В результате будет выведена информация о возврате и о счете:

```
Array
(
    [amount] => Array
        (
            [currency] => RUB
            [value] => 0.01
        )

    [dateTime] => 2018-07-12T10:34:02.191+03:00
    [refundId] => 1531380841742
    [status] => PARTIAL
)

```

### Информация о возврате

[](#информация-о-возврате)

#### ! Метод недоступен для физических лиц

[](#-метод-недоступен-для-физических-лиц-1)

Метод `getRefundInfo` запрашивает статус возврата, в параметрах нужно указать идентификатор счета `billId`, идентификатор возврата `refundId` внутри вашей системы. Подробнее в [документации](https://developer.qiwi.com/ru/bill-payments/#refund-status).

```

```

В результате будет выведена информация о возврате:

```
Array
(
    [amount] => Array
        (
            [currency] => RUB
            [value] => 1.00
        )

    [dateTime] => 2018-07-11T15:06:55.987+03:00
    [refundId] => 1520425084283
    [status] => PARTIAL
)

```

### Вспомогательные методы

[](#вспомогательные-методы)

- Метод `generateId` возвращает строку в формате UUID v4, удобно для генерирования `billId`, `refundId`:

```

```

- Метод `getLifetimeByDay` генерирует дату до которой счет будет доступен для оплаты - `lifetime`. Входной параметр - сколько дней счет будет доступен, если не указанно, то по умолчанию 45 дней. Метод возвращает строку в формате ISO 8601 UTC±0:00:

```

```

```

```

- Метод `checkNotificationSignature` осуществляет проверку подписи при нотификации о новом счете от сервера уведомлений QIWI. Принимает на вход подпись из входящего запроса, объект - тело запроса и secret ключ, с помощью которого должна осуществляться подпись:

```

```

- Метод `getPayUrl` возвращает URL оплаты по счету:

```
