ttatpuot / cdek-sdk2.0
适用于API v2.0的俄罗斯联邦快递的PHP SDK,可工作并维护
1.2.0
2024-03-07 14:45 UTC
Requires
- php: ^7.1 || ^8.0
- ext-json: *
- doctrine/annotations: ^1.14.3
- jms/serializer: ^3 <3.30
- nyholm/psr7: ^1.2
- psr/http-client: ^1.0
- rakit/validation: ^1.1
Requires (Dev)
- phan/phan: ^1 <1.3 || >1.3.0
- php-coveralls/php-coveralls: ^2.1
- php-http/mock-client: ^1.3
- phpmd/phpmd: ^2.7
- phpstan/phpstan: >=0.10
- phpunit/phpunit: ^8.5 || ^9.3
- squizlabs/php_codesniffer: *
- symfony/http-client: ^5.4.22
- vimeo/psalm: >=3.0.16
This package is auto-updated.
Last update: 2024-09-07 15:53:40 UTC
README
这是对cdek-it/sdk2.0的工作和(目前)维护的分支。如果遇到任何问题或不符合预期,请创建工单。
目前已修复了原始库中的问题
- 添加了对PHP 8.0+的支持
- 修复了PHPDoc的一些小错误,以便IDE提供更准确的提示
- 改进并添加了新的单元测试
- 添加了
Client::calculator()
方法来计算根据可用运费和运费代码的运费 - 改进了文档
- 修复了原始库的工单
同时提供了原始库的所有功能。因为这是分支,所以可以在自己的项目中简单地将依赖项替换为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许可证下发布。