Download the PHP package alexmihel/laravel-sberbank-acquiring without Composer
On this page you can find all versions of the php package alexmihel/laravel-sberbank-acquiring. It is possible to download/install these versions without Composer. Possible dependencies are resolved automatically.
Informations about the package laravel-sberbank-acquiring
Laravel Sberbank Acquiring
Пакет предоставляет вашему приложению функциональность для работы с платежами с использованием эквайринга от Сбербанка. Возможности:
- Создание и хранение платежей
- Логирование операций по платежам
Перед использованием рекомендуется ознакомиться с документацией, предоставляемой Сбербанком.
Требования
- PHP >= 8.0
- Laravel >= 5.8
- Расширения PHP: ext-json, ext-curl
- Реляционная БД
Установка
Добавьте пакет в зависимости:
Опубликуйте файл настроек:
Запустите миграции:
Обзор
- Таблицы
- Клиент
- Операции
- Настройки
- Аутентификация
- Обновление статусов платежей
- События (Events)
- Исключения (Exception)
- Поддержка
- Лицензия (License)
Таблицы
Для хранения истории платежей и операций создаётся несколько таблиц:
- acquiring_payments - базовая таблица платежей, хранит общую информацию по платежам всех платежных систем
- acquiring_payment_operations - операции по платежам
- acquiring_sberbank_payments - платежи напрямую через систему Сбербанка
- acquiring_apple_pay_payments - платежи через Apple Pay
- acquiring_samsung_pay_payments - платежи через Samsung Pay
- acquiring_google_pay_payments - платежи через Google Pay
- acquiring_payment_statuses - справочник статусов платежей
- acquiring_payment_operation_types - справочник типов операций
- acquiring_payment_systems - справочник платежных систем
Диаграмма:
Связь базового платежа и платежей в разных платежных системах организована на уровне ORM через полиморфную связь.
Клиент
Пакет содержит два класса-клиента для работы с эквайрингом:
ApiClient
- вызывает API СбербанкаClient
- обёртка дляApiClient
, сохраняет платежи и операции в БД, использует файл настроек. Рекомендуется пользоваться им.
ApiClient
и Client
добавлены в Service Container и могут быть использованы
в Dependency Injection.
Резолвинг классов:
Операции
На данный момент поддерживаются следующие операции эквайринга:
Операция | Документация Сбербанка |
---|---|
Регистрация заказа | Ссылка |
Регистрация заказа с предавторизацией | Ссылка |
Запрос завершения оплаты заказа | Ссылка |
Запрос отмены оплаты заказа | Ссылка |
Запрос возврата средств оплаты заказа | Ссылка |
Получение статуса заказа | Ссылка |
Запрос оплаты через Apple Pay | Ссылка |
Запрос оплаты через Samsung Pay | Ссылка |
Запрос оплаты через Google Pay | Ссылка |
Запрос сведений о кассовом чеке | Ссылка |
Запрос деактивации связки | Ссылка |
Запрос активации связки | Ссылка |
Запрос списка всех связок клиента | Ссылка |
Запрос списка связок определённой банковской карты | Ссылка |
Запрос изменения срока действия связки | Ссылка |
Регистрация заказа
Обязательный аргумент - сумма.
Если во втором аргументе не указаны параметры returnUrl и failUrl, то они берутся из файла настроек.
Регистрация заказа с предавторизацией
Обязательный аргумент - сумма.
Если во втором аргументе не указаны параметры returnUrl и failUrl, то они берутся из файла настроек.
Запрос завершения оплаты заказа
Обязательные аргументы: id модели платежа (AcquiringPayment), сумма.
Запрос отмены оплаты заказа
Обязательный аргумент - id модели платежа (AcquiringPayment).
Запрос возврата средств оплаты заказа
Обязательные аргументы: id модели платежа (AcquiringPayment), сумма.
Получение статуса заказа
Обязательный аргумент - id модели платежа (AcquiringPayment).
Запрос оплаты через Apple Pay
Обязательный аргумент - paymentToken, полученный от системы Apple Pay. Подробнее здесь.
Запрос оплаты через Samsung Pay
Обязательный аргумент - paymentToken, полученный от системы Samsung Pay. Подробнее здесь.
Запрос оплаты через Google Pay
Обязательные аргументы: paymentToken, полученный от системы Google Pay, сумма. Подробнее здесь.
Запрос сведений о кассовом чеке
Описание здесь.
Запрос активации связки
Обязательный аргумент - идентификатор созданной ранее связки. Подробнее здесь.
Запрос деактивации связки
Обязательный аргумент - идентификатор созданной ранее связки. Подробнее здесь.
Запрос списка всех связок клиента
Обязательный аргумент - номер (идентификатор) клиента в системе магазина. Подробнее здесь.
Запрос списка связок определённой банковской карты
Описание здесь.
Запрос изменения срока действия связки
Обязательный аргумент - идентификатор созданной ранее связки. Подробнее здесь.
Запрос проверки вовлечённости карты в 3DS
Обязательный аргумент - маскированный номер карты, которая использовалась для оплаты (PAN). Подробнее здесь.
Настройки
Ознакомьтесь с файлом настроек.
Аутентификация
Для аутентификации при обращении к платёжному шлюзу можно использовать следующие данные, полученные при регистрации:
- пара логин/пароль служебной учетной записи
- токен
- логин продавца (при использовании платежных систем Apple Pay, Samsung Pay, Google Pay)
файл конфигурации предоставляет параметры для задания данных аутентификации:
Задать данные можно либо отредактировав файл конфигурации, либо указав их в .env
:
Обновление статусов платежей
Некоторые операции не позволяют определить новый статус платежа. Для обновления статусов реализована artisan-команда,
вызывающая операцию getOrderStatusExtended
для всех платежей с заданным статусом.
Команда принимает аргумент id - набор id статусов платежей, для которых нужно обновить статус:
Рекомендуется добавить команду в шедулер (app/Console/Kernel.php):
События (Events)
На данный момент реализовано одно событие:
Событие | Описание | Параметр |
---|---|---|
UpdateStatusCommandHasFailed | Во время обновления статусов платежей возникли ошибки | Массив исключений |
Исключения (Exceptions)
Пакет выбрасывает исключения, в случае возникновения ошибок.
Исключение | Причина |
---|---|
HttpClientException | В ответ на запрос сервер вернул код, отличный от 200 |
NetworkException | Не удалось выполнить запрос |
JsonException | Не удалось декодировать JSON ответ сервера |
ResponseProcessingException | Не удалось сохранить ответ сервера |
ConfigException | Ошибка файла конфигурации |
ModelNotFoundException | Не удалось найти модель (платеж) |
\InvalidArgumentException | Некорректные параметры запроса |
\Throwable | При сохранении модели возникла ошибка |
Поддержка
Если этот проект оказался для вас полезным, вы можете поддержать его развитие здесь.
Лицензия (License)
The MIT License (MIT). Please see License File for more information.
All versions of laravel-sberbank-acquiring with dependencies
ext-json Version *
ext-curl Version *