aftership/aftership-php-sdk

此包已废弃,不再维护。未建议替代包。

AfterShip API 的 PHP SDK

6.0.0 2024-01-30 11:47 UTC

This package is auto-updated.

Last update: 2024-08-24 11:30:46 UTC


README

此版本 SDK 已被弃用,并由新重构的 SDK 替换。

有关最新 API 功能和改进的集成,请访问我们的更新仓库 https://github.com/AfterShip/tracking-sdk-php 并按照提供的说明操作。

AfterShip API PHP SDK

Build Status Code Climate Issue Count Latest Stable Version Monthly Downloads License

aftership-php 是 AfterShip API 的 PHP SDK(模块)。模块提供了一种干净、优雅的方式来访问 API 端点。

联系方式:support@aftership.com

索引

  1. 安装
  2. 测试
  3. SDK
    1. 快递公司
    2. 跟踪
    3. 最后检查点
    4. 通知
  4. Webhook
  5. 贡献者

安装

选项 1(推荐):下载并安装 Composer。 https://getcomposer.org.cn/download/

运行以下命令以引入 AfterShip PHP SDK

composer require aftership/aftership-php-sdk

使用自动加载器导入 SDK 文件

require 'vendor/autoload.php';

$key = 'AFTERSHIP API KEY';

$couriers = new AfterShip\Couriers($key);
$trackings = new AfterShip\Trackings($key);
$last_check_point = new AfterShip\LastCheckPoint($key);
选项 2:手动安装
  1. 将此仓库下载或克隆到指定的位置
  2. 在项目中参考此 SDK 的文件。请优先使用绝对路径。
require('/path/to/repository/src/AfterShipException.php');
require('/path/to/repository/src/BackwardCompatible.php');
require('/path/to/repository/src/Couriers.php');
require('/path/to/repository/src/LastCheckPoint.php');
require('/path/to/repository/src/Notifications.php');
require('/path/to/repository/src/Requestable.php');
require('/path/to/repository/src/Request.php');
require('/path/to/repository/src/Trackings.php');

$key = 'AFTERSHIP API KEY';

$couriers = new AfterShip\Couriers($key);
$trackings = new AfterShip\Trackings($key);
$notifications = new AfterShip\Notifications($key);
$last_check_point = new AfterShip\LastCheckPoint($key);

请确保您已安装 PHP 扩展 CURL,您可以使用以下命令安装它

sudo apt-get install php5-curl

然后重启 Web 服务器和 PHP 进程。

使用签名头

require 'vendor/autoload.php';

$api_key = 'AFTERSHIP API KEY';
$api_secret = 'Your api secret'; // if the encryption_method = RSA, the api_secret is PEM private key
$encryption_method = 'AES or RSA';
$encryption_password = 'PEM pass phrase'; 

$key = ['api_key' => $api_key, 'api_secret' => $api_secret, 'encryption_method' => $encryption_method, 'encryption_password' => $encryption_password]

$couriers = new AfterShip\Couriers($key);
$trackings = new AfterShip\Trackings($key);
$last_check_point = new AfterShip\LastCheckPoint($key);

自定义 CURL 选项

require 'vendor/autoload.php';

$api_key = 'AFTERSHIP API KEY';

$curl_opt = [CURLOPT_PROXY => 'http://example.com', 'CURLOPT_PROXYPORT' => '8080']

$couriers = new AfterShip\Couriers($key, null, $curl_opt);
$trackings = new AfterShip\Trackings($key, null, $curl_opt);
$last_check_point = new AfterShip\LastCheckPoint($key, null, $curl_opt);

测试

  1. 执行文件
  • 如果您是手动安装,请在浏览器中执行 'test/testing.php'。
  • 如果您是通过 composer 安装,请在浏览器中执行 'vendor/aftership/aftership-php-sdk/test/testing.php'。
  1. 插入您的 AfterShip API 密钥。 如何生成 AfterShip API 密钥
  2. 点击“请求全部”按钮或表示请求的按钮。

错误处理

只需添加一个 try-catch 块

try {
  $couriers = new AfterShip\Couriers('AFTERSHIP_API_KEY');
  $response = $couriers->get();
}catch(\AfterShipException $e) {
    echo $e->getMessage();
}

快递公司

获取您的选定的快递公司列表

https://www.aftership.com/docs/api/4/couriers/get-couriers

$couriers = new AfterShip\Couriers('AFTERSHIP_API_KEY');
$response = $couriers->get();
获取所有支持的快递公司列表

