PHPackages                             avangard/api - 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. [API Development](/categories/api)
4. /
5. avangard/api

AbandonedArchivedLibrary[API Development](/categories/api)

avangard/api
============

AVANGARD API v4 client for php

3.1.0(1y ago)03.7k6[1 issues](https://github.com/avangardDeveloper/Avangard-PHP-Lib/issues)MITPHPPHP &gt;=5.6.0

Since Nov 20Pushed 1y ago2 watchersCompare

[ Source](https://github.com/avangardDeveloper/Avangard-PHP-Lib)[ Packagist](https://packagist.org/packages/avangard/api)[ RSS](/packages/avangard-api/feed)WikiDiscussions master Synced 1w ago

READMEChangelog (10)Dependencies (3)Versions (22)Used By (0)

AVANGARD PHP Client
===================

[](#avangard-php-client)

Библиотека для интеграции с API V4 банка Авангард. Реализует основные запросы к API банка. Подробное описание API смотрите в технической документации.

Установка с помощью composer
----------------------------

[](#установка-с-помощью-composer)

1. В корне директории, где собираетесь установить библиотеку, создайте файл **composer.json** со следующим содержимым:

```
{
    "require": {
        "avangard/api": "dev-master"
    },
    "repositories": [
        {
            "type": "git",
            "url": "https://github.com/avangardDeveloper/Avangard-PHP-Lib"
        }
    ]
}
```

2. В этой же директории выполните команду

```
composer install
```

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

[](#использование)

### Подключение библиотеки к проекту

[](#подключение-библиотеки-к-проекту)

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

```
require_once ("vendor/autoload.php");
use Avangard\ApiClient;

$apiClient = new ApiClient($shopId, $shopPassword, $shopSign, $serverSign, $boxAuth, $proxy);
```

### Параметры конструктора

[](#параметры-конструктора)

- `shopId` - ID интернет-магазина в банковской системе\*
- `shopPassword` - пароль интернет-магазина в банковской системе\*
- `shopSign` - подпись интернет-магазина в банковской системе\*
- `serverSign` - подпись ответов банка\*
- `boxAuth` - объект, который содержит авторизационные данные для отправки чеков в онлайн-кассу. Если передать `null`, то отправка чеков производиться не будет. [Подробнее](#generateBoxAuth)
- `proxy` - http url прокси сервера (если используется). По умолчанию `null`

\*указанные параметры выдаются техподдержкой банка при заключении договора на интернет-эквайринг

**ВНИМАНИЕ!**
Все методы данной библиотеки следует использовать в конструкции try/catch:

```
try {
    // All methods here...
} catch (\Exception $e) {
    if ($debug) {
        \Avangard\Lib\Logger::log($e);
        // Your custom logging here...
    }
}
```

Метод `\Avangard\Lib\Logger::log` рекомендуется использовать с флагом `$debug` который может, например, задаваться в административной панели сайта. Этот метод отсылает отчёты об ошибках в telegram разработчика.

Заказы и оплата
---------------

[](#заказы-и-оплата)

1. `prepareForms($order, $type)` - подготавливает параметры для формы оплаты.

Параметры:

- ```
      $order = [
          'AMOUNT' => 'number, обязательный',                     // сумма к оплате в копейках
          'ORDER_NUMBER' =>  'string, обязательный',              // номер заказа в интернет-магазине
          'ORDER_DESCRIPTION' => 'string, обязательный',          // описание заказа в интернет-магазине
          'LANGUAGE' => 'string, обязательный, по умолчанию RU',  // язык описания заказа в интернет-магазине
          'BACK_URL' => 'string, обязательный',                   // ссылка безусловного редиректа
          'BACK_URL_OK' => 'string',                              // ссылка успешного редиректа
          'BACK_URL_FAIL' => 'string',                            // ссылка НЕуспешного редиректа
          'CLIENT_NAME' => 'string',                              // имя плательщика
          'CLIENT_ADDRESS' => 'string',                           // физический адрес плательщика
          'CLIENT_EMAIL' => 'string',                             // email плательщика
          'CLIENT_PHONE' => 'string',                             // телефон плательщика
          'CLIENT_IP' => 'string'                                 // ip-адрес плательщика
      ];
    ```
- ```
      $type =
          ApiClient::HOST2HOST    // Регистрирует оплату в интернет-эквайринге и возвращает TICKET-параметр для последующей оплаты заказа
          ApiClient::POSTFORM     // Подготавливает параметры для HTML формы оплаты, показываемой на стороне клиента (часто требуется для CMS)
          ApiClient::GETURL       // Регистрирует оплату в интернет-эквайринге и возвращает ссылку для последующей оплаты заказа
    ```

Возвращаемые значения:

- `$type = ApiClient::HOST2HOST`:

```
[
    "URL" => "https://pay.avangard.ru/iacq/pay",
    "METHOD" => "get",
    "INPUTS" => [
        "TICKET" => "JGceLCtt000012682687LskJXuIpbfmpgeeKgkcj"
    ]
]
```

- `$type = ApiClient::POSTFORM`:

```
[
  "URL" => "https://pay.avangard.ru/iacq/post",
  "METHOD" => "post",
  "INPUTS" => [
    "SHOP_ID" => "1",
    "SHOP_PASSWD" => "pass",
    "AMOUNT" => 1000,
    "ORDER_NUMBER" => "sa12",
    "ORDER_DESCRIPTION" => "My desc",
    "BACK_URL" => "http://example.ru/payments/avangard/?result=success",
    "LANGUAGE" => "RU",
    "SIGNATURE" => "1EBE4761D9B165D8FF784803686AF511",
  ]
]
```

- `$type = ApiClient::GETURL`:

```
"https://pay.avangard.ru/iacq/pay?ticket=JGceLCtt000012682687LskJXuIpbfmpgeeKgkcj"
```

Пример HOST2HOST/GETURL:

```
