ttatpuot/cdek-sdk2.0

适用于API v2.0的俄罗斯联邦快递的PHP SDK,可工作并维护

1.2.0 2024-03-07 14:45 UTC

This package is auto-updated.

Last update: 2024-09-07 15:53:40 UTC


README

Packagist Scrutinizer Code Quality Code Coverage License

这是对cdek-it/sdk2.0的工作和(目前)维护的分支。如果遇到任何问题或不符合预期,请创建工单

目前已修复了原始库中的问题

同时提供了原始库的所有功能。因为这是分支,所以可以在自己的项目中简单地将依赖项替换为ttatpuot/cdek-sdk2.0和最新版本。将保持向后兼容性。

实现API v2.0以集成俄罗斯联邦快递物流服务。此SDK有助于更快地将俄罗斯联邦快递物流服务集成到自己的项目中。

SDK功能

  • 创建订单
  • 订单信息
  • 删除订单
  • 订阅Webhook(订单状态和打印表单状态)
  • 订阅Webhook信息
  • 取消订阅Webhook
  • 获取自提点列表
  • 创建调用快递员申请
  • 调用快递员申请信息
  • 删除调用快递员申请
  • 创建打印运单申请请求
  • 创建打印运单号位置申请请求
  • 获取城市列表
  • 获取地区列表

仅在有与俄罗斯联邦快递公司签订的合同后,才可使用API的所有方法访问集成服务。

要求

要求最低。需要PHP 7.1/8.0或更高版本。

该SDK使用PSR-18 (HTTP-client)规范。这意味着可以使用任何支持该规范的HTTP客户端作为HTTP客户端。如果您的客户端不支持此规范,可以查看大多数流行HTTP客户端的现有适配器

安装

通过Composer包管理器安装

composer require ttatpuot/cdek-sdk2.0

文档

完整文档在此

使用示例

$client = new Psr18Client();
$cdek = new \CdekSDK2\Client($client);
$cdek->setAccount('account');
$cdek->setSecure('secure');

// создание заказа
$order = \CdekSDK2\BaseTypes\Order::create([...]);
$res = $cdek->orders()->add($order);

if ($res->hasErrors()) {
    // Обрабатываем ошибки
    // Если этого не сделать, в будущем будет ошибка RequestException
    foreach ($res->getErrors() as $error) {
        //считываем ошибки
    }
}
if ($res->isOk()) {
    $cdek_order = $cdek->formatResponse($res, \CdekSDK2\BaseTypes\Order::class);
    // $cdek_order->entity->uuid;
    // Если попытаться обработать ответ без проверки $res->isOk()
    // и при этом в ответе будут ошибки, то здесь выбросится исключение RequestException
}

// получение информации о заказе
$res = $cdek->orders()->get($cdek_order->entity->uuid);
if ($res->isOk()) {
    $cdek_order = $cdek->formatResponse($res, \CdekSDK2\Dto\OrderInfo::class);
}




//получить список офисов
$res = $cdek->offices()->getFiltered(['country_code' => 'kz']);
if ($res->isOk()) {
    $pvzlist = $cdek->formatResponseList($res, \CdekSDK2\Dto\PickupPointList::class);
//    $pvzlist->items;
}

测试

运行测试

$ composer test

许可证

该项目在MIT许可证下发布。