apetchenko/metaship-php-sdk
Composer 安装命令:
composer require apetchenko/metaship-php-sdk
包简介
MetaShip API SDK (metaship.ru)
README 文档
README
Установка
Минимальные требования — PHP 7.1+.
composer require apetchenko/metaship-php-sdk:0.0.5
Использование
require_once '../vendor/autoload.php'; \Doctrine\Common\Annotations\AnnotationRegistry::registerLoader('class_exists'); $client = new MetaShipAPIClient('URL','api-key', 'api-secet');
Получение вариантов доставки
use MetaShipRU\MetaShipPHPSDK\Request\Offer\OfferRequest; use GuzzleHttp\Exception\BadResponseException; use MetaShipRU\MetaShipPHPSDK\Component\ResponseFormatter\ErrorResponseFormatter; use MetaShipRU\MetaShipPHPSDK\Component\ResponseFormatter\OfferResponseFormatter; use MetaShipRU\MetaShipPHPSDK\MetaShipAPIClient; $offersRequest = new OfferRequest(); $offersRequest->cityTo = 'Москва'; $offersRequest->zipTo = 115612; $offersRequest->paymentSum = 1000; $offersRequest->weight = 1.2; $offersRequest->length = 10; $offersRequest->height = 10; $offersRequest->width = 10; $offersRequest->deliveryType = 'courier'; try { $response = $client->getOffers($offersRequest); $offerResponse = ResponseFormatter::format( $response, 'array<MetaShipRU\MetaShipPHPSDK\DTO\Offer\Offer>' ); } catch (BadResponseException $exception) { $offerResponse = ResponseFormatter::format( $exception->getResponse(), 'array<MetaShipRU\MetaShipPHPSDK\DTO\Error\Error>' ); }
Создание заказа
use GuzzleHttp\Exception\BadResponseException; use MetaShipRU\MetaShipPHPSDK\Component\ResponseFormatter\ErrorResponseFormatter; use MetaShipRU\MetaShipPHPSDK\Component\ResponseFormatter\OrderResponseFormatter; use MetaShipRU\MetaShipPHPSDK\MetaShipAPIClient; use MetaShipRU\MetaShipPHPSDK\Request\Address\CreateAddressRequest; use MetaShipRU\MetaShipPHPSDK\Request\Item\CreateItemRequest; use MetaShipRU\MetaShipPHPSDK\Request\Order\CreateOrderRequest; use MetaShipRU\MetaShipPHPSDK\Request\Recipient\CreateRecipientRequest; $createOrderRequest = new CreateOrderRequest(); $createOrderRequest->deliveryType = 'courier'; $createOrderRequest->width = 10; $createOrderRequest->height = 10; $createOrderRequest->weight = 1.2; $createOrderRequest->length = 10; $createOrderRequest->paymentSum = 1000; $createOrderRequest->assessedValue = 1000; $createOrderRequest->deliveryName = 'Boxberry'; $createOrderRequest->shopNumber = 'Test-order-3'; $createOrderRequest->deliveryCost = 200; $createOrderRequest->shopServiceCode = 3; $createOrderRequest->prepaidValue = 0; $createRecipientRequest = new CreateRecipientRequest(); $createRecipientRequest->email = 'test@test.com'; $createRecipientRequest->firstName = 'Иван'; $createRecipientRequest->middleName = 'Иванович'; $createRecipientRequest->lastName = 'Иванов'; $createRecipientRequest->phone = '7(926)777-77-77'; $createAddressRequest = new CreateAddressRequest(); $createAddressRequest->zip = 115612; $createAddressRequest->city = 'Москва'; $createAddressRequest->street = 'Тверская'; $createAddressRequest->house = '43'; $createAddressRequest->housing = '3'; $createAddressRequest->apartment = 'кв 14'; $createRecipientRequest->address = $createAddressRequest; $createOrderRequest->recipient = $createRecipientRequest; $createItemRequest = new CreateItemRequest(); $createItemRequest->name = 'iPhone 6s'; $createItemRequest->weight = 1; $createItemRequest->cost = 100; $createItemRequest->quantity = 1; $createItemRequest->vatCode = '20'; $createItemRequest->vendorCode = 'W234HH-12'; $createOrderRequest->items = [$createItemRequest]; try { $response = $client->createOrder($createOrderRequest); $orderResponse = ResponseFormatter::format( $response, 'MetaShipRU\MetaShipPHPSDK\DTO\Order\Order' ); } catch (BadResponseException $exception) { $orderResponse = ResponseFormatter::format( $exception->getResponse(), ErrorResponse::class ); }
Получение заказов
$response = $client->getOrders($ordersRequest); $ordersResponse = ResponseFormatter::format( $response, 'array<MetaShipRU\MetaShipPHPSDK\DTO\Order\Order>' );
Получение ПВЗ
$getPickupPointsRequest = new GetPickupPointsRequest(); $getPickupPointsRequest->kladrId = 7700000000000; try { $response = $client->getPickupPoints($getPickupPointsRequest); $orderResponse = ResponseFormatter::format( $response, 'array<MetaShipRU\MetaShipPHPSDK\DTO\PickupPoint\PickupPoint>' ); } catch (BadResponseException $exception) { $orderResponse = ResponseFormatter::format( $exception->getResponse(), ErrorResponse::class ); }
Создание партии
$createParcelRequest = new CreateParcelRequest(); $createParcelRequest->orderNumbers = [12376]; try { $response = $client->createParcel($createParcelRequest); $parcelResponse = ResponseFormatter::format( $response, ParcelsResponse::class ); } catch (BadResponseException $exception) { $parcelResponse = ResponseFormatter::format( $exception->getResponse(), ErrorResponse::class ); }
apetchenko/metaship-php-sdk 适用场景与选型建议
apetchenko/metaship-php-sdk 是一款 基于 PHP 开发的 Composer 扩展包,目前已累计 58 次下载、GitHub Stars 达 0, 最近一次更新时间为 2019 年 08 月 22 日, 在 PHP 生态内属于活跃度较高的组件。
它主要适用于以下技术方向: 「sdk」 「delivery」 「MetaShip」 等业务场景。在实际项目中,围绕这些方向常见需要落地的问题包括:接口对接、性能调优、并发安全、与既有框架(Laravel / ThinkPHP / Yii / Webman 等)的兼容适配,以及生产环境的日志埋点与稳定性保障。
我们在过去多个企业项目中使用过 apetchenko/metaship-php-sdk 或与其功能相近的方案,如果你在选型或落地过程中遇到问题,例如 版本兼容、二次改造、私有化封装、与内部系统对接、生产 BUG 排查,欢迎联系我们协助评估。
基于 apetchenko/metaship-php-sdk 在你已有业务上做功能扩展、字段裁剪、UI 适配、与内部账号 / 权限 / 日志系统的深度对接。
线上偶发问题、内存泄漏、慢查询、并发异常等排查修复;针对高流量场景做缓存、队列、索引层面的调优。
承接完整的项目从需求 → 设计 → 开发 → 上线 → 长期运维;也可按月提供技术保姆服务。
与 apetchenko/metaship-php-sdk 相关的其它包
同方向 / 同关键字的高下载量 PHP Composer 包推荐,方便对比选型:
PHP SDK for the Parcel Monkey UK API
MetaShip API SDK (metaship.ru)
Serve Laravel Assets from a Content Delivery Network (CDN)
Yii2 extension help to get the result of the calculating from the aggregated delivery services
Secure PHP Vault
MetaShip API SDK (metaship.ru)
统计信息
- 总下载量: 58
- 月度下载量: 0
- 日度下载量: 0
- 收藏数: 0
- 点击次数: 8
- 依赖项目数: 0
- 推荐数: 0
其他信息
- 授权协议: MIT
- 更新时间: 2019-08-22