https://www.aftership.com/docs/api/4/couriers/get-couriers-all

$couriers = new AfterShip\Couriers('AFTERSHIP_API_KEY');
$response = $couriers->all();
通过跟踪号码检测快递公司

https://www.aftership.com/docs/api/4/couriers/post-couriers-detect

$courier = new AfterShip\Couriers('AFTERSHIP_API_KEY');
$response = $courier->detect('1234567890Z');

跟踪

跟踪附加字段

以下快递公司在创建、更新或删除跟踪时需要传递附加字段

创建新的跟踪

https://www.aftership.com/docs/api/4/trackings/post-trackings

$trackings = new AfterShip\Trackings('AFTERSHIP_API_KEY');
$tracking_info = [
    'slug'    => 'dhl',
    'title'   => 'My Title',
];
$response = $trackings->create('RA123456789US', $tracking_info);
创建多个跟踪

(即将推出)

通过 slug 和跟踪号码删除跟踪

https://www.aftership.com/docs/api/4/trackings/delete-trackings

$trackings = new AfterShip\Trackings('AFTERSHIP_API_KEY');
$response = $trackings->delete('dhl', 'RA123456789US');
通过 slug、跟踪号码和附加字段删除跟踪

https://www.aftership.com/docs/api/4/trackings/delete-trackings

$trackings = new AfterShip\Trackings('AFTERSHIP_API_KEY');
$response = $trackings->delete('abcustom', 'RA123456789US', ['tracking_postal_code' => '90199']);
通过跟踪 ID 删除跟踪

https://www.aftership.com/docs/api/4/trackings/delete-trackings

$trackings = new AfterShip\Trackings('AFTERSHIP_API_KEY');
$response = $trackings->deleteById('53df4a90868a6df243b6efd8');
获取多个跟踪的跟踪结果

https://www.aftership.com/docs/api/4/trackings/get-trackings

$trackings = new AfterShip\Trackings('AFTERSHIP_API_KEY');
$options = [
    'page'  => 1,
    'limit' => 10
];
$response = $trackings->all($options);
通过 slug 和跟踪号码获取单个跟踪的跟踪结果

https://www.aftership.com/docs/api/4/trackings/get-trackings-slug-tracking_number

$trackings = new AfterShip\Trackings('AFTERSHIP_API_KEY');
$response = $trackings->get('dhl', 'RA123456789US', array('title','order_id'));
通过 slug、跟踪号码和自定义显示字段获取单个跟踪的跟踪结果

https://www.aftership.com/docs/api/4/trackings/get-trackings-slug-tracking_number

$trackings = new AfterShip\Trackings('AFTERSHIP_API_KEY');
$response = $trackings->get('dhl', 'RA123456789US', array('fields' => 'title,order_id'));
通过 slug、跟踪号码和自定义语言获取单个跟踪的跟踪结果

https://www.aftership.com/docs/api/4/trackings/get-trackings-slug-tracking_number

对于 china-postchina-ems,可以自定义检查点消息的语言。

$trackings = new AfterShip\Trackings('AFTERSHIP_API_KEY');
$response = $trackings->get('dhl', 'RA123456789US', array('lang' => 'en'));
通过跟踪ID获取单个跟踪的跟踪结果

https://www.aftership.com/docs/api/4/trackings/get-trackings-slug-tracking_number

$trackings = new AfterShip\Trackings('AFTERSHIP_API_KEY');
$response = $trackings->getById('53df4a90868a6df243b6efd8', array('title','order_id'));
通过slug和跟踪号码更新跟踪信息

https://www.aftership.com/docs/api/4/trackings/put-trackings-slug-tracking_number

$trackings = new AfterShip\Trackings('AFTERSHIP_API_KEY');
$params = array(
    'smses'             => [],
    'emails'            => [],
    'title'             => '',
    'customer_name'     => '',
    'order_id'          => '',
    'order_id_path'     => '',
    'custom_fields'     => []
);
$response = $trackings->update('dhl', 'RA123456789US', $params);
通过跟踪ID更新跟踪信息

https://www.aftership.com/docs/api/4/trackings/put-trackings-slug-tracking_number

$trackings = new AfterShip\Trackings('AFTERSHIP_API_KEY');
$params = array(
    'smses'             => [],
    'emails'            => [],
    'title'             => '',
    'customer_name'     => '',
    'order_id'          => '',
    'order_id_path'     => '',
    'custom_fields'     => []
);
$response = $trackings->updateById('53df4a90868a6df243b6efd8', $params);
通过slug和跟踪号码重新激活跟踪

