c24-toys / php-gls-shipping-sdk
包裹处理GLS Web API的SDK
1.1.1
2023-01-24 11:32 UTC
Requires
- php: ^8.0.0
- ext-json: *
- netresearch/jsonmapper: ^4.0.0
- php-http/discovery: ^1.10.0
- php-http/httplug: ^2.2.0
- php-http/logger-plugin: ^1.2.1
- psr/http-client: ^1.0.1
- psr/http-client-implementation: ^1.0.0
- psr/http-factory: ^1.0.0
- psr/http-factory-implementation: ^1.0.0
- psr/http-message: ^1.0.0
- psr/http-message-implementation: ^1.0.0
- psr/log: ^1.1.0
Requires (Dev)
- nyholm/psr7: ^1.0.0
- php-http/mock-client: ^1.5.0
- phpstan/phpstan: ^1.5.0
- phpunit/phpunit: ^8.0.0 || ^9.0.0
- roave/security-advisories: dev-latest
- squizlabs/php_codesniffer: ^3.4
This package is auto-updated.
Last update: 2024-09-24 16:38:37 UTC
README
GLS包裹处理API SDK包提供了以下网络服务的接口
- GLS包裹处理Web API
- GLS包裹取消Web API
要求
系统要求
- PHP 7.2+带JSON扩展
包要求
netresearch/jsonmapper
:将JSON响应消息反序列化为PHP对象的映射器php-http/discovery
:HTTP客户端和消息工厂实现的发现服务php-http/httplug
:可插拔的HTTP客户端抽象php-http/logger-plugin
:HTTPlug的HTTP客户端记录插件psr/http-client
:PSR-18 HTTP客户端接口psr/http-factory
:PSR-7 HTTP消息工厂接口psr/http-message
:PSR-7 HTTP消息接口psr/log
:PSR-3记录接口
虚拟包要求
psr/http-client-implementation
:任何提供PSR-18兼容HTTP客户端的包psr/http-factory-implementation
:任何提供PSR-7兼容HTTP消息工厂的包psr/http-message-implementation
:任何提供PSR-7 HTTP消息的包
开发包要求
nyholm/psr7
:PSR-7 HTTP消息工厂和消息实现phpunit/phpunit
:测试框架php-http/mock-client
:HTTPlug模拟客户端实现phpstan/phpstan
:静态分析工具squizlabs/php_codesniffer
:静态分析工具
安装
$ composer require c24-toys/php-gls-shipping-sdk
卸载
$ composer remove c24-toys/php-gls-shipping-sdk
测试
$ composer test
功能
GLS包裹处理API SDK支持以下功能
- 创建带标签的运单
- 取消包裹
创建运单
创建包含一个或多个包裹的运单并检索运单标签。每个包裹可以单独订购增值服务。可以单独请求退货运单标签(“仅退货”)或与常规“运往”标签一起请求。
公共API
适用于消费的库组件包括
- 服务
- 服务工厂
- 运单服务
- 数据传输对象构建器
- 数据传输对象
- 包含包裹的运单
- 异常
使用方法
$logger = new \Psr\Log\NullLogger(); $serviceFactory = new \C24Toys\GLS\Sdk\ParcelProcessing\Service\ServiceFactory(); $service = $serviceFactory->createShipmentService('basicAuthUser', 'basicAuthPass', $logger, $sandbox = true); // REGULAR SHIPMENT $requestBuilder = new \C24Toys\GLS\Sdk\ParcelProcessing\RequestBuilder\ShipmentRequestBuilder(); $requestBuilder->setShipperAccount($shipperId = '98765 43210'); $requestBuilder->setRecipientAddress( $country = 'DE', $postalCode = '36286', $city = 'Neuenstein', $street = 'GLS-Germany-Straße 1 - 7', $name = 'Jane Doe' ); $requestBuilder->addParcel($parcelWeightA = 0.95); $requestBuilder->addParcel($parcelWeightB = 1.2); $request = $requestBuilder->create(); $shipment = $service->createShipment($request); // work with the web service response, e.g. persist label foreach ($shipment->getLabels() as $i => $label) { file_put_contents("/tmp/{$shipment->getConsignmentId()}-{$i}.pdf", $label); } // RETURN SHIPMENT $requestBuilder = new \C24Toys\GLS\Sdk\ParcelProcessing\RequestBuilder\ReturnShipmentRequestBuilder(); $requestBuilder->setShipperAccount($shipperId = '98765 43210'); $requestBuilder->setShipperAddress( $country = 'DE', $postalCode = '36286', $city = 'Neuenstein', $street = 'GLS-Germany-Straße 1 - 7', $name = 'Jane Doe' ); $requestBuilder->setRecipientAddress( $country = 'DE', $postalCode = '36286', $city = 'Neuenstein', $street = 'GLS Germany-Straße 1 - 7', $company = 'GLS Germany' ); $requestBuilder->addParcel($weight = 0.95, $qrCode = true); $request = $requestBuilder->create(); $shipment = $service->createShipment($request);
取消包裹
取消一个或多个包裹。
公共API
适用于消费的库组件包括
- 服务
- 服务工厂
- 取消服务
- 异常
使用方法
$logger = new \Psr\Log\NullLogger(); $serviceFactory = new \C24Toys\GLS\Sdk\ParcelProcessing\Service\ServiceFactory(); $service = $serviceFactory->createCancellationService('basicAuthUser', 'basicAuthPass', $logger, $sandbox = true); $cancelledIds = $service->cancelParcels([$parcelIdA = '12345', $parcelIdB = '54321']);
源自https://github.com/netresearch/gls-sdk-api-parcel-processing