yusufthedragon/shipper-php

Shipper API 的 PHP 客户端

1.0.1 2022-10-20 07:31 UTC

This package is auto-updated.

Last update: 2024-09-20 11:50:05 UTC


README

用于从用 PHP 编写的应用程序访问 Shipper API 的非官方库。

安装

使用以下命令使用 composer 安装 shipper-php

composer require yusufthedragon/shipper-php

或者在您的 composer.json 文件中手动添加。

用法

设置 API 密钥

使用从 Shipper 获得的账户 API 密钥配置包。

Shipper::setApiKey('apiKey');

设置生产模式

当将您的应用程序部署到生产环境时,您可能希望通过设置 setProductionModetrue 来更改 API 端点。

Shipper::setProductionMode(true);
// or chain it with setApiKey method
Shipper::setProductionMode(true)->setApiKey('apiKey');

可用方法和示例

位置

获取国家

以列表形式检索国家数据。

\Shipper\Location::getCountries();

用法示例

$getCountries = \Shipper\Location::getCountries();
var_dump($getCountries);

获取省份

以列表形式检索印度尼西亚的所有省份。

\Shipper\Location::getProvinces();

用法示例

$getProvinces = \Shipper\Location::getProvinces();
var_dump($getProvinces);

获取城市

根据提交的省份 ID 检索城市。

\Shipper\Location::getCities(int $provinceId);

用法示例

$getCities = \Shipper\Location::getCities(9);
var_dump($getCities);

获取始发城市

检索 Shipper 提供提货服务的省份。

\Shipper\Location::getOriginCities();

用法示例

$getOriginCities = \Shipper\Location::getOriginCities();
var_dump($getOriginCities);

获取郊区

根据提交的城市 ID 检索郊区。

\Shipper\Location::getSuburbs(int $cityId);

用法示例

$getSuburbs = \Shipper\Location::getSuburbs(80);
var_dump($getSuburbs);

获取区域

根据提交的郊区 ID 检索区域。

\Shipper\Location::getAreas(int $suburbId);

用法示例

$getAreas = \Shipper\Location::getAreas(1330);
var_dump($getAreas);

搜索位置

检索包含提交子字符串(包括邮政编码)的每个区域、郊区和城市。

\Shipper\Location::searchLocation(string $substring);

用法示例

$searchLocation = \Shipper\Location::searchLocation('jakarta');
var_dump($searchLocation);

运费

获取国内运费

\Shipper\Rates::getDomesticRates(array $parameters);

用法示例

$parameters = [
    'o' => 4802,
    'd' => 4852,
    'l' => 20,
    'w' => 15,
    'h' => 10,
    'wt' => 1.0,
    'v' => 199000,
    'type' => 1,
    'cod' => 0,
    'order' => 0,
    'originCoord' => '-6.1575362903,106.7858796692',
    'destinationCoord' => '-6.17846396594961,106.84122923291011​'
];

$getDomesticRates = \Shipper\Rates::getDomesticRates($parameters);
var_dump($getDomesticRates);

获取国际运费

\Shipper\Rates::getInternationalRates(array $parameters);

用法示例

$parameters = [
    'o' => 4802,
    'd' => 180,
    'l' => 20,
    'w' => 15,
    'h' => 10,
    'wt' => 1.0,
    'v' => 199000,
    'type' => 2,
    'order' => 0
];

$getInternationalRates = \Shipper\Rates::getInternationalRates($parameters);
var_dump($getInternationalRates);

订单

创建国内订单

\Shipper\Order::createDomesticOrder(array $parameters);

用法示例

$parameters = [
    'o' => 4828,
    'd' => 4833,
    'l' => 10,
    'w' => 10,
    'h' => 10,
    'wt' => 1,
    'v' => 100000,
    'rateID' => 49,
    'consigneeName' => 'Peoorang',
    'consigneePhoneNumber' => '089899878987',
    'consignerName' => 'Peorang',
    'consignerPhoneNumber' => '089891891818',
    'originAddress' => 'Mangga Dua Selatan',
    'originDirection' => '',
    'destinationAddress' => 'Pasar Baru',
    'destinationDirection' => '',
    'itemName' => [
        [
            'name' => 'Baju',
            'qty' => 1,
            'value' => 100000
        ]
    ],
    'contents' => 'Merah',
    'useInsurance' => 0,
    'packageType' => 2,
    'paymentType' => 'cash',
    'externalID' => '',
    'cod' => 0
];

$createDomesticOrder = \Shipper\Order::createDomesticOrder($parameters);
var_dump($createDomesticOrder);

创建国际订单

\Shipper\Order::createInternationalOrder(array $parameters);

用法示例

