增强奴隶/nalogka-deals-sdk

SDK实现与Наложка.рф安全交易API的交互

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

This package is auto-updated.

Last update: 2024-09-27 18:44:58 UTC


README

异常

在执行请求和接收响应时可能会出现异常

  • Fostenslave\NalogkaDealsSDK\Exception\ApiErrorException - 当API返回错误时抛出的异常。异常包含来自命名空间 Fostenslave\NalogkaDealsSDK\Errors\ 的错误对象。

  • Fostenslave\NalogkaDealsSDK\Exception\NalogkaSdkException - 当SDK出现错误时抛出的异常。

  • Fostenslave\NalogkaDealsSDK\Exception\ServerErrorException - 当请求服务器失败时抛出的异常。

SDK使用示例

初始化api客户端和序列化器组件

为了成功创建api客户端实例,需要将生产或沙箱api服务器的基本url、包含身份验证令牌的标题以及序列化器组件传递给构造函数。

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();