Download the PHP package avangard/api without Composer
On this page you can find all versions of the php package avangard/api. It is possible to download/install these versions without Composer. Possible dependencies are resolved automatically.
Informations about the package api
AVANGARD PHP Client
Библиотека для интеграции с API V4 банка Авангард. Реализует основные запросы к API банка. Подробное описание API смотрите в технической документации.
Установка с помощью composer
-
В корне директории, где собираетесь установить библиотеку, создайте файл composer.json со следующим содержимым:
- В этой же директории выполните команду
Использование
Подключение библиотеки к проекту
Чтобы использовать методы библиотеки в своём коде, необходимо подключить скрипт автозагрузки классов и создать объект
класса ApiClient
Параметры конструктора
shopId
- ID интернет-магазина в банковской системе*shopPassword
- пароль интернет-магазина в банковской системе*shopSign
- подпись интернет-магазина в банковской системе*serverSign
- подпись ответов банка*boxAuth
- объект, который содержит авторизационные данные для отправки чеков в онлайн-кассу. Если передатьnull
, то отправка чеков производиться не будет. Подробнееproxy
- http url прокси сервера (если используется). По умолчаниюnull
*указанные параметры выдаются техподдержкой банка при заключении договора на интернет-эквайринг
ВНИМАНИЕ!
Все методы данной библиотеки следует использовать в конструкции try/catch:
Метод \Avangard\Lib\Logger::log
рекомендуется использовать с флагом $debug
который может, например,
задаваться в административной панели сайта. Этот метод отсылает отчёты об ошибках в telegram разработчика.
Заказы и оплата
prepareForms($order, $type)
- подготавливает параметры для формы оплаты.
Параметры:
Возвращаемые значения:
-
$type = ApiClient::HOST2HOST
: -
$type = ApiClient::POSTFORM
: $type = ApiClient::GETURL
:
Пример HOST2HOST/GETURL:
Пример POSTFORM:
orderRegister($order)
- регистрирует оплату в интернет-эквайринге и возвращает TICKET-параметр для дальнейшей оплаты.
Параметры:
Возвращаемое значение:
Пример:
getOrderByTicket($ticket)
- получить информацию об оплате по TICKET-параметру.
Параметры:
string $ticket
- уникальный идентификатор оплаты в интернет-эквайринге банка
Пример возвращаемого массива:
Пример:
Callback запросы из банка
isCorrectHash($params)
- проверяет подпись callback запроса из банка.
Параметры:
array $params
- массив входящих параметров запроса
Возвращаемые значения:
true
, если подпись верна, иначе false
Пример:
sendResponse()
- отправляет корректный код состояния ответа на callback запрос из банка, затем завершает выполнение скрипта. Если вы реализуете обработку callback запросов из банка, необходимо всегда вызывать данный метод после успешной обработки запроса
Пример:
Возврат средств и отмена оплаты
orderRefund($ticket, $amount = null)
- производит частичное/полное возмещение денежных средств по конкретной оплате.
Если оплата была совершена по QR коду (с помощью СБП), то после отправки запроса на возмещение денежных средств, метод производит проверку статуса возврата, т.к. возврат по оплатам, совершённым по QR, производится асинхронно. Всего осуществляется максимум 8 проверок статуса возврата, задержка между проверками 5 секунд
Параметры:
string $ticket
- уникальный идентификатор оплаты в интернет-эквайринге банкаnumber $amount
- сумма к возврату в копейках. Если не передавать данный параметр, то будет произведен полный возврат денежных средств
Возвращаемое значение:
Пример:
orderCancel($ticket)
- отменяет ранее зарегистрированную, но ещё не оплаченную попытку оплаты. Этот метод нужно вызывать, если по какой-то причине необходимо запретить пользователю оплату по заказу.
Параметры:
string $ticket
- уникальный идентификатор оплаты в интернет-эквайринге банка
Возвращаемое значение:
true
, если оплата была отменена
Пример:
Операции по заказу
getOpersByOrderNumber($order_number)
- получить список операций по номеру заказа в интернет-магазине.
Параметры:
string $order_number
- номер заказа в интернет-магазине
Пример возвращаемого массива:
Пример:
getOpersByDate($date)
- получить список операций за определённую дату.
Параметры:
string $date
- дата
Возвращаемое значение:
Возвращаемый массив полностью аналогичен методу getOpersByOrderNumber
Пример:
Отправка чеков в онлайн-кассу
Библиотека позволяет отправлять чеки в онлайн-кассу. На данный момент реализована интеграция с кассами АТОЛ Онлайн ФФД 1.05, АТОЛ Онлайн ФФД 1.2 и OrangeData.
Генерация авторизационных данных касс
Конфигурацию для подключения к онлайн-кассе следует хранить в БД в виде JSON строки. Чтобы создать валидный JSON,
вы можете воспользоваться генератором авторизационных данных касс, входящим в состав данной библиотеки. Он расположен
по пути vendor/avangard/api/src/generateBoxAuth/index.php
BoxAuthFactory::createBoxAuth($boxJson)
- возвращает объект с авторизационными данными для кассы$boxAuth
для его передачи в конструктор классаApiClient
Параметры:
$boxJson
- JSON объект авторизационных данных для кассы
Возвращаемые значения:
В зависимости от выбранной кассы:
AtolonlineV4
для АТОЛ Онлайн ФФД 1.05;AtolonlineV5
для АТОЛ Онлайн ФФД 1.2;Orangedata
для OrangeData;null
, если касса не выбрана или не существует;
Пример:
ВНИМАНИЕ!
Если объект класса ApiCLient
был создан с параметром $boxAuth
, отличным от null
, то в конструкторе класса
производится попытка установки соединения с кассой. Если подключиться к кассе не удалось, то выбрасывается Exception
,
и дальнейшая работа скрипта прекращается
Подготовка чека для отправки в онлайн кассу
Чек для отправки в онлайн кассу представляет собой объект класса ReceiptEntity
Параметры конструктора:
string $id
- номер заказа в интернет-магазинеint $time
- текущее время в виде timestamp
Другие параметры класса:
ClientEntity $client
- объект с информацией о покупателеReceiptItemEntity[] $items
- массив объектов с информацией по каждой позиции в чекеfloat $total
- общая сумма покупки, включая доставку
Информация о покупателе представлена в виде объекта класса ClientEntity
Параметры конструктора:
string $name
- ФИО покупателя
Другие параметры класса:
string $phone
- телефон покупателяstring $email
- email покупателя
Информация о позиции в чеке представлена в виде объекта класса ReceiptItemEntity
Параметры конструктора:
string $name
- название товараfloat $price
- цена товараfloat $quantity
- количество товараfloat $sum
- общая стоимость товаров (обычно, количество*цена)
Другие параметры класса:
string $payment_object
- объект расчёта
Чтобы добавить в чек доставку, воспользуйтесь методом ReceiptItemEntity::delivery
Параметры метода аналогичны используемым в конструкторе ReceiptItemEntity
. Отличие этого метода в том, что
в нём устанавливается $payment_object = 'service'
, что соответствует объекту расчёта "Услуга".
По умолчанию объект расчёта для каждой позиции в чеке берётся из JSON объекта с авторизационными данными для кассы,
но если вам нужно добавить в чек позицию с иным объектом рассчёта, то после создания объекта ReceiptItemEntity
вызовите метод setPaymentObject($paymentObject)
и передайте строковое значение объекта расчёта, как того требует
документация вашей онлайн кассы
Чтобы подготовить чек для отправки в онлайн кассу, необходимо заполнить данные о компании, информацию по каждой позиции в чеке и общую сумму покупки.
Отправка чека в онлайн кассу
sendBill($data)
- отправляет чек о покупке в онлайн кассу
Параметры:
ReceiptEntity $data
- подготовленный к отправке в онлайн кассу чек
Пример:
refundBill($data)
- отправляет чек о возврате денежных средств в онлайн кассу
Параметры:
ReceiptEntity $data
- подготовленный к отправке в онлайн кассу чек
Использовать аналогично методу sendBill($data)
.
All versions of api with dependencies
ext-json Version *
ext-dom Version *
ext-curl Version *
ext-mbstring Version *
ext-openssl Version *
guzzlehttp/guzzle Version ^6.4
psr/log Version ^1.0.2
psr/http-message Version 1.0.1 as 1.0