$parameters = [
    'o' => 4802,
    'd' => 180,
    'l' => 10,
    'w' => 10,
    'h' => 10,
    'wt' => 1,
    'v' => 100000,
    'rateID' => 210,
    'consigneeName' => 'Peoorang',
    'consigneePhoneNumber' => '089899878987',
    'consignerName' => 'Peorang',
    'consignerPhoneNumber' => '089891891818',
    'originAddress' => 'Mangga Dua Selatan',
    'originDirection' => '',
    'destinationAddress' => 'Orchard Road 101',
    'destinationDirection' => '',
    'destinationArea' => 'Singapore',
    'destinationSuburb' => 'Singapore',
    'destinationCity' => 'Singapore',
    'destinationProvince' => 'Singapore',
    'destinationPostcode' => '111111',
    'itemName' => [
        [
            'name' => 'Baju',
            'qty' => 1,
            'value' => 100000
        ]
    ],
    'contents' => 'Merah',
    'useInsurance' => 0,
    'packageType' => 2,
    'paymentType' => 'cash',
    'externalID' => '',
    'cod' => 0
];

$createInternationalOrder = \Shipper\Order::createInternationalOrder($parameters);
var_dump($createInternationalOrder);

获取跟踪 ID

检索具有提供 ID 的订单的跟踪 ID。

\Shipper\Order::getTrackingID(string $orderId);

用法示例

$getTrackingID = \Shipper\Order::getTrackingID('5f259130a172cf001222f533');
var_dump($getTrackingID);

激活订单

激活/停用订单。此类激活将启动 Shipper 的提货流程。

\Shipper\Order::activateOrder(string $orderId, array $parameters);

用法示例

$parameters = [
    'active' => 1
];

$activateOrder = \Shipper\Order::activateOrder('5f259130a172cf001222f533', $parameters);
var_dump($activateOrder);

获取订单详情

检索订单的详细信息。日期格式为 UTC 时间。

\Shipper\Order::getOrderDetail(string $orderId);

用法示例

$getOrderDetail = \Shipper\Order::getOrderDetail('5f259130a172cf001222f533');
var_dump($getOrderDetail);

更新订单

更新订单的包裹重量和尺寸。

\Shipper\Order::updateOrder(string $orderId, array $parameters);

用法示例

$parameters = [
    'l' => 1,
    'w' => 1,
    'h' => 1,
    'wt' => 1
];

$updateOrder = \Shipper\Order::updateOrder('5f259130a172cf001222f533', $parameters);
var_dump($updateOrder);

取消订单

取消订单。

\Shipper\Order::cancelOrder(string $orderId);

用法示例

$cancelOrder = \Shipper\Order::cancelOrder('5f259130a172cf001222f533');
var_dump($cancelOrder);

提货订单

创建提货请求

分配代理并激活订单。

\Shipper\Pickup::createPickup(array $parameters);

用法示例

$parameters = [
    'orderIds' => ['5e45538'],
    'agentId' => 1432,
    'datePickup' => '2020-08-11 10:30:00'
];

$createPickup = \Shipper\Pickup::createPickup($parameters);
var_dump($createPickup);

取消提货请求

取消提货请求。

\Shipper\Pickup::cancelPickup(array $parameters);

用法示例

$parameters = [
    'orderIds' => ['5e45538'],
];

$cancelPickup = \Shipper\Pickup::cancelPickup($parameters);
var_dump($cancelPickup);

根据郊区获取代理

根据始发郊区 ID 获取代理。

\Shipper\Pickup::getAgents(int $suburbId);

用法示例

$getAgents = \Shipper\Pickup::getAgents(1330);
var_dump($getAgents);

此外

获取所有跟踪状态

\Shipper\Tracking::getAllStatus();

用法示例

$getAllStatus = \Shipper\Tracking::getAllStatus();
var_dump($getAllStatus);
生成 AWB 号码

在订单发送时尚未生成订单中的 AWB 号码的情况下,从相关物流生成 AWB。

\Shipper\AWB::generate(array $parameters);
$parameters = [
    'oid' => '5f259130a172cf001222f533'
];

$generate = \Shipper\AWB::generate($parameters);
var_dump($generate);

异常

ArgumentCountError

ArgumentCountError 会在向函数或方法传递参数太少时抛出。

例如,必须向 getCities 函数传递 cityId 参数。如果用户没有提供,则会抛出 ArgumentCountError

InvalidArgumentException

InvalidArgumentException 会在用户提供的参数不足以创建请求,或者参数不是期望的类型时抛出。

例如,更新订单需要 lwhwt 等必填参数。如果用户在尝试创建时缺少一个或多个参数,或者一个或多个参数不是 integerfloat,则会抛出 InvalidArgumentException

ClientException

ClientException 会在向 API 发送请求时遇到客户端错误(4xx 状态码)时抛出。

例如,在创建提货请求时找不到订单时,会抛出 ClientException

贡献

有关任何请求、错误或评论,请打开 问题提交拉取请求