yusufthedragon / shipper-php
Shipper API 的 PHP 客户端
Requires
- php: >=7.2.0
- guzzlehttp/guzzle: >=6.0
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');
设置生产模式
当将您的应用程序部署到生产环境时,您可能希望通过设置 setProductionMode
为 true
来更改 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
会在用户提供的参数不足以创建请求,或者参数不是期望的类型时抛出。
例如,更新订单需要 l
、w
、h
和 wt
等必填参数。如果用户在尝试创建时缺少一个或多个参数,或者一个或多个参数不是 integer
或 float
,则会抛出 InvalidArgumentException
。
ClientException
ClientException
会在向 API 发送请求时遇到客户端错误(4xx 状态码)时抛出。
例如,在创建提货请求时找不到订单时,会抛出 ClientException
。