itpanda-llc / sberbank-acquirer-sdk
Library for integration with processing center of PJSC Sberbank
dev-main
2021-05-16 05:48 UTC
Requires
- php: >=7.2
- ext-curl: *
This package is auto-updated.
Last update: 2025-02-16 14:13:00 UTC
README
Библиотека для интеграции с процессинговым центром ПАО "Сбербанк"
Ссылки
Возможности
- Регистрация заказа
- Регистрация заказа с предавторизацией
- Запрос завершения оплаты заказа
- Запрос отмены оплаты заказа
- Запрос возврата средств оплаты заказа
- Получение статуса заказа
- Запрос проверки вовлечённости карты в 3DS
- Запрос отмены неоплаченного заказа
- Запрос сведений о кассовом чеке
- Запрос деактивации связки
- Запрос активации связки
- Запрос списка всех связок клиента
- Запрос списка связок определённой банковской карты
- Запрос изменения срока действия связки
Требования
- PHP >= 7.2
- cURL
Установка
composer require itpanda-llc/sberbank-acquirer-sdk
Подключение
require_once 'vendor/autoload.php';
Использование
Создание сервиса / Аутентификация
- С использованием логина и пароля
use Panda\Sberbank\AcquirerSdk; /* * Логин * Пароль */ $acquirer = new AcquirerSdk\Acquirer('userName', 'password');
- С использованием открытого ключа
use Panda\Sberbank\AcquirerSdk; // Открытый ключ $acquirer = new AcquirerSdk\Acquirer('token');
Установка параметров
use Panda\Sberbank\AcquirerSdk; // Использовать тестовое окружение $acquirer->asTest() // Язык ->setLanguage(AcquirerSdk\Language::RU);
Регистрация заказа
Способ №1
- Создание запроса
use Panda\Sberbank\AcquirerSdk; /* * Номер заказа в системе магазина * Сумма * Адрес перенаправления пользователя в случае успешной оплаты * Адрес перенаправления пользователя в случае неуспешной оплаты */ $register = new AcquirerSdk\Register('20016551', 55000, 'https://sberbank.ru', 'https://sberbank.ru');
- Установка параметров
use Panda\Sberbank\AcquirerSdk; // Использовать тестовое окружение $register->asTest() // Язык ->setLanguage(AcquirerSdk\Language::RU) // Код валюты платежа ->setCurrency(AcquirerSdk\Currency::RUB) // Адрес перенаправления пользователя в случае неуспешной оплаты ->setFailUrl('https://sberbank.ru') // Описание заказа ->setDescription('Оплата заказа #20016551') // Страницы платёжного интерфейса ->setPageView(AcquirerSdk\PageView::DESKTOP) // Номер клиента в системе магазина ->setClientId('clientId') // Имя дочернего продавца ->setMerchantLogin('merchantLogin') // Дополнительные параметры ->setJsonParams('{"back2app": true}') // Продолжительность жизни заказа ->setSessionTimeoutSecs(600) // Дата и время окончания жизни заказа ->setExpirationDate('ГГГГ-ММ-ДДTЧЧ:ММ:СС') // Идентификатор связки ->setBindingId('bindingId') // Особенности ->setFeatures(AcquirerSdk\Features::AUTO_PAYMENT) // Адрес электронной почты покупателя ->setEmail('support_ecomm@sberbank.ru') // Номер телефона клиента ->setPhone('79995550011');
- Выполнение запроса
use Panda\Sberbank\AcquirerSdk; try { print_r($acquirer->request($register)); } catch (AcquirerSdk\Exception\ClientException $e) { echo $e->getMessage(); }
Способ №2
use Panda\Sberbank\AcquirerSdk; try { /* * Номер заказа в системе магазина * Сумма * Адрес перенаправления пользователя в случае успешной оплаты * Адрес перенаправления пользователя в случае неуспешной оплаты */ print_r($acquirer->register('20016551', 55000, 'https://sberbank.ru', 'https://sberbank.ru')); } catch (AcquirerSdk\Exception\ClientException $e) { echo $e->getMessage(); }
Регистрация заказа с предавторизацией
Способ №1
- Создание запроса
use Panda\Sberbank\AcquirerSdk; /* * Номер заказа в системе магазина * Сумма * Адрес перенаправления пользователя в случае успешной оплаты * Адрес перенаправления пользователя в случае неуспешной оплаты */ $registerPreAuth = new AcquirerSdk\RegisterPreAuth('20016551', 55000, 'https://sberbank.ru', 'https://sberbank.ru');
- Установка параметров
use Panda\Sberbank\AcquirerSdk; // Использовать тестовое окружение $registerPreAuth->asTest() // Язык ->setLanguage(AcquirerSdk\Language::EN) // Код валюты платежа ->setCurrency(AcquirerSdk\Currency::USD) // Адрес перенаправления пользователя в случае неуспешной оплаты ->setFailUrl('https://sberbank.ru') // Описание заказа ->setDescription('Payment for order #20016551') // Страницы платёжного интерфейса ->setPageView(AcquirerSdk\PageView::MOBILE) // Номер клиента в системе магазина ->setClientId('clientId') // Имя дочернего продавца ->setMerchantLogin('merchantLogin') // Дополнительные параметры ->setJsonParams('{"back2app": true}') // Продолжительность жизни заказа ->setSessionTimeoutSecs(600) // Дата и время окончания жизни заказа ->setExpirationDate('ГГГГ-ММ-ДДTЧЧ:ММ:СС') // Идентификатор связки ->setBindingId('bindingId') // Особенности ->setFeatures(AcquirerSdk\Features::FORCE_FULL_TDS) // Адрес электронной почты покупателя ->setEmail('support_ecomm@sberbank.ru') // Номер телефона клиента ->setPhone('79995550011');
- Выполнение запроса
use Panda\Sberbank\AcquirerSdk; try { print_r($acquirer->request($registerPreAuth)); } catch (AcquirerSdk\Exception\ClientException $e) { echo $e->getMessage(); }
Способ №2
use Panda\Sberbank\AcquirerSdk; try { /* * Номер заказа в системе магазина * Сумма * Адрес перенаправления пользователя в случае успешной оплаты * Адрес перенаправления пользователя в случае неуспешной оплаты */ print_r($acquirer->registerPreAuth('20016551', 55000, 'https://sberbank.ru', 'https://sberbank.ru')); } catch (AcquirerSdk\Exception\ClientException $e) { echo $e->getMessage(); }
Запрос завершения оплаты заказа
Способ №1
- Создание запроса
use Panda\Sberbank\AcquirerSdk; /* * Номер заказа в платежной системе * Сумма */ $deposit = new AcquirerSdk\Deposit('961e34e7-e897-7d22-8b62-19650008f9da', 55000);
- Установка параметров
use Panda\Sberbank\AcquirerSdk; // Использовать тестовое окружение $deposit->asTest() // Язык ->setLanguage(AcquirerSdk\Language::RU) // Сумма ->setAmount(55000);
- Выполнение запроса
use Panda\Sberbank\AcquirerSdk; try { print_r($acquirer->request($deposit)); } catch (AcquirerSdk\Exception\ClientException $e) { echo $e->getMessage(); }
Способ №2
use Panda\Sberbank\AcquirerSdk; try { /* * Номер заказа в платежной системе * Сумма */ print_r($acquirer->deposit('961e34e7-e897-7d22-8b62-19650008f9da', 55000)); } catch (AcquirerSdk\Exception\ClientException $e) { echo $e->getMessage(); }
Запрос отмены оплаты заказа
Способ №1
- Создание запроса
use Panda\Sberbank\AcquirerSdk; /* * Номер заказа в платежной системе * Сумма */ $reverse = new AcquirerSdk\Reverse('961e34e7-e897-7d22-8b62-19650008f9da', 55000);
- Установка параметров
use Panda\Sberbank\AcquirerSdk; // Использовать тестовое окружение $reverse->asTest() // Язык ->setLanguage(AcquirerSdk\Language::RU) // Сумма ->setAmount(55000) // Дополнительные параметры ->setJsonParams('{«Имя1»: «Значение1», «Имя2»: «Значение2»}');
- Выполнение запроса
use Panda\Sberbank\AcquirerSdk; try { print_r($acquirer->request($reverse)); } catch (AcquirerSdk\Exception\ClientException $e) { echo $e->getMessage(); }
Способ №2
use Panda\Sberbank\AcquirerSdk; try { /* * Номер заказа в платежной системе * Сумма */ print_r($acquirer->reverse('961e34e7-e897-7d22-8b62-19650008f9da', 55000)); } catch (AcquirerSdk\Exception\ClientException $e) { echo $e->getMessage(); }
Запрос возврата средств оплаты заказа
Способ №1
- Создание запроса
use Panda\Sberbank\AcquirerSdk; /* * Номер заказа в платежной системе * Сумма */ $refund = new AcquirerSdk\Refund('961e34e7-e897-7d22-8b62-19650008f9da', 55000);
- Установка параметров
use Panda\Sberbank\AcquirerSdk; // Использовать тестовое окружение $refund->asTest() // Язык ->setLanguage(AcquirerSdk\Language::RU) // Сумма ->setAmount(55000) // Дополнительные параметры ->setJsonParams('{«Имя1»: «Значение1», «Имя2»: «Значение2»}');
- Выполнение запроса
use Panda\Sberbank\AcquirerSdk; try { print_r($acquirer->request($refund)); } catch (AcquirerSdk\Exception\ClientException $e) { echo $e->getMessage(); }
Способ №2
use Panda\Sberbank\AcquirerSdk; try { /* * Номер заказа в платежной системе * Сумма */ print_r($acquirer->refund('961e34e7-e897-7d22-8b62-19650008f9da', 55000)); } catch (AcquirerSdk\Exception\ClientException $e) { echo $e->getMessage(); }
Получение статуса заказа
Способ №1
- Создание запроса
use Panda\Sberbank\AcquirerSdk; // Номер заказа в платежной системе $statusExtended = new AcquirerSdk\StatusExtended('961e34e7-e897-7d22-8b62-19650008f9da'); // или // Номер заказа в платежной системе $statusExtended = AcquirerSdk\StatusExtended::byId('961e34e7-e897-7d22-8b62-19650008f9da'); // или // Номер заказа в системе магазина $statusExtended = AcquirerSdk\StatusExtended::byNumber('20016551');
- Установка параметров
use Panda\Sberbank\AcquirerSdk; // Использовать тестовое окружение $statusExtended->asTest() // Язык ->setLanguage(AcquirerSdk\Language::RU) // Номер заказа в платежной системе ->setOrderId('961e34e7-e897-7d22-8b62-19650008f9da') // Номер заказа в системе магазина ->setOrderNumber('20016551');
- Выполнение запроса
use Panda\Sberbank\AcquirerSdk; try { print_r($acquirer->request($statusExtended)); } catch (AcquirerSdk\Exception\ClientException $e) { echo $e->getMessage(); }
Способ №2
use Panda\Sberbank\AcquirerSdk; try { // Номер заказа в платежной системе print_r($acquirer->getStatusExtendedById('961e34e7-e897-7d22-8b62-19650008f9da')); } catch (AcquirerSdk\Exception\ClientException $e) { echo $e->getMessage(); } // или try { // Номер заказа в системе магазина print_r($acquirer->getStatusExtendedByNumber('20016551')); } catch (AcquirerSdk\Exception\ClientException $e) { echo $e->getMessage(); }
Запрос проверки вовлечённости карты в 3DS
Способ №1
- Создание запроса
use Panda\Sberbank\AcquirerSdk; // Маскированный номер карты $enrollment = new AcquirerSdk\Enrollment('411111**1111');
- Установка параметров
use Panda\Sberbank\AcquirerSdk; // Использовать тестовое окружение $enrollment->asTest() // Язык ->setLanguage(AcquirerSdk\Language::RU);
- Выполнение запроса
use Panda\Sberbank\AcquirerSdk; try { print_r($acquirer->request($enrollment)); } catch (AcquirerSdk\Exception\ClientException $e) { echo $e->getMessage(); }
Способ №2
use Panda\Sberbank\AcquirerSdk; try { // Маскированный номер карты print_r($acquirer->verifyEnrollment('411111**1111')); } catch (AcquirerSdk\Exception\ClientException $e) { echo $e->getMessage(); }
Запрос отмены неоплаченного заказа
Способ №1
- Создание запроса
use Panda\Sberbank\AcquirerSdk; /* * Имя мерчанта * Номер заказа в платежной системе */ $decline = new AcquirerSdk\Decline('merchantLogin', '961e34e7-e897-7d22-8b62-19650008f9da'); // или /* * Имя мерчанта * Номер заказа в платежной системе */ $decline = AcquirerSdk\Decline::byId('merchantLogin', '961e34e7-e897-7d22-8b62-19650008f9da'); // или /* * Имя мерчанта * Номер заказа в системе магазина */ $decline = AcquirerSdk\Decline::byNumber('merchantLogin', '20016551');
- Установка параметров
use Panda\Sberbank\AcquirerSdk; // Использовать тестовое окружение $decline->asTest() // Язык ->setLanguage(AcquirerSdk\Language::RU) // Номер заказа в платежной системе ->setOrderId('961e34e7-e897-7d22-8b62-19650008f9da') // Номер заказа в системе магазина ->setOrderNumber('20016551');
- Выполнение запроса
use Panda\Sberbank\AcquirerSdk; try { print_r($acquirer->request($decline)); } catch (AcquirerSdk\Exception\ClientException $e) { echo $e->getMessage(); }
Способ №2
use Panda\Sberbank\AcquirerSdk; try { /* * Имя мерчанта * Номер заказа в платежной системе */ print_r($acquirer->declineById('merchantLogin', '961e34e7-e897-7d22-8b62-19650008f9da')); } catch (AcquirerSdk\Exception\ClientException $e) { echo $e->getMessage(); } // или try { /* * Имя мерчанта * Номер заказа в системе магазина */ print_r($acquirer->declineByNumber('merchantLogin', '20016551')); } catch (AcquirerSdk\Exception\ClientException $e) { echo $e->getMessage(); }
Запрос сведений о кассовом чеке
Способ №1
- Создание запроса
use Panda\Sberbank\AcquirerSdk; // Идентификатор чека в фискализаторе $receiptStatus = new AcquirerSdk\ReceiptStatus('uuid'); // или // Идентификатор чека в фискализаторе $receiptStatus = AcquirerSdk\ReceiptStatus::byUuid('uuid'); // или // Номер заказа в платежной системе $receiptStatus = AcquirerSdk\ReceiptStatus::byId('961e34e7-e897-7d22-8b62-19650008f9da'); // или // Номер заказа в системе магазина $receiptStatus = AcquirerSdk\ReceiptStatus::byNumber('20016551');
- Установка параметров
use Panda\Sberbank\AcquirerSdk; // Использовать тестовое окружение $receiptStatus->asTest() // Язык ->setLanguage(AcquirerSdk\Language::RU) // Идентификатор чека в фискализаторе ->setUuid('uuid') // Номер заказа в платежной системе ->setOrderId('961e34e7-e897-7d22-8b62-19650008f9da') // Номер заказа в системе магазина ->setOrderNumber('20016551');
- Выполнение запроса
use Panda\Sberbank\AcquirerSdk; try { print_r($acquirer->request($receiptStatus)); } catch (AcquirerSdk\Exception\ClientException $e) { echo $e->getMessage(); }
Способ №2
use Panda\Sberbank\AcquirerSdk; try { // Идентификатор чека в фискализаторе print_r($acquirer->getReceiptStatusByUuid('uuid')); } catch (AcquirerSdk\Exception\ClientException $e) { echo $e->getMessage(); } // или try { // Номер заказа в платежной системе print_r($acquirer->getReceiptStatusById('961e34e7-e897-7d22-8b62-19650008f9da')); } catch (AcquirerSdk\Exception\ClientException $e) { echo $e->getMessage(); } // или try { // Номер заказа в системе магазина print_r($acquirer->getReceiptStatusByNumber('20016551')); } catch (AcquirerSdk\Exception\ClientException $e) { echo $e->getMessage(); }
Запрос деактивации связки
Способ №1
- Создание запроса
use Panda\Sberbank\AcquirerSdk; // Идентификатор связки $unbind = new AcquirerSdk\Binding\Unbind('bindingId'); // или // Идентификатор связки $unbind = AcquirerSdk\Binding\Card::unbind('bindingId');
- Установка параметров
use Panda\Sberbank\AcquirerSdk; // Использовать тестовое окружение $unbind->asTest() // Язык ->setLanguage(AcquirerSdk\Language::RU);
- Выполнение запроса
use Panda\Sberbank\AcquirerSdk; try { print_r($acquirer->request($unbind)); } catch (AcquirerSdk\Exception\ClientException $e) { echo $e->getMessage(); }
Способ №2
use Panda\Sberbank\AcquirerSdk; try { // Идентификатор связки print_r($acquirer->unbind('bindingId')); } catch (AcquirerSdk\Exception\ClientException $e) { echo $e->getMessage(); }
Запрос активации связки
Способ №1
- Создание запроса
use Panda\Sberbank\AcquirerSdk; // Идентификатор связки $bind = new AcquirerSdk\Binding\Bind('bindingId'); // или // Идентификатор связки $bind = AcquirerSdk\Binding\Card::bind('bindingId');
- Установка параметров
use Panda\Sberbank\AcquirerSdk; // Использовать тестовое окружение $bind->asTest() // Язык ->setLanguage(AcquirerSdk\Language::RU);
- Выполнение запроса
use Panda\Sberbank\AcquirerSdk; try { print_r($acquirer->request($bind)); } catch (AcquirerSdk\Exception\ClientException $e) { echo $e->getMessage(); }
Способ №2
use Panda\Sberbank\AcquirerSdk; try { // Идентификатор связки print_r($acquirer->bind('bindingId')); } catch (AcquirerSdk\Exception\ClientException $e) { echo $e->getMessage(); }
Запрос списка всех связок клиента
- Создание запроса
use Panda\Sberbank\AcquirerSdk; // Идентификатор клиента $bindings = new AcquirerSdk\Binding\Bindings('clientId');
- Установка параметров
use Panda\Sberbank\AcquirerSdk; // Использовать тестовое окружение $bindings->asTest() // Язык ->setLanguage(AcquirerSdk\Language::RU);
- Выполнение запроса
use Panda\Sberbank\AcquirerSdk; try { print_r($acquirer->request($bindings)); } catch (AcquirerSdk\Exception\ClientException $e) { echo $e->getMessage(); }
Способ №2
use Panda\Sberbank\AcquirerSdk; try { // Идентификатор клиента print_r($acquirer->getBindingsByClient('clientId')); } catch (AcquirerSdk\Exception\ClientException $e) { echo $e->getMessage(); }
Запрос списка связок определённой банковской карты
Способ №1
- Создание запроса
use Panda\Sberbank\AcquirerSdk; /* * Маскированный номер карты * Отображение связок с истёкшим сроком действия карты */ $bindingsCard = new AcquirerSdk\Binding\BindingsCard('411111**1111', AcquirerSdk\Binding\Expired::SHOW); // или /* * Маскированный номер карты * Отображение связок с истёкшим сроком действия карты */ $bindingsCard = AcquirerSdk\Binding\BindingsCard::byCard('411111**1111', AcquirerSdk\Binding\Expired::SHOW); // или /* * Идентификатор связки * Отображение связок с истёкшим сроком действия карты */ $bindingsCard = AcquirerSdk\Binding\BindingsCard::byId('bindingId', AcquirerSdk\Binding\Expired::SHOW);
- Установка параметров
use Panda\Sberbank\AcquirerSdk; // Использовать тестовое окружение $bindingsCard->asTest() // Язык ->setLanguage(AcquirerSdk\Language::RU) // Маскированный номер карты ->setPan('411111**1111') // Идентификатор связки ->setBindingId('bindingId') // Отображение связок с истёкшим сроком действия карты ->setShowExpired(AcquirerSdk\Binding\Expired::SHOW);
- Выполнение запроса
use Panda\Sberbank\AcquirerSdk; try { print_r($acquirer->request($bindingsCard)); } catch (AcquirerSdk\Exception\ClientException $e) { echo $e->getMessage(); }
Способ №2
use Panda\Sberbank\AcquirerSdk; try { /* * Маскированный номер карты * Отображение связок с истёкшим сроком действия карты */ print_r($acquirer->getBindingsByCard('411111**1111', AcquirerSdk\Binding\Expired::SHOW)); } catch (AcquirerSdk\Exception\ClientException $e) { echo $e->getMessage(); } // или try { /* * Идентификатор связки * Отображение связок с истёкшим сроком действия карты */ print_r($acquirer->getBindingsById('bindingId', AcquirerSdk\Binding\Expired::SHOW)); } catch (AcquirerSdk\Exception\ClientException $e) { echo $e->getMessage(); }
Запрос изменения срока действия связки
Способ №1
- Создание запроса
use Panda\Sberbank\AcquirerSdk; /* * Идентификатор связки * Новая дата окончания срока действия */ $extend = new AcquirerSdk\Binding\Extend('bindingId', 'ГГГГММ');
- Установка параметров
use Panda\Sberbank\AcquirerSdk; // Использовать тестовое окружение $extend->asTest() // Язык ->setLanguage(AcquirerSdk\Language::RU);
- Выполнение запроса
use Panda\Sberbank\AcquirerSdk; try { print_r($acquirer->request($extend)); } catch (AcquirerSdk\Exception\ClientException $e) { echo $e->getMessage(); }
Способ №2
use Panda\Sberbank\AcquirerSdk; try { /* * Идентификатор связки * Новая дата окончания срока действия */ print_r($acquirer->extendBinding('bindingId', 'ГГГГММ')); } catch (AcquirerSdk\Exception\ClientException $e) { echo $e->getMessage(); }