sergeevpasha / laravel-dpd
Laravel 的微型 DPD API 包装器
v2.0.3
2023-12-17 08:27 UTC
Requires
- php: ^8.0
- ext-json: *
- ext-soap: *
- bensampo/laravel-enum: >=3.0 <=6.0
- guzzlehttp/guzzle: ^7.0
- laravel/framework: ^8.40.0 || ^9.0.0 || ^10.0.0
- spatie/data-transfer-object: ^3.7
Requires (Dev)
- orchestra/testbench: ^6.0
- phpstan/phpstan: ^0.12.32
- phpunit/phpunit: ^9.2
- squizlabs/php_codesniffer: dev-master
This package is auto-updated.
Last update: 2024-09-12 18:24:15 UTC
README
重要更新
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