sergeevpasha/laravel-dpd

Laravel 的微型 DPD API 包装器

v2.0.3 2023-12-17 08:27 UTC

README

Maintainability Test Coverage CodeFactor Generic badge Generic badge

重要更新

DPD 做了很多改动,因此我认为最好的方式是将 DPD API 作为一项服务,所以从现在开始,这个包将只包含它所需的一些基本功能,建议您使用它(稍后可用)。

Laravel DPD API 包装器

允许您

  • 获取所有 DPD 城市
  • 获取所有 DPD 终端
  • 计算配送

预需求

您需要获取 DPD API 密钥、用户名、登录名和密码。密钥可以在您的个人账户中获取,地址为 https://www.dpd.ru/ols/order/personal/integrationKey.do2

安装

composer require sergeevpasha/laravel-dpd

配置

此包包含一些配置值

'key'        => env('DPD_KEY'),
'user'       => env('DPD_USER'),
'login'      => env('DPD_LOGIN'),
'password'   => env('DPD_PASSWORD'),
'prefix'     => 'dpd',
'middleware' => ['web']
php artisan vendor:publish --provider="SergeevPasha\DPD\Providers\DPDServiceProvider" --tag="config"

安装后,您可以导入客户端

use SergeevPasha\DPD\Libraries\DPDClient;
/* 
    You may find your User ID by entering DPD Cabinet.
    Here we are initializing the client.
*/
$client = new DPDClient('user', 'key');

现在我们可以使用这些方法

$client->getCountryCities(string $country)
$client->getTerminals()
$client->findByTrackNumber(string $trackNumber)  
/* This one requires a Delivery Object, see next to see how to build it */
$client->getPrice(Delivery $delivery)

配送对象

要构建配送对象,您需要传递一个数组给 fromArray() 方法,就像这样

Delivery::fromArray([
    arrival_city_id     => 123456, // Arrival City ID from findCity() method
    derival_city_id     => 123456, // Derival City ID from findCity() method
    arrival_terminal    => 1, // Set 1 if you are delivering to terminal
    derival_terminal    => 0, // Set 1 if you send from terminal
    parcel_total_weight => 20, // Total parcel weight, KG
    parcel_total_volume => 0.5, // Total parcel volume, M3
    parcel_total_value  => 1000500.50, // Total parcel volume, RUB
    pickup_date         => 2020-10-10, // YYYY-MM-DD Format, when your parcel should be picked up for delivery
    max_delivery_days   => 15, // Show only options that can be delivered for that or less amount of days
    max_delivery_price  => 1000.10, // Show only options that costs that or less price
    services => [
        'ECU',
        'CUR'
    ], // List of available services
])

可用国家

如果您需要指定国家,您需要使用以下代码之一

RU - Russia
KZ - Kazakhstan
AM - Armenia
BY - Belarus
KG - Kyrgyzstan

可用服务

如果您需要指定服务,您需要使用以下代码之一

BZP = '18:00';
ECN - ECONOMY
ECU - ECONOMY CU
CUR - CLASSIC
NDY - EXPRESS
CSM - Online Express
PCL - OPTIMUM
PUP - SHOP
DPI - CLASSIC international IMPORT
DPE - CLASSIC international EXPORT
MAX - MAX domestic
MXO - Online Max