datalinx/dpd-php-sdk

DPD 斯洛文尼亚和克罗地亚的 PHP SDK

v0.1.4-alpha 2023-02-21 07:20 UTC

README

Packagist PHP Version Support Packagist Version Packagist Downloads Tests codecov Conventional Commits Packagist License

关于

本包实现了斯洛文尼亚和克罗地亚的 DPD EasyShip API。
每个地区似乎都有自己的版本,因此本包不适用于其他任何国家,其他任何实现也不适用于斯洛文尼亚和克罗地亚。

要求

  • 支持的 PHP 版本:7.4 - 8.2
  • 支持的操作系统:Linux 或 Windows
  • 必需的 PHP 扩展:curl, json

注意:该包可在 PHP 8.2 上运行,但目前 CI 测试在 8.2 上失败,因为我们在测试中使用的 php-vcr 包尚不支持。

安装

使用 composer 下载

composer require datalinx/dpd-php-sdk

用法

目前,仅实现了 ParcelImport 端点。

// Set up the API
$dpd = new \DataLinx\DPD\API(getenv('DPD_USERNAME'), getenv('DPD_PASSWORD'), getenv('DPD_COUNTRY_CODE'));

// Prepare the request
$request = new \DataLinx\DPD\Requests\ParcelImport($dpd);
$request->name1 = 'Zdravko Dren';
$request->street = 'Partizanska';
$request->rPropNum = '44';
$request->city = 'Izola';
$request->country = 'SI';
$request->pcode = '6310';
$request->num_of_parcel = 1;
$request->parcel_type = ParcelType::CLASSIC_COD;
$request->cod_amount = 1234.56;
$request->cod_purpose = 'CODREF001';
$request->predict = true;

try {
    $response = $request->send();
    
    // Get parcel numbers
    $parcel_no = $response->getParcelNumbers();
    
    // $parcel_no is now an array with parcel numbers, e.g. ["16962023438943"]

} catch (\DataLinx\DPD\Exceptions\ValidationException $exception) {
    // Handle request validation exception
} catch (\DataLinx\DPD\Exceptions\APIException $exception) {
    // Handle API exception
} catch (\Exception $exception) {
    // Handle other exceptions
}

贡献

欢迎提交新端点实现的拉取请求。

如果您有改进此包的建议,请提交问题或更好的是,提交拉取请求。

如果您想做出贡献,请参阅DataLinx PHP 包模板中的开发指南。

运行测试

默认情况下,测试针对由 php-vcr 包捕获的静态测试用例运行。

如果您想更新测试用例或针对 DPD 提供的实时(但仍处于测试状态)API 运行测试,您需要用户名和密码来运行它们。您可以通过写信给it@dpd.si来获取它们。

一旦您有了凭证,您可以在 phpunit.xml 中设置它们。

之后,您还需要设置一个名为 LIVE 的环境变量,值为 1。这将删除测试用例,在运行测试之前强制进行实时请求。

开发者资源

变更日志

本项目的所有重大更改都自动记录在CHANGELOG.md 文件中,基于 release-please GitHub 动作和发布工作流程。

格式基于 Keep a Changelog,本项目遵循 语义化版本控制

为此,提交消息必须遵循 常规提交 规范,这同样由 Git 钩强制执行。