aftership/tracking-sdk

官方 AfterShip 追踪 PHP API 库

8.0.0 2024-07-29 07:41 UTC

This package is auto-updated.

Last update: 2024-09-01 03:43:26 UTC


README

此库允许您通过 PHP 快速轻松地使用 AfterShip 追踪 API。

有关此库的更新,请参阅我们的 GitHub 发布页面

如果您需要使用 AfterShip 产品的支持,请联系 support@aftership.com

目录

开始之前

开始集成之前

API 和 SDK 版本

每个 SDK 版本都设计用于与特定 API 版本一起使用。请参考下表以确定每个 SDK 版本支持的 API 版本,确保您选择与您打算使用的 API 版本相匹配的 SDK 版本。

快速入门

安装

composer require aftership/tracking-sdk

构造函数

使用选项创建 AfterShip 实例

示例

<?php

require_once __DIR__ . '/vendor/autoload.php';

$client = new \Tracking\Client([
    'apiKey' => 'YOUR_API_KEY',
    'authenticationType' => \Tracking\Config::AUTHENTICATION_TYPE_API_KEY,
]);

try {
    $trackingInfo = $client->tracking->getTrackingById('<tracking-id>');
    var_dump($trackingInfo->checkpoints);
} catch (\Tracking\Exception\AfterShipError $e) {
    // Handle the error
    var_dump($e->getErrorCode());
    var_dump($e->getStatusCode());
}

速率限制器

查看 速率限制 以了解 AfterShip 的速率限制策略。

错误处理

当请求过程中出现任何错误时,SDK 将返回错误对象,具体如下

错误列表

端点

AfterShip 实例具有以下属性,与 API 端点完全相同

  • courier - 获取我们支持的快递列表。
  • tracking - 创建追踪、更新追踪和获取追踪结果。
  • estimated-delivery-date - 获取订单的预计送达日期。

/trackings

POST /trackings

$payload = new \Tracking\API\Tracking\CreateTrackingRequest();
$payload->tracking_number = '<tracking_number>';
$payload->slug = '<slug>';
$trackingInfo = $client->tracking->createTracking($payload);
var_dump($trackingInfo);

DELETE /trackings/:id

$trackingInfo = $client->tracking->deleteTrackingById('<tracking_id>');
var_dump($trackingInfo);

GET /trackings

$query = new \Tracking\API\Tracking\GetTrackingsQuery();
$query->setPage(1)
    ->setLimit(10)
    ->setKeyword('123');
$trackingInfo = $client->tracking->getTrackings($query);
var_dump($trackingInfo);

GET /trackings/:id

$trackingInfo = $client->tracking->getTrackingById('<tracking_id>');
var_dump($trackingInfo);

PUT /trackings/:id

$payload = new \Tracking\API\Tracking\UpdateTrackingByIdRequest();
$payload->title = 'test';
$trackingInfo = $client->tracking->updateTrackingById('<tracking_id>', $payload);
var_dump($trackingInfo);

POST /trackings/:id/retrack

$trackingInfo = $client->tracking->retrackTrackingById('<tracking_id>');
var_dump($trackingInfo);

POST /trackings/:id/mark-as-completed

$payload = new \Tracking\API\Tracking\MarkTrackingCompletedByIdRequest();
$payload->reason = 'DELIVERED';
$trackingInfo = $client->tracking->markTrackingCompletedById('<tracking_id>', $payload);
var_dump($trackingInfo);

/couriers

GET /couriers

$couriers = $client->courier->getUserCouriers();
var_dump($couriers);

GET /couriers/all

$couriers = $client->courier->getAllCouriers();
var_dump($couriers);

POST /couriers/detect

$payload = new \Tracking\API\Courier\DetectCourierRequest();
$payload->slug = ['<slug>'];
$payload->tracking_number = '<tracking_number>';
$couriers = $client->courier->detectCourier($payload);
var_dump($couriers);

/estimated-delivery-date

POST /estimated-delivery-date/predict-batch

$payload = new \Tracking\API\EstimatedDeliveryDate\PredictBatchRequest();
$edd = new \Tracking\Model\EstimatedDeliveryDateRequest();
$edd->slug = '<slug>';
$edd->pickup_time = '2024-08-01 06:42:30';
$orginAddress = new \Tracking\Model\OriginAddressEstimatedDeliveryDateRequest();
$orginAddress->country = '<ISO 3166-1 country/region code>';
$orginAddress->state = '<ISO 3166-1 country/region code>';
$edd->origin_address = $orginAddress;

$destAddress = new \Tracking\Model\DestinationAddressEstimatedDeliveryDateRequest();
$destAddress->country = '<ISO 3166-1 country/region code>';
$destAddress->state = '<ISO 3166-1 country/region code>';
$edd->destination_address = $destAddress;
$payload->estimated_delivery_dates = [$edd];
$notification = $client->estimated_delivery_date->predictBatch($payload);
var_dump($notification);

帮助

如果您遇到困难,我们在这里提供帮助

  • 有关此包的问题、功能请求、错误报告和一般讨论的 问题跟踪器。在创建新问题之前,请尝试进行搜索。
  • 通过 support@aftership.com 联系 AfterShip 官方支持

许可协议

版权所有 (c) 2024 AfterShip

在 MIT 许可协议下发布。