invoicebox / sdk-php
This is a developer tool for integration with Invoicebox API
v1.1.14
2024-10-08 08:53 UTC
Requires
- php: ^7.4|^8.0
- ext-curl: *
- ext-json: *
- symfony/http-client: ^5.0|^6.0|^7.0
- symfony/http-client-contracts: ^2.0|^3.0
Requires (Dev)
- phpstan/phpstan: ^1.8
- phpunit/phpunit: ^9.5
- symplify/easy-coding-standard: ^11.0
README
PHP SDK является готовой библиотекой для серверного взаимодействия с API Инвойсбокс. Библиотека поддерживает все необходимые методы API для организации приёма платежей.
Требования
PHP 7.4+ (или более поздняя версия)
Установка с помощью Composer
- Установите Composer, менеджер пакетов
- В консоле выполните следующую команду:
composer require invoicebox/sdk-php
Пропишите в файле composer.json вашего проекта:
- Добавьте строку "invoicebox/sdk-php": "^1.0" в список зависимостей вашего проекта в файле composer.json
"require": {
"php": ">=7.4",
"invoicebox/sdk-php": "^1.0"
- Обновите зависимости вашего проекта. В консоле, в папке с файлом composer.json выполните следующую команду:
composer update
- Подготовьте код своего проекта, чтобы активировать автоматическую загрузку зависимостей:
require __DIR__ . '/vendor/autoload.php';
Установка SDK вручную
-
Скачайте архив Инвойсбокс PHP SDK и распакуйте его в необходимую папку вашего проекта.
-
Подготовьте код своего проекта, чтобы активировать автоматическую загрузку зависимостей:
require __DIR__ . '/vendor/autoload.php';
Пример использования
use Invoicebox\Sdk\Client\InvoiceboxClient; use Invoicebox\Sdk\DTO\Enum\BasketItemType; use Invoicebox\Sdk\DTO\Enum\PaymentType; use Invoicebox\Sdk\DTO\Enum\VatCode; use Invoicebox\Sdk\DTO\Order\BasketItem; use Invoicebox\Sdk\DTO\Order\CreateOrderRequest; use Invoicebox\Sdk\DTO\Order\LegalCustomer; use Symfony\Component\HttpClient\HttpClient; /** * Создание клиента, с ключем авторизации */ $httpClient = HttpClient::create(); $ibClient = new InvoiceboxClient( $httpClient, 'b37c4c689295904ed21eee5d9a48d42e', ); /** * Проверка авторизации (необязательный шаг, для тестирования наличия доступа) */ $result = $ibClient->checkAuth(); if ($result->getUserId()) { echo "Успешная авторизация \n"; } /** * Создание позиций заказа, заполнение данных клиент и заполнение данных заказа */ $basketItems = new BasketItem( '0123456789', 'Black Edition', 'шт.', '796', 1.0, 2790.67, 2790.67, 2790.67, 0.0, VatCode::VATNONE, BasketItemType::COMMODITY, PaymentType::FULL_PREPAYMENT, ); /* Если плательщик - юридическое лицо */ $customer = new LegalCustomer( 'ООО "Ромашка"', '79111231212', 'my@romashkacompany.dd', '2323232323', /* ИНН */ 'г. Ижевск, ул. Сверидова, д.1, оф. 323', '504701001', /* КПП */ ); /* Если плательщик - физическое лицо */ $customer = new PrivateCustomer( 'Иванов Иван Иванович', '79111231212', 'ivanov@ivanivanovich.dd' ); $request = new CreateOrderRequest( 'Проездной билет', 'ffffffff-ffff-ffff-ffff-ffffffffffff', /* Идентификатор магазина */ 123, /* Идентификатор заказа */ 2790.67, /* Стоимость заказа итого */ 0.0, /* Сумма налога в заказе итого */ 'RUB', /* Идентификатор валюты заказа */ new \DateTime('tomorrow'), /* Срок оплаты (жизни) заказа */ [$basketItems], $customer ); /** * Создание заказа */ $result = $ibClient->createOrder($request); if ($result->getPaymentUrl()) { echo sprintf('Заказ успешно создан - ссылка на оплату - %s', $result->getPaymentUrl()); } /* Redirect to: $orderResponseData->getPaymentUrl() */