neriba/dpd-api-lib

DPD API库,帮助与其他系统集成

1.0.2 2023-04-03 13:28 UTC

This package is auto-updated.

Last update: 2024-09-03 16:56:35 UTC


README

DPD API库,帮助与其他系统集成

Latest Stable Version Total Downloads License

官方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)。有关更多信息,请参阅许可文件