lsv/glsdk-parcelshop-api

GLS ParcelShop 的 Web 服务

1.0.4 2017-06-27 10:29 UTC

This package is auto-updated.

Last update: 2024-09-10 10:42:25 UTC


README

Build Status Coverage Status

从以下任一方式获取包裹店

  • 包裹店编号
  • 丹麦邮编
  • 地址附近
  • 或获取丹麦所有包裹店

通过 ID 获取单个包裹店

<?php
require 'vendor/autoload.php';

use Lsv\GlsDk\ParcelShop;

$p = new ParcelShop();
$shop = $p->getParcelshop( ID );

如果未找到,则抛出 Exceptions\ParcelNotFoundException 异常

返回 $shop 是一个 Entity\Parcelshop 对象

通过邮编获取包裹店

<?php
require 'vendor/autoload.php';

use Lsv\GlsDk\ParcelShop;

$p = new ParcelShop();
$shops = $p->getParcelshopsFromZipcode( ZIPCODE );

如果没有找到,则抛出 Exceptions\NoParcelsFoundInZipcodeException 异常

返回 $shops 是一个包含 Entity\Parcelshop 的数组

通过地址获取包裹店

<?php
require 'vendor/autoload.php';

use Lsv\GlsDk\ParcelShop;

$p = new ParcelShop();
$shops = $p->getParcelshopsNearAddress( STREET , ZIPCODE, 20 );

第三个参数是你想要的数量

如果地址未知,则抛出 Exceptions\MalformedAddressException 异常

返回 $shops 是一个包含 Entity\Parcelshop 的数组

获取丹麦所有包裹店

<?php
require 'vendor/autoload.php';

use Lsv\GlsDk\ParcelShop;

$p = new ParcelShop();
$shops = $p->getAllParcelshops();

返回 $shops 是一个包含 Entity\Parcelshop 的数组

添加重试 guzzle 客户端

首先使用 composer 安装它

composer require guzzlehttp/retry-subscriber

现在创建我们的客户端

<?php
require 'vendor/autoload.php';

use Lsv\GlsDk\ParcelShop;
use GuzzleHttp\Subscriber\Retry\RetrySubscriber;

$retry = new RetrySubscriber([
    'filter' => RetrySubscriber::createStatusFilter()
]);

$client = new GuzzleHttp\Client();
$client->getEmitter()->attach($retry);

$p = new ParcelShop($client);
$shops = $p->getAllParcelshops();

切换到另一个 GLS 国家

<?php
require 'vendor/autoload.php';

use Lsv\GlsDk\ParcelShop;

$p = new ParcelShop(null, 'url-to-webservice');
$shops = $p->getAllParcelshops();