aftership/aftership-php-sdk
最新稳定版本:6.0.0
Composer 安装命令:
composer require aftership/aftership-php-sdk
包简介
The PHP SDK of AfterShip API
README 文档
README
This version of the SDK has been deprecated and replaced with the newly reconstructed SDK.
For the latest API features and improved integration, please visit our updated repository at https://github.com/AfterShip/tracking-sdk-php and follow the provided instructions.
AfterShip API PHP SDK
aftership-php is a PHP SDK (module) for AfterShip API. Module provides clean and elegant way to access API endpoints.
Contact: support@aftership.com
Index
Installation
Option 1 (recommended): Download and Install Composer. https://getcomposer.org/download/
Run the following command to require AfterShip PHP SDK
composer require aftership/aftership-php-sdk
Use autoloader to import SDK files
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);
Option 2: Manual installation
- Download or clone this repository to desired location
- Reference files of this SDK in your project. Absolute path should be prefered.
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);
Please ensure you have installed the PHP extension CURL, you could run the following command to install it
sudo apt-get install php5-curl
and restart the web server and PHP process.
Use signature headers
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);
Custom CURL opt
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);
Testing
- Execute the file:
- If you are install manually, please execute 'test/testing.php' on your browser.
- If you are install by composer, please execute 'vendor/aftership/aftership-php-sdk/test/testing.php' on your browser.
- Insert your AfterShip API Key. How to generate AfterShip API Key
- Click the request all button or the button of the represented request.
Error handling
Simply add a try-catch block
try { $couriers = new AfterShip\Couriers('AFTERSHIP_API_KEY'); $response = $couriers->get(); }catch(\AfterShipException $e) { echo $e->getMessage(); }
Couriers
Get your selected couriers list
https://www.aftership.com/docs/api/4/couriers/get-couriers
$couriers = new AfterShip\Couriers('AFTERSHIP_API_KEY'); $response = $couriers->get();
Get all our supported couriers list
https://www.aftership.com/docs/api/4/couriers/get-couriers-all
$couriers = new AfterShip\Couriers('AFTERSHIP_API_KEY'); $response = $couriers->all();
Detect courier by tracking number
https://www.aftership.com/docs/api/4/couriers/post-couriers-detect
$courier = new AfterShip\Couriers('AFTERSHIP_API_KEY'); $response = $courier->detect('1234567890Z');
Trackings
Tracking additional_fields
Couriers below need pass additional_fields when create, update, or delete tracking
Create a new tracking
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);
Create multiple trackings
(Will be available soon)
Delete a tracking by slug and tracking number
https://www.aftership.com/docs/api/4/trackings/delete-trackings
$trackings = new AfterShip\Trackings('AFTERSHIP_API_KEY'); $response = $trackings->delete('dhl', 'RA123456789US');
Delete a tracking by slug and tracking number and additional_fields
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']);
Delete a tracking by tracking ID
https://www.aftership.com/docs/api/4/trackings/delete-trackings
$trackings = new AfterShip\Trackings('AFTERSHIP_API_KEY'); $response = $trackings->deleteById('53df4a90868a6df243b6efd8');
Get tracking results of multiple trackings
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);
Get tracking results of a single tracking by slug and tracking number
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'));
Get tracking results of a single tracking by slug and tracking number with custom display fields
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'));
Get tracking results of a single tracking by slug and tracking number in custom language
https://www.aftership.com/docs/api/4/trackings/get-trackings-slug-tracking_number
In case of china-post and china-ems it is possible to customize language of checkpoint messages.
$trackings = new AfterShip\Trackings('AFTERSHIP_API_KEY'); $response = $trackings->get('dhl', 'RA123456789US', array('lang' => 'en'));
Get tracking results of a single tracking by tracking 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'));
Update a tracking by slug and tracking number
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);
Update a tracking by tracking 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);
Reactivate Tracking by slug and tracking number
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');
Reactivate Tracking by slug and tracking number and 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']);
Reactivate Tracking by tracking 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');
Last Check Point
Return the tracking information of the last checkpoint of a single tracking by slug and tracking number
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');
Return the tracking information of the last checkpoint of a single tracking by tracking 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');
Notifications
Create a new notification by slug and tracking number
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'] ])
Create a new notification by slug and tracking number and 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'])
Create a new notification by tracking ID
https://www.aftership.com/docs/api/4/notifications/post-add-notifications
$notifications = new AfterShip\Notifications('AFTERSHIP_API_KEY'); $response = $notifications->createById('53df4a90868a6df243b6efd8');
Delete a notification by slug and tracking number.
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'] ]);
Delete a notification by slug and tracking number and 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']);
Delete a notification by tracking ID.
https://www.aftership.com/docs/api/4/notifications/post-remove-notifications
$notifications = new AfterShip\Notifications('AFTERSHIP_API_KEY'); $response = $notifications->deleteById('53df4d66868a6df243b6f882'));
Get notification of a single tracking by slug and tracking number.
https://www.aftership.com/docs/api/4/notifications/get-notifications
$notifications = new AfterShip\Notifications('AFTERSHIP_API_KEY'); $response = $notifications->get('dhl', '2254095771'));
Get notification of a single tracking by tracking 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 You could find the example code at here
Contributors
These amazing people have contributed code to this project:
- Teddy Chan - view contributions
- Sunny Chow - view contributions
- Abishek R Srikaanth - view contributions
- Luis Cordova - view contributions
- Russell Davies - view contributions
- akovalyov - view contributions
- Robert Basic - view contributions
- Marek Narozniak - view contributions
aftership/aftership-php-sdk 适用场景与选型建议
aftership/aftership-php-sdk 是一款 基于 PHP 开发的 Composer 扩展包,目前已累计 990.38k 次下载、GitHub Stars 达 65, 最近一次更新时间为 2026 年 01 月 04 日, 在 PHP 生态内属于活跃度较高的组件。
它主要适用于以下技术方向: 「FedEx」 「track」 「shipping」 「tracking」 「ups」 「usps」 等业务场景。在实际项目中,围绕这些方向常见需要落地的问题包括:接口对接、性能调优、并发安全、与既有框架(Laravel / ThinkPHP / Yii / Webman 等)的兼容适配,以及生产环境的日志埋点与稳定性保障。
我们在过去多个企业项目中使用过 aftership/aftership-php-sdk 或与其功能相近的方案,如果你在选型或落地过程中遇到问题,例如 版本兼容、二次改造、私有化封装、与内部系统对接、生产 BUG 排查,欢迎联系我们协助评估。
基于 aftership/aftership-php-sdk 在你已有业务上做功能扩展、字段裁剪、UI 适配、与内部账号 / 权限 / 日志系统的深度对接。
线上偶发问题、内存泄漏、慢查询、并发异常等排查修复;针对高流量场景做缓存、队列、索引层面的调优。
承接完整的项目从需求 → 设计 → 开发 → 上线 → 长期运维;也可按月提供技术保姆服务。
与 aftership/aftership-php-sdk 相关的其它包
同方向 / 同关键字的高下载量 PHP Composer 包推荐,方便对比选型:
Web-IT GLS Tracking API
PHP SDK for the Parcel Monkey UK API
FedEx API wrapper
The PHP SDK of TrackingMore API
Assigns UID to user and allows to perform varios actions.
PHP wrapper for DPD Germany SOAP API
统计信息
- 总下载量: 990.38k
- 月度下载量: 0
- 日度下载量: 0
- 收藏数: 68
- 点击次数: 41
- 依赖项目数: 4
- 推荐数: 0
其他信息
- 授权协议: MIT
- 更新时间: 2026-01-04