定制 jacobdekeizer/dpd-shipper-client 二次开发

按需修改功能、优化性能、对接业务系统,提供一站式技术支持

邮箱:yvsm@zunyunkeji.com | QQ:316430983 | 微信:yvsm316

jacobdekeizer/dpd-shipper-client

Composer 安装命令:

composer require jacobdekeizer/dpd-shipper-client

包简介

A PHP client for the DPD shipper API

README 文档

README

An object-oriented PHP client for the DPD Shipper API.

Installation

You can install this package via composer:

composer require jacobdekeizer/dpd-shipper-client

Usage

$client = new \JacobDeKeizer\DpdShipper\Client(
    authTokenStore: new \JacobDeKeizer\DpdShipper\Stores\JsonFileAuthTokenStore(
        __DIR__ . '/auth.json'
    ), // Or your own implementation of the AuthTokenStore interface
    accountConfiguration: new \JacobDeKeizer\DpdShipper\Configuration\AccountConfiguration(
        username: 'username',
        depotNumber: 'depot number',
        password: 'password',
    ),
    locale: 'nl_NL', // optional
    staging: false, // optional
);

Endpoints

This readme shows basic usage of this package, for all available options see the class definitions and the api documentation.

ParcelShopFinder

Documentation

Find parcel shops

$result = $client->parcelShopFinder()->findParcelShops(new \JacobDeKeizer\DpdShipper\Entities\ParcelShopFinder\FindParcelShopsRequest(
    country: 'NL',
    zipCode: '1012NX',
    city: 'Amsterdam',
    limit: 2
));

Find parcel shops by geo data

$result = $client->parcelShopFinder()->findParcelShopsByGeoData(new \JacobDeKeizer\DpdShipper\Entities\ParcelShopFinder\FindParcelShopsByGeoDataRequest(
    latitude: 52.377956,
    longitude: 4.897070,
    limit: 2
));

Shipment

Documentation

Store orders

$result = $client->shipment()->storeOrders(new \JacobDeKeizer\DpdShipper\Entities\Shipment\StoreOrdersRequest(
        [
            new \JacobDeKeizer\DpdShipper\Entities\Shipment\Order(
                generalShipmentData: new \JacobDeKeizer\DpdShipper\Entities\Shipment\GeneralShipmentData(
                    sendingDepot: $this->client->login()->session()->depot,
                    product: \JacobDeKeizer\DpdShipper\Entities\Shipment\ShipmentProduct::CL,
                    sender: new \JacobDeKeizer\DpdShipper\Entities\Shipment\Address(
                        name1: 'Ikea',
                        street: 'Hullenbergweg',
                        country: 'NL',
                        zipCode: '1101BL',
                        city: 'Amsterdam',
                        houseNo: '2',
                        phone: '+31612345678',
                        email: 'johndoe@example.com',
                    ),
                    recipient: new \JacobDeKeizer\DpdShipper\Entities\Shipment\Address(
                        name1: 'John Doe',
                        street: 'Hullenbergweg',
                        country: 'NL',
                        zipCode: '1101BL',
                        city: 'Amsterdam',
                        name2: 'Company Name',
                        houseNo: '2',
                        phone: '+31612345678',
                        email: 'johndoe@example.com',
                    ),
                ),
                productAndServiceData: new \JacobDeKeizer\DpdShipper\Entities\Shipment\ProductAndServiceData(
                    orderType: \JacobDeKeizer\DpdShipper\Entities\Shipment\OrderType::Consignment,
                    saturdayDelivery: true,
                    predict: new \JacobDeKeizer\DpdShipper\Entities\Shipment\Notification(
                        channel: \JacobDeKeizer\DpdShipper\Entities\Shipment\NotificationChannel::Sms,
                        value: '+31612345678',
                        language: 'NL',
                    ),
                ),
                parcels: [
                    new \JacobDeKeizer\DpdShipper\Entities\Shipment\Parcel(
                        customerReferenceNumber1: 'TEST12345',
                        customerReferenceNumber2: 'A reference', // Optional
                        volume: 0100202030, // 10cm x 20cm x 30cm, optional
                        weight: 315, // 3,15 KG, optional
                    ),
                    new \JacobDeKeizer\DpdShipper\Entities\Shipment\Parcel(
                        customerReferenceNumber1: 'TEST12',
                    )
                ]
            )
        ],
        new \JacobDeKeizer\DpdShipper\Entities\Shipment\PrintOptions(
            printerLanguage: \JacobDeKeizer\DpdShipper\Entities\Shipment\PrinterLanguage::PDF,
            paperFormat: \JacobDeKeizer\DpdShipper\Entities\Shipment\PaperFormat::A6,
        )
    ));

Exceptions

All exceptions extend from the DpdShipperException. See the Exceptions folder for all possible exceptions if you want to catch them individually.

try {
    $result = $client->parcelShopFinder()->findParcelShopsByGeoData(...);

    var_dump($result);
} catch (\JacobDeKeizer\DpdShipper\Exceptions\AuthenticationFaultException $authenticationFaultException) {
    // Catches the specific AuthenticationFaultException
    $errorMessage = $authenticationFaultException->detail->authenticationFault->errorMessage;
    
    var_dump($authenticationFaultException->detail);
} catch (\JacobDeKeizer\DpdShipper\Exceptions\DpdShipperException $exception) {
    // Catches the rest of the possible exceptions.
    var_dump($exception);
}

jacobdekeizer/dpd-shipper-client 适用场景与选型建议

jacobdekeizer/dpd-shipper-client 是一款 基于 PHP 开发的 Composer 扩展包,目前已累计 222 次下载、GitHub Stars 达 0, 最近一次更新时间为 2023 年 10 月 19 日, 在 PHP 生态内属于活跃度较高的组件。

它主要适用于以下技术方向: 「php」 「api」 「dpd」 「dpd shipper」 等业务场景。在实际项目中,围绕这些方向常见需要落地的问题包括:接口对接、性能调优、并发安全、与既有框架(Laravel / ThinkPHP / Yii / Webman 等)的兼容适配,以及生产环境的日志埋点与稳定性保障。

我们在过去多个企业项目中使用过 jacobdekeizer/dpd-shipper-client 或与其功能相近的方案,如果你在选型或落地过程中遇到问题,例如 版本兼容、二次改造、私有化封装、与内部系统对接、生产 BUG 排查,欢迎联系我们协助评估。

围绕 jacobdekeizer/dpd-shipper-client 我们能提供哪些服务?
定制开发 / 二次开发

基于 jacobdekeizer/dpd-shipper-client 在你已有业务上做功能扩展、字段裁剪、UI 适配、与内部账号 / 权限 / 日志系统的深度对接。

BUG 修复 & 性能优化

线上偶发问题、内存泄漏、慢查询、并发异常等排查修复;针对高流量场景做缓存、队列、索引层面的调优。

项目外包 & 长期维护

承接完整的项目从需求 → 设计 → 开发 → 上线 → 长期运维;也可按月提供技术保姆服务。

yvsm@zunyunkeji.com QQ:316430983 微信:yvsm316 西安尊云信息科技 · 专注 PHP / Go / 分布式系统研发

统计信息

  • 总下载量: 222
  • 月度下载量: 0
  • 日度下载量: 0
  • 收藏数: 0
  • 点击次数: 16
  • 依赖项目数: 0
  • 推荐数: 0

GitHub 信息

  • Stars: 0
  • Watchers: 1
  • Forks: 0
  • 开发语言: PHP

其他信息

  • 授权协议: MIT
  • 更新时间: 2023-10-19