vlsv/sber-pay-qr-api-client
最新稳定版本:v1.0.1
Composer 安装命令:
composer require vlsv/sber-pay-qr-api-client
包简介
Клиент для работы с API SberPay QR
README 文档
README
Клиент для работы с API SberPay QR/Плати QR
Оплата по QR - современный способ приёма платежей с помощью графического кода. Сервис оплаты по QR позволяет проводить оплату по SberPay QR (в приложении СберБанк Онлайн), Плати QR (в приложениях банков-партнёров) и СБП QR (Система Быстрых Платежей) подробнее о сервисе.
Данный клиент реализует сервисы платформы QR.API (QR продавца):
- creation - создание заказа и формирование Динамического QR-кода под создаваемый заказ (по запросу Клиента): QR код уже содержит сумму данного заказа.
- status - запрос статуса заказа: получение статуса оплаты и детализации по операциям.
- revocation - отмена неоплаченного заказа: Покупатель не произвел оплату в установленное время (как правило на сайтах до 20 минут ожидания), либо выбрал другой способ оплаты.
- cancel - отмена/возврат финансовой операции.
- registry - запрос реестра операций.
Зависимости
Для выполнения запросов к API потребуется Sber API Registry access_token. Один из способов его получения - с помощью
библиотеки vlsv/sber-api-registry-oauth-client.
Установка библиотеки
composer require vlsv/sber-pay-qr-api-client
Получение сертификата
Официальная документация:
Подготовка сертификата
openssl pkcs12 -in {path_to_certificate}/cert.p12 -out {path_to_certificate}/cert.pem -nodes
Или, как альтернатива, можно передавать сертификат в формате .p12, в этом случае необходимо указать и пароль для него.
Работа с API
Создание заказа
Пример конфигурации клиента смотри в TestCaseBase.php
$orderParamsType = (new \Vlsv\SberPayQrApiClient\Entity\RequestCreationOrderParamsType()) ->setPositionName('some_position_name') ->setPositionCount(1) ->setPositionDescription('some_position_description') ->setPositionSum(190000); $requestCreation = (new \Vlsv\SberPayQrApiClient\Entity\RequestCreation()) ->setMemberId('some_member_id') ->setOrderCreateDate(new DateTimeImmutable()) ->setOrderParamsType([$orderParamsType]); try { /** @var \Vlsv\SberPayQrApiClient\Entity\ResponseCreation $responseCreation */ $responseCreation = $this->apiClient->makeRequest( accessToken: 'personal_temporary_access_token', apiEndpoint: \Vlsv\SberPayQrApiClient\Entity\ApiEndpoint::CREATION, requestObject: $requestCreation, ); } catch (ApiException $exception) { echo $exception->getMessage(); exit(); } // Идентификатор заказа на стороне эквайера. // Необходим для дальнейшей работы с API. echo $responseCreation->getOrderId(); // Ссылка на форму оплаты - QR-код. echo $responseCreation->getOrderFormUrl();
Все методы объекта ответа см. ResponseCreation
Запрос статуса заказа
$requestStatus = (new \Vlsv\SberPayQrApiClient\Entity\RequestStatus()) ->setOrderId('5cf8cb8b-37e3-42e9-8f69-306fa72e106f') ->setTid('83457dda-332c-46f4-b928-8d4bd9ee3afe'); try { /** @var \Vlsv\SberPayQrApiClient\Entity\ResponseStatus $responseStatus */ $responseStatus = $this->apiClient->makeRequest( accessToken: 'personal_temporary_access_token', apiEndpoint: \Vlsv\SberPayQrApiClient\Entity\ApiEndpoint::STATUS, requestObject: $requestStatus, ); } catch (\Vlsv\SberPayQrApiClient\Entity\ApiException $exception) { echo $exception->getMessage(); exit(); } // Состояние заказа на стороне эквайера. echo $responseStatus->getOrderState()->value;
Все методы объекта ответа см. ResponseStatus
Работа с остальными методами производится аналогичным образом.
Тесты
Все группы.
composer tests
Feature и unit.
composer tests-feature && composer tests-unit
统计信息
- 总下载量: 122
- 月度下载量: 0
- 日度下载量: 0
- 收藏数: 4
- 点击次数: 3
- 依赖项目数: 0
- 推荐数: 0
其他信息
- 授权协议: MIT
- 更新时间: 2022-10-23