aftership / aftership-php-sdk
AfterShip API 的 PHP SDK
Requires
- php: >=5.6.1
- phpseclib/phpseclib: ~3.0
Requires (Dev)
- php-mock/php-mock-phpunit: ^2.0
- phpunit/phpunit: ~6.2
README
此版本 SDK 已被弃用,并由新重构的 SDK 替换。
有关最新 API 功能和改进的集成,请访问我们的更新仓库 https://github.com/AfterShip/tracking-sdk-php 并按照提供的说明操作。
AfterShip API PHP SDK
aftership-php 是 AfterShip API 的 PHP SDK(模块)。模块提供了一种干净、优雅的方式来访问 API 端点。
索引
安装
选项 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:手动安装
- 将此仓库下载或克隆到指定的位置
- 在项目中参考此 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);
测试
- 执行文件
- 如果您是手动安装,请在浏览器中执行 'test/testing.php'。
- 如果您是通过 composer 安装,请在浏览器中执行 'vendor/aftership/aftership-php-sdk/test/testing.php'。
- 插入您的 AfterShip API 密钥。 如何生成 AfterShip API 密钥
- 点击“请求全部”按钮或表示请求的按钮。
错误处理
只需添加一个 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-post
和 china-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 你可以在这里找到示例代码
贡献者
这些杰出的人士为此项目贡献了代码