https://www.aftership.com/docs/api/4/trackings/post-trackings-slug-tracking_number-retrack

$trackings = new AfterShip\Trackings('AFTERSHIP_API_KEY');
$response = $trackings->retrack('dhl','RA123456789US');
通过slug和跟踪号码以及additional_fields重新激活跟踪

https://www.aftership.com/docs/api/4/trackings/post-trackings-slug-tracking_number-retrack

$trackings = new AfterShip\Trackings('AFTERSHIP_API_KEY');
$response = $trackings->retrack('abcustom','RA123456789US', ['tracking_postal_code' => '90199']);
通过跟踪ID重新激活跟踪

https://www.aftership.com/docs/api/4/trackings/post-trackings-slug-tracking_number-retrack

$trackings = new AfterShip\Trackings('AFTERSHIP_API_KEY');
$response = $trackings->retrackById('53df4a90868a6df243b6efd8');

最后检查点

通过slug和跟踪号码返回单个跟踪的最后一个检查点的跟踪信息

https://www.aftership.com/docs/api/4/last_checkpoint/get-last_checkpoint-slug-tracking_number

$last_check_point = new AfterShip\LastCheckPoint('AFTERSHIP_API_KEY');
$response = $last_check_point->get('dhl','RA123456789US');
通过跟踪ID返回单个跟踪的最后一个检查点的跟踪信息

https://www.aftership.com/docs/api/4/last_checkpoint/get-last_checkpoint-slug-tracking_number

$last_check_point = new AfterShip\LastCheckPoint('AFTERSHIP_API_KEY');
$response = $last_check_point->getById('53df4a90868a6df243b6efd8');

通知

通过slug和跟踪号码创建新的通知

https://www.aftership.com/docs/api/4/notifications/post-add-notifications

$notifications = new AfterShip\Notifications('AFTERSHIP_API_KEY');
$response = $notifications->create('ups', '1ZV90R483A33906706', [
                'emails' => ['youremail@yourdomain.com']
            ])
通过slug和跟踪号码以及additional_fields创建新的通知

https://www.aftership.com/docs/api/4/notifications/post-add-notifications

$notifications = new AfterShip\Notifications('AFTERSHIP_API_KEY');
$response = $notifications->create('abcustom', '1ZV90R483A33906706', [
                'emails' => ['youremail@yourdomain.com']
            ], ['tracking_postal_code' => '90199'])
通过跟踪ID创建新的通知

https://www.aftership.com/docs/api/4/notifications/post-add-notifications

$notifications = new AfterShip\Notifications('AFTERSHIP_API_KEY');
$response = $notifications->createById('53df4a90868a6df243b6efd8');
通过slug和跟踪号码删除通知

https://www.aftership.com/docs/api/4/notifications/post-remove-notifications

$notifications = new AfterShip\Notifications('AFTERSHIP_API_KEY');
$response = $notifications->delete('ups', '1ZV90R483A33906706', [
                  'emails' => ['youremail@yourdomain.com']
              ]);
通过slug和跟踪号码以及additional_fields删除通知

https://www.aftership.com/docs/api/4/notifications/post-remove-notifications

$notifications = new AfterShip\Notifications('AFTERSHIP_API_KEY');
$response = $notifications->delete('abcustom', '1ZV90R483A33906706', [
                  'emails' => ['youremail@yourdomain.com']
              ], ['tracking_postal_code' => '90199']);
通过跟踪ID删除通知

https://www.aftership.com/docs/api/4/notifications/post-remove-notifications

$notifications = new AfterShip\Notifications('AFTERSHIP_API_KEY');
$response = $notifications->deleteById('53df4d66868a6df243b6f882'));
通过slug和跟踪号码获取单个跟踪的通知

https://www.aftership.com/docs/api/4/notifications/get-notifications

$notifications = new AfterShip\Notifications('AFTERSHIP_API_KEY');
$response = $notifications->get('dhl', '2254095771'));
通过跟踪ID获取单个跟踪的通知

https://www.aftership.com/docs/api/4/notifications/get-notifications

$notifications = new AfterShip\Notifications('AFTERSHIP_API_KEY');
$response = $notifications->getById('53df4a90868a6df243b6efd8', ['fields' => 'customer_name']);

Webhook

https://www.aftership.com/docs/api/4/webhook 你可以在这里找到示例代码

贡献者

这些杰出的人士为此项目贡献了代码