neriba / dpd-api-lib
DPD API库,帮助与其他系统集成
1.0.2
2023-04-03 13:28 UTC
Requires
- php: ^8.0|^8.1|^8.2
Requires (Dev)
- phpunit/phpunit: 10.0.x-dev
README
DPD API库,帮助与其他系统集成
官方DPD文档
安装
通过Composer安装
composer require neriba/dpd-api-lib
认证
环境
- LT - 立陶宛生产(默认)。
- LT_TEST - 立陶宛沙盒。
- LV - 拉脱维亚生产。
- LV_TEST - 拉脱维亚沙盒。
- EE - 爱沙尼亚生产。
- EE_TEST - 爱沙尼亚沙盒。
获取新令牌
如果您没有DPD的API密钥,但有旧的API凭据用户名和密码,您可以生成自己的API密钥。
// By default, third parameter is Lithuanian production environment $getToken = new \NeriBa\DpdApiLib\ApiTokenGenerator('USERNAME','PASSWORD','LT_TEST'); $getToken->createAuthToken('Token name');
创建实例
$token = 'eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9....'; // By default, third parameter is Lithuanian production environment $dpd = new \NeriBa\DpdApiLib\Request($token, 'LT_TEST');
获取用户信息
$dpd->authMe();
获取令牌列表
$dpd->getAuthTokenSecrets();
删除现有令牌
$dpd->deleteAuthTokenSecrets('99bb2035-5ed8-4547-95ca-7ffb5e79e694');
服务
获取用户的服务和价格
// additional parameters are possible as an array e.g ['countryFrom' => 'LT', 'countryTo' => 'LT'] // Parameters list: https://esiunta.dpd.lt/api#/Services/042db4934d823e1cc21745c549f2a810 $dpd->getServices(['countryFrom' => 'LT', 'countryTo' => 'LT']);
货运
获取货运列表
// additional parameters are possible as an array e.g ['limit'=> 10] // Parameters list: https://esiunta.dpd.lt/api/#/Shipment/1aed3b00cafe6d7bd576b2b84b41826f $dpd->getShipments();
创建简单货运
$senderAddress = new \NeriBa\DpdApiLib\Shipment\Package\Address(); $senderAddress ->setName('Test Sender') ->setPhone('62166025') ->setStreet('Uosių g') ->setStreetNo(24) ->setCity('Kaunas') ->setPostalCode('51446') ->setCountry('LT'); $receiverAddress = new \NeriBa\DpdApiLib\Shipment\Package\Address(); $receiverAddress ->setName('Test Receiver') ->setPhone('65123456') ->setStreet('Uriekstes') ->setStreetNo(24) ->setCity('Kaunas') ->setPostalCode('51446') ->setCountry('LT'); $shipment = new \NeriBa\DpdApiLib\Shipment\Shipment(); $shipment ->setSenderAddress($senderAddress) ->setReceiverAddress($receiverAddress) ->setService((new \NeriBa\DpdApiLib\Shipment\Package\Service())->setServiceName('DPD CLASSIC')) ->setParcel((new \NeriBa\DpdApiLib\Shipment\Package\Parcel())->setWeight(31)->setSize('XS')); $shipment2 = new \NeriBa\DpdApiLib\Shipment\Shipment(); $shipment2 ->setSenderAddress($senderAddress) ->setReceiverAddress($receiverAddress) ->setService((new \NeriBa\DpdApiLib\Shipment\Package\Service())->setServiceName('DPD CLASSIC')) ->setParcel((new \NeriBa\DpdApiLib\Shipment\Package\Parcel())->setWeight(10)->setSize('m')); // Max 50 shipments per request $dpd->createShipments([$shipment,$shipment2]);
删除货运
$dpd->deleteShipments(['0fa01f06-7c56-4c5c-a33f-0eca869663f3','0fa01f06-7c56-4c5c-a33f-0eca869663f4']);
标签
创建标签
$dpd->createShipmentsLabels((new \NeriBa\DpdApiLib\Shipment\Package\LabelOption())->setShipmentIds(['0fa01f06-7c56-4c5c-a33f-0eca869663f3']));
发票
通过uuid获取发票
$dpd->getInvoices('0fa01f06-7c56-4c5c-a33f-0eca869663f3');
寄存柜
根据给定标准查找寄存柜
$dpd->getLockers(['countryCode' => 'LT']);
货物清单
创建货运清单
$dpd->createShipmentManifest((new \NeriBa\DpdApiLib\Shipment\Package\Manifest())->setShipmentIds(['0fa01f06-7c56-4c5c-a33f-0eca869663f3']));
通过uuid获取货运清单
$dpd->getShipmentsManifestByManifest('0fa01f06-7c56-4c5c-a33f-0eca869663f3');
通过货运uuid获取货运清单
$dpd->getShipmentsManifestByShipment('0fa01f06-7c56-4c5c-a33f-0eca869663f3');
取货
创建取货
$pickupAddress = new \NeriBa\DpdApiLib\Shipment\Package\Address(); $pickupAddress ->setName('Test Sender') ->setContactName('Test Sender cc') ->setEmail('john.doe@email.com') ->setPhone('+37062166025') ->setStreet('Uosių g') ->setStreetNo(24) ->setCity('Kaunas') ->setPostalCode('51446') ->setCountry('LT'); $pickup = new \NeriBa\DpdApiLib\Pickup\Pickup(); $pickup ->setPallets([(new \NeriBa\DpdApiLib\Pickup\Package\Pallet())->setWeight(150)->setCount(1)]) ->setAddress($pickupAddress) ->setPickupDate('2022-10-12') ->setPickupTime('11:00', '15:00'); $dpd->createPickup($pickup);
获取取货
// additional parameters are possible as an array e.g ['limit'=> 10] // Parameters list: https://esiunta.dpd.lt/api/#/Pickup/50e315fc1327d9f9a55db05ef66b4b48 $dpd->getPickups();
获取取货时间范围列表
// additional parameters are possible as an array e.g ['country' => 'LT','zip' => 51336] // Parameters list: https://esiunta.dpd.lt/api/#/Pickup%20timeframes/e092e35374638c464b1e0b3eaa7513d9 $dpd->getPickupTimeFrames(['country' => 'LT','zip' => 51336]);
问题
从知识库获取问题描述
$dpd->getProblems(123456);
状态
获取包裹状态
// additional parameters are possible as an array e.g ['pknr' => '05808021421108','show_all' => 1] // Parameters list: https://esiunta.dpd.lt/api#/Status/ede44d1ca4e3e15955d44ecc42970e3c $dpd->getTrackingStatus(['pknr' => '05808021421108']);
订阅包裹
// additional parameters are possible as an array e.g ['parcelnumber' => '05808021421108', 'callbackurl' => 'https://www.hereisyoursiteurl.com'] // Parameters list: https://esiunta.dpd.lt/api#/Status/8d78b691726ba36b76c5960067c1370c $dpd->subscribeToParcel(['parcelnumber' => '05808021421108', 'callbackurl' => 'https://www.hereisyoursiteurl.com']);
取消订阅包裹
// additional parameters are possible as an array e.g ['parcelnumber' => '05808021421108', 'callbackurl' => 'https://www.hereisyoursiteurl.com'] // Parameters list: https://esiunta.dpd.lt/api#/Status/915e1bfce8f27458cfb3f27f78326866 $dpd->unsubscribeToParcel(['parcelnumber' => '05808021421108', 'callbackurl' => 'https://www.hereisyoursiteurl.com']);
跟踪
环境
- LT - 立陶宛生产(默认)。
- LV - 拉脱维亚生产。
- EE - 爱沙尼亚生产。
通过包裹号码获取跟踪信息
注意:现在跟踪无需授权即可工作,尽管文档中提到它是使用Bearer。
$apiKey = ''; // By default, second parameter is Lithuanian production environment $tracking = new \NeriBa\DpdApiLib\Tracking($apiKey,'LT'); $tracking->getTracking(['05808021421108','05808021421105']);
许可
MIT许可(MIT)。有关更多信息,请参阅许可文件。