Download the PHP package idynsys/billing-sdk without Composer
On this page you can find all versions of the php package idynsys/billing-sdk. It is possible to download/install these versions without Composer. Possible dependencies are resolved automatically.
Download idynsys/billing-sdk
More information about idynsys/billing-sdk
Files in idynsys/billing-sdk
Package billing-sdk
Short Description SDK для интеграции с B2B backoffice.Billing.
License MIT
Informations about the package billing-sdk
Billing SDK
Общее описание
Пакет предназначен для интеграции внешней системы на PHP 7.4+ и B2B backoffice сервиса Billing для создания транзакций в платежных системах, зарегистрированных в B2B backoffice.Billing.
Пакет позволяет выполнять следующие действия:
- Получить список доступных платежных методов
- Создавать транзакцию для пополнения денежных средств на счете.
- Создавать транзакцию для вывода денежных средств со счета.
- Получить информацию о транзакции.
Действия для пополнения и вывода средтсв только инициируют начало действий со счетом, но не выполняют эти операции полностью от начала до конца, т.е. после создания данных для проведения операции необходимо будет выполнить дополнительные действия, описанные в документации по работе с сервисом Billing системы B2B Backoffice.
Требования
Приложение, на которое устанавливается пакет должна иметь:
- PHP 7.4 или выше
- ext-openssl - установленное расширение для php
- ext-json - установленное расширение для php
Установка
-
В каталоге Вашего проекта, где расположен файл composer.json, выполните команду:
-
Настройка Вашего приложения для выполнения запроса к B2B Backoffice.
Для выполнения запроса необходимо в запросах передавать информацию об идентификаторе приложения с использованием секретного ключа для подписи параметров запрос. Это можно сделать двумя способами.
2.1. Через переменные окружения:
В переменных окружения приложения, где устанавливается этот пакет, необходимо создать переменные окружения:
2.2. Через создание объекта от класса Billing:
где "clientId" и "secret" будут переданы Вашей компании после регистрации внешнего приложения в B2B Backoffice для возможности выполнения запросов через B2B.
- !!! Для версии на Production необходимо установить переменную окружения:
Если эта переменная не установлена или имеет другое значение, то все запросы будут перенаправляться на тестовый сервер B2B Backoffice.
Использование
Создать экземпляр класса Billing:
Описание методов класса Billing:
Получить список доступных платежных методов
В классе DTO есть параметр "trafficType". Этот параметр необязательный и может принимать следующие значения:
- ftd - первичный трафик (для непроверенных пользователей делающих оплату первый раз)
- trusted - вторичный трафик (для доверенных пользователей)
Ответ (response) для данного запроса будет объект класса \Idynsys\BillingSdk\Collections\PaymentMethodsCollection. Этот класс реализует интерфейс Iterator. Элементами этой коллекции будут объекты класса \Idynsys\BillingSdk\Data\Entities\PaymentMethodData.
Получить список валют для платежных методов
В классе DTO есть параметр "trafficType". Этот параметр необязательный и может принимать следующие значения:
- ftd - первичный трафик (для непроверенных пользователей делающих оплату первый раз)
- trusted - вторичный трафик (для доверенных пользователей)
Ответ (response) для данного запроса будет объект класса \Idynsys\BillingSdk\Collections\PaymentMethodCurrenciesCollection. Этот класс реализует интерфейс Iterator. Элементами этой коллекции будут объекты класса \Idynsys\BillingSdk\Data\Entities\CurrencyData.
Создать транзакцию для пополнения счета
Универсальный метод создания депозитов
Некоторые депозиты создаются через универсальный метод создания депозитов. Для создания депозита при помощи универсального метода необходимо:
- Создать все DTO подобъекты, необходимые для описания депозита:
- PaymentRequestData - обязательно для любого депозита, информация о сумме и валюте депозита
- MerchantOrderRequestData - обязательно для любого депозита, информация об исходном документе, на основании которого формируется депозит
- UrlsRequestData - обязательно для любого депозита, все необходимые ссылки для отправки ответов при создании депозита
- SessionDetailsRequestData - обязательно для любого депозита, информация о сессии пользователя, браузере и др.
- CustomerRequestData - обязательно для любого депозита, информация о пользователе и его контакты, который выполняет депозит
- BankCardRequestData - необязательно, используется только для депозитов, которые выполняются через данные банковской карты. Детальное описание свойств DTO-классов находится в этом же разделе.
- Создать объект с данными универсального DTO депозита UniversalDepositRequestData, использую объекты классов из п.1.
- Отправить запрос, для создания и выполнения депозита.
- Обработать ответ.
Пример создания депозита при помощи DTO для универсального метода:
В следующей таблице показаны платежные методы, реализованные при помощи универсального DTO депозита, а также информация об обязательности атрибутов для DTO из п.1.
Значения в ячейках:
- "R" - обязательное
- "I" - игнорируется
- "-" - не используется
Персонализированные методы создания депозитов
В каждом классе DTO есть параметр "trafficType". Этот параметр необязательный и может принимать следующие значения:
- ftd - первичный трафик (для непроверенных пользователей делающих оплату первый раз), значение по умолчанию
- trusted - вторичный трафик (для доверенных пользователей)
I. Реализованные методы для пополнения счета (Deposits)
№№ | Вид взаимодействия |
Платежный метод | Класс DTO |
---|---|---|---|
4 | Host2Host | Mobile Commerce | \Idynsys\BillingSdk\Data\Requests\Deposits\v2\DepositMCommerceRequestData |
-
Создание транзакции депозита через платежный метод P2P Host2Host
-
Создание транзакции депозита через платежный метод P2P Host2Client
-
Создание транзакции депозита через платежный метод Bankcard Host2Host
-
Создание транзакции депозита через платежный метод Mobile Commerce Host2Host
-
Создание транзакции депозита через платежный метод SberPay Host2Client
-
Создание транзакции депозита через платежный метод SBP Host2Client
- Создание транзакции депозита через платежный метод SBP-QR Host2Client
II. Response
- Ответ при создании депозита
Если транзакция депозита была отправлена и зарегистрирована успешно, то ответом (response) будет объект класса \Idynsys\BillingSdk\Data\Responses\DepositResponseData:
Значение для confirmationType и redirectUrl необязательные, confirmationType может быть только null, "" или "3DS_PAYMENT_PAGE". В redirectUrl будет ссылка, если платежная система затребует подтверждение, иначе придет успешный статус без значений в confirmationType и redirectUrl. Ссылку на 3ds подтверждение можно получить:
- в ответе а депозита H2H, если платежная система его передаст сразу,
- либо при запросе статуса транзакции.
- Структура ответов на вызов callbackUrl.
Структура ответа, который приходит при выполнении запроса на callbackUrl, полученный в ответе при создании депозита:
Поле | Тип | Описание |
---|---|---|
id | string | Уникальный идентификатор (order Id) |
merchantOrderId | string | Уникальный идентификатор заказа у мерчанта |
status | string | Статус. Возможные значения: NEW , ERROR , IN_PROGRESS , COMPLETED , EXPIRED , CANCELED , CONFIRMED , DECLINED , PENDING |
amount | number | Сумма платежа |
currency | string | Валюта платежа |
errorCode | string | Код ошибки при выполнении операции депозита |
errorMessage | string | Сообщение об ошибке |
Создать транзакцию для вывода денежных средств со счета
Универсальный метод создания транзакции для вывода денежных средств со счета
Некоторые транзакции для вывода денежных средств создаются через универсальный метод. Для создания транзакции при помощи универсального метода необходимо:
- Создать все DTO подобъекты, необходимые для структуры DTO, которая используется при создании транзакции для вывода средств:
- PaymentRequestData - обязательно для любого вывода средств, информация о сумме и валюте
- MerchantOrderRequestData - обязательно для любого вывода средств, информация об исходном документе, на основании которого формируется ордер и транзакция
- UrlsRequestData - обязательно для любого вывода средств, все необходимые ссылки для отправки ответов при создании ордера и транзакции
- SessionDetailsRequestData - обязательно для любого вывода средств, информация о сессии пользователя, браузере и др.
- CustomerRequestData - обязательно для любого вывода средств, информация о пользователе и его контакты, который выполняет вывод средств
- BankCardRequestData - необязательно, используется только для вывода средств, которые выполняются через данные банковской карты. Детальное описание свойств DTO-классов находится в этом же разделе.
- Создать объект с данными универсального DTO вывода средств UniversalWithdrawalRequestData, использую объекты классов из п.1.
- Отправить запрос на создание ордера и транзакции для вывода средств.
- Обработать ответ.
Пример создания транзакции для вывода средств при помощи DTO для универсального метода: `
В следующей таблице показаны платежные методы, реализованные при помощи универсального DTO вывода средств, а также информация об обязательности атрибутов для DTO из п.1.
Значения в ячейках:
- "R" - обязательное
- "I" - игнорируется
- "-" - не используется
Персонализированные методы создания транзакции для вывода денежных
I. Методы, позволяющие создать транзакцию для вывода средства со счета
№№ | Вид взаимодействия |
Платежный метод | Класс DTO |
---|---|---|---|
2 | Host2Client | p2p | \Idynsys\BillingSdk\Data\Requests\Payouts\Host2Client\PayoutP2PHost2ClientRequestData |
3 | Host2Host | Bankcard | \Idynsys\BillingSdk\Data\Requests\Payouts\PayoutBankcardRequestData |
4 | Host2Client | SberPay | \Idynsys\BillingSdk\Data\Requests\Payouts\Host2Client\PayoutSberPayHost2ClientRequestData |
Некоторые транзакции для вывода средств имеют параметр BankName. Значения для этого параметра можно найти в enum-классе Idynsys\BillingSdk\Enums\BankName Список возможных значений для наименования банка-получателя:
Значение | Наименование банка |
---|---|
sberbank | Сбербанк |
alfabank | Альфа-банк |
raiffeisen | Райфайзен-банк |
vtb | ВТБ |
gazprombank | Газпромбанк |
tinkoff | Тинькофф (Т-Банк) |
rshb | РСХБ |
openbank | Банк Открытие |
sovcombank | Совкомбанк |
rosbank | Росбанк |
postbank | Почта-банк |
ozonbank | Озон-банк |
yandexbank | Яндекс-банк |
tochkabank | Точка банк |
centrinvest | ЦентрИнвестБанк |
mkb | МКБ |
unicreditbank | ЮникредитБанк |
elitebank | Элитбанк |
avangard | Банк Авангард |
psb | ПСБ |
akbars | Акбарс Банк |
homecredit | ХоумКредитБанк |
rnkb | РНКБ |
otpbank | ОТП Банк |
mtsbank | МТС Банк |
rsb | РСБ |
uralsibbank | Банк Уралсиб |
-
Создание транзакции для вывода средств со счета через метод p2p Host2Host
-
Создание транзакции для вывода средств со счета через метод p2p Host2Client
-
Создание транзакции для вывода средств со счета через метод Bankcard Host2Host
-
Создание транзакции для вывода средств со счета через метод SberPay Host2Client
-
Создание транзакции для вывода средств со счета через метод SberPay Host2Host
- Создание транзакции для вывода средств со счета через метод SBP Host2Host
II. Response
Если операция выполнена успешно, то ответ придет в виде объекта класса PayoutResponseData:
Получить данные транзакции
Для любой созданной транзакции можно проверить статус, тип, валюту, сумму, выполнив следующие действия:
В результате успешного запроса придет следующий ответ:
Значение для confirmationType и redirectUrl необязательные, confirmationType может быть только null, "" или "3DS_PAYMENT_PAGE". В redirectUrl будет ссылка, если платежная система затребует подтверждение, иначе придет успешный статус без значений в confirmationType и redirectUrl. Ссылку на 3ds подтверждение можно получить:
- в ответе а депозита H2H, если платежная система его передаст сразу,
- либо при запросе статуса транзакции.
Обработка исключительных ситуаций
При запросе к системе могут возникнуть ошибки, связанные с некорректно отправленными данными или невозможностью выполнить операцию. Все ошибки возвращаются через объект-исключение \Idynsys\BillingSdk\Exceptions\ExceptionHandler. Обработать ошибки можно следующим образом:
All versions of billing-sdk with dependencies
ext-openssl Version *
ext-json Version *
guzzlehttp/guzzle Version ^7.0