fostenslave/nalogka-deals-sdk

Реализация SDK для работы с API Безопасных сделок Наложка.рф

v0.6.1 2020-07-03 09:09 UTC

This package is auto-updated.

Last update: 2024-04-27 17:37:18 UTC


README

Исключение

Во время выполнения запроса и получения ответа могут возникнуть исключения:

  • Fostenslave\NalogkaDealsSDK\Exception\ApiErrorException - Исключение, выбрасываемое в случае, когда API отдает ошибку. Исключение содержит в себе объект ошибки из неймспейса Fostenslave\NalogkaDealsSDK\Errors\

  • Fostenslave\NalogkaDealsSDK\Exception\NalogkaSdkException - Исключение, выбрасываемое когда возникают ошибки в SDK.

  • Fostenslave\NalogkaDealsSDK\Exception\ServerErrorException - Исключение, выбрасываемое в случае неудачного запроса к серверу.

Примеры использования SDK

Инициализация api-клиента и компонента сериализатора

Для успешного создания экземпляра api-клиента необходимо передать в конструктор базовый url production или sandbox api-сервера, заголовок, содержащий токен аутентификации и компонент сериализатора.

use Fostenslave\NalogkaDealsSDK\ApiClient;
use Fostenslave\NalogkaDealsSDK\Serialization\SerializationComponent;

$serializationComponent = new SerializationComponent();

$apiClient = new ApiClient("https://sandbox.deals.api.nalogka.ru/", [
    'headers' => [
        'X-Nalogka-Auth-Token' => '9qASPlstioSjksdqpLkSF2js8Iks1CIv'
    ],
], $serializationComponent);

Запрос списка сделок

use Fostenslave\NalogkaDealsSDK\Request\DealsListRequest;
use Fostenslave\NalogkaDealsSDK\Exception\ApiErrorException;
use Fostenslave\NalogkaDealsSDK\Exception\NalogkaSdkException;
use Fostenslave\NalogkaDealsSDK\Exception\ServerErrorException;

$dealsListRequest = (new DealsListRequest($apiClient))
    ->page(1)
    ->items(3);

try {
    $deals = $dealsListRequest->request();
} catch (ApiErrorException $e) {
    // Ошибка от API
} catch (ServerErrorException $e) {
    // Неизвестный ответ от сервера
} catch (NalogkaSdkException $e) {
    // Ошибка в SDK, например проблема с десериализация
}

Запрос подробной информации о сделке

use Fostenslave\NalogkaDealsSDK\Request\DealGetRequest;

$dealGetRequest = (new DealGetRequest($apiClient))
    ->id(60);

$deal = $dealGetRequest->request();

Создание сделки

use Fostenslave\NalogkaDealsSDK\Request\DealCreateRequest;

$dealCreateRequest = (new DealCreateRequest($apiClient))
    ->orderId('4127')
    ->conditions('Хрупкий, крупногабаритный груз')
    ->commissionPayer('seller')
    ->buyerHaveToPayOffline(0)
    ->subjectItem('Смартфон Apple iPhone 5s 16Gb Серебристый', 23500, 1, "test", "test")
    ->additionalService('Доставка СДЭК', 'Тариф Посылка Склад-Склад', 450, 400, 'seller', 'seller')
    ->partialBuyoutNotAllowed();

$deal = $dealCreateRequest->request();

Установка трека исполнения сделки

use Fostenslave\NalogkaDealsSDK\Request\DealPerformingTrackSetRequest;

$dealPerformingTrackSetRequest = (new DealPerformingTrackSetRequest($apiClient))
    ->id(60)
    ->trackerShortName('cdek')
    ->code('8172990122');

$track = $dealPerformingTrackSetRequest->request();

Удаление трека исполнения сделки

use Fostenslave\NalogkaDealsSDK\Request\DealPerformingTrackDeleteRequest;

(new DealPerformingTrackDeleteRequest($apiClient))
    ->id(373)
    ->request();