crakter/bringapi

BringApi 是一个功能齐全的库,用于帮助联系 Bring API

3.0.3 2024-08-15 18:51 UTC

README

Build Status

Bring API PHP 是一个用于联系 Bring API 以获取价格、预订、报告等的库。我没有找到任何可以用在 PHP 和 Bring API 上的东西。所以我需要一个可重用的优秀库。这个库被一个大型的挪威批发商在生产中使用。

安装

Composer(推荐)

可以直接使用 Composer 安装。

在正确的目录中运行以下命令。

$ composer require crakter/bringapi

要求

  • PHP 版本 7.2.0 或更高
  • 启用 PHP 扩展 php_simplexml(从 5.1.2 及以上版本默认启用)

支持的 API

  • 运输指南 API
    • 获取估算价格
    • 获取估算配送时间
    • 获取估算价格、配送时间等更多信息
  • 预订 API
    • 列出客户名称
    • 预订运输
    • 预约取件
  • 跟踪 API
    • 跟踪运输(也记录在案)
    • 下载签名
  • 报告 API
    • 列出可用客户
    • 列出客户的可用报告
    • 生成报告
    • 检查报告的状态
    • 列出发票号码
  • 邮政编码 API
    • 查找邮政编码

基本用法

作为记录在案的跟踪

如果您移除了授权模块,您可以像普通用户一样跟踪。

use Crakter\BringApi\Entity\TrackingEntity;
use Crakter\BringApi\Clients\Authorization;
use Crakter\BringApi\Clients\Tracking\TrackingEndpoint;

$trackingEntity = (new TrackingEntity)->set(['q' => 'TESTPACKAGE-AT-PICKUPPOINT']); // Can be used like this
//$trackingEntity = (new TrackingEntity)->setQ('TESTPACKAGE-AT-PICKUPPOINT'); // Can also be used like this
/* And like this
$trackingEntity = (new TrackingEntity);
$trackingEntity->q = 'TESTPACKAGE-AT-PICKUPPOINT';
*/
$authorizationModule = (new Authorization)
    ->setApiKey('1234abc-abcd-1234-5678-abcd1234abcd')
    ->setClientId('example@example.no')
    ->setClientUrl('http://example.com');

$tracking = (new TrackingEndpoint)
    ->setAuthorizationModule($authorizationModule)
    ->setApiEntity($trackingEntity)
    ->send();
print_r($tracking->toArray());

高级用法

查看示例文件夹,或者您可以使用 Sami(composer dev-dependency)生成文档。

对于运行 Linux 的人

vendor/bin/sami.php -n render SamiConfig.php

对于运行 Windows 的人

"vendor/bin/sami.php.bat" -n render SamiConfig.php

您现在可以在 docs/build 文件夹中找到文档。

运行示例

为了使测试能够运行,需要在环境中设置 Bring UID、Bring API 密钥和客户编号

对于运行 Linux 的人

export BRING_UID="john.doe@example.com" && export BRING_API_KEY="1234abc-abcd-1234-5678-abcd1234abcd" && export BRING_CUSTOMER_NUMBER="	PARCELS_NORWAY-10001123123"

对于运行 Windows 的人

setx BRING_UID john.doe@example.com
setx BRING_API_KEY 1234abc-abcd-1234-5678-abcd1234abcd
setx BRING_CUSTOMER_NUMBER PARCELS_NORWAY-10001123123

进入一个新的命令提示符并运行示例。一些示例可以带有参数,如 postalcodes。

cd examples/
php BookAndPickupShipment.php
php PostalCode.php <numberOfPostalCode>
php ShippingGuideAll.php <fromPostalCode> <toPostalCode>
php Tracking.php <query>
php Reports.php <reportId>

贡献

欢迎贡献。

请遵循 PSR-2 编码标准。您可以使用 php-cs-fixer 修复代码中的问题。

许可

MIT