2017 © Pedro Peláez
 

library aftership-php-sdk

The PHP SDK of AfterShip API

image

aftership/aftership-php-sdk

The PHP SDK of AfterShip API

  • Friday, September 8, 2017
  • by aftership
  • Repository
  • 9 Watchers
  • 34 Stars
  • 127,849 Installations
  • PHP
  • 3 Dependents
  • 0 Suggesters
  • 33 Forks
  • 1 Open issues
  • 17 Versions
  • 14 % Grown

The README.md

Deprecation notice: New Version Available

This version of the SDK has been deprecated and replaced with the newly reconstructed SDK., (*1)

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., (*2)

AfterShip API PHP SDK

Build Status Code Climate Issue Count Latest Stable Version Monthly Downloads License, (*3)

aftership-php is a PHP SDK (module) for AfterShip API. Module provides clean and elegant way to access API endpoints., (*4)

Contact: support@aftership.com, (*5)

Index

  1. Installation
  2. Testing
  3. SDK
    1. Couriers
    2. Trackings
    3. Last Check Point
    4. Notifications
  4. Webhook
  5. Contributors

Installation

Option 1 (recommended): Download and Install Composer. https://getcomposer.org/download/

Run the following command to require AfterShip PHP SDK, (*6)

composer require aftership/aftership-php-sdk

Use autoloader to import SDK files, (*7)

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
  1. Download or clone this repository to desired location
  2. 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., (*8)

Use signature headers, (*9)

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, (*10)

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

  1. 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.
  2. Insert your AfterShip API Key. How to generate AfterShip API Key
  3. Click the request all button or the button of the represented request.

Error handling

Simply add a try-catch block, (*11)

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, (*12)

$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, (*13)

$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, (*14)

$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, (*15)

Courier Slug Required Fields
abcustom [tracking_postal_code]
alliedexpress [tracking_postal_code]
amazon-fba-us [tracking_key]
apc-overnight-connum [tracking_postal_code]
ark-logistics [tracking_postal_code]
arrowxl [tracking_postal_code]
asm [tracking_postal_code]
australia-post-sftp [tracking_account_number]
b2ceurope [tracking_postal_code & tracking_destination_country]
bestwayparcel [tracking_key]
bluestar [tracking_postal_code]
bpost [tracking_postal_code]
brt-it-sender-ref [tracking_account_number]
capital [tracking_account_number]
chrobinson [tracking_key]
colis-prive [tracking_postal_code]
courant-plus [tracking_account_number]
deutsch-post [tracking_ship_date]
dhl-reference [tracking_ship_date]
dpd-fr-reference [tracking_account_number]
dx [tracking_account_number]
dynamic-logistics [tracking_account_number]
endeavour-delivery [tracking_postal_code]
eu-fleet-solutions [tracking_postal_code]
geodis-espace [tracking_key]
gls-netherlands [tracking_postal_code]
gls-spain [tracking_key]
interlink-express-reference [tracking_postal_code]
international-seur-api [tracking_ship_date]
mikropakket [tracking_postal_code]
mikropakket-be [tracking_postal_code]
mondialrelay [tracking_postal_code]
nacex [tracking_account_number]
nacex-spain [tracking_postal_code]
newzealand-couriers [tracking_account_number]
packs [tracking_postal_code]
palletways [tracking_postal_code]
panther-order-number [tracking_postal_code]
panther-reference [tracking_account_number]
paper-express [tracking_postal_code]
parcelpoint [tracking_key]
planzer [tracking_postal_code]
postnl [tracking_postal_code]
postnl-3s [tracking_destination_country & tracking_postal_code]
relaiscolis [tracking_key]
star-track-courier [tracking_state]
tfm [tracking_postal_code]
thedeliverygroup [tracking_postal_code]
total-express [tracking_account_number & tracking_key]
transmission-nl [tracking_postal_code]
tuffnells [tracking_account_number & tracking_postal_code]
tuffnells-reference [tracking_postal_code]
virtransport [tracking_account_number]
xdp-uk [tracking_postal_code]
xdp-uk-reference [tracking_postal_code]
Create a new tracking

https://www.aftership.com/docs/api/4/trackings/post-trackings, (*16)

$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), (*17)

Delete a tracking by slug and tracking number

https://www.aftership.com/docs/api/4/trackings/delete-trackings, (*18)

$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, (*19)

$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, (*20)

$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, (*21)

$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, (*22)

$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, (*23)

$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, (*24)

In case of china-post and china-ems it is possible to customize language of checkpoint messages., (*25)

$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, (*26)

$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, (*27)

$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, (*28)

$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, (*29)

$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, (*30)

$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, (*31)

$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, (*32)

$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, (*33)

$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, (*34)

$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, (*35)

$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, (*36)

$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, (*37)

$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, (*38)

$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, (*39)

$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, (*40)

$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, (*41)

$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, (*42)

Contributors

These amazing people have contributed code to this project:, (*43)

The Versions

08/09 2017

dev-master

9999999-dev

The PHP SDK of AfterShip API

  Sources   Download

MIT

The Requires

  • php >=5.4.0

 

The Development Requires

by Avatar aftership

shipping tracking fedex track ups usps aftership dhl

21/08 2017

5.1.1

5.1.1.0

The PHP SDK of AfterShip API

  Sources   Download

MIT

The Requires

  • php >=5.4.0

 

The Development Requires

by Avatar aftership

shipping tracking fedex track ups usps aftership dhl

14/07 2017

5.1.0

5.1.0.0

The PHP SDK of AfterShip API

  Sources   Download

MIT

The Requires

  • php >=5.4.0

 

The Development Requires

by Avatar aftership

shipping tracking fedex track ups usps aftership dhl

17/01 2017

v5.x-dev

5.9999999.9999999.9999999-dev

The PHP SDK of AfterShip API

  Sources   Download

MIT

The Requires

  • php >=5.3.0

 

by Avatar aftership

shipping tracking fedex track ups usps aftership dhl

17/01 2017

5.0.10

5.0.10.0

The PHP SDK of AfterShip API

  Sources   Download

MIT

The Requires

  • php >=5.3.0

 

by Avatar aftership

shipping tracking fedex track ups usps aftership dhl

31/05 2016

5.0.9

5.0.9.0

The PHP SDK of AfterShip API

  Sources   Download

MIT

The Requires

 

by Avatar aftership

shipping tracking fedex track ups usps aftership dhl

31/05 2016

5.0.8

5.0.8.0

The PHP SDK of AfterShip API

  Sources   Download

MIT

The Requires

 

by Avatar aftership

shipping tracking fedex track ups usps aftership dhl

08/04 2016

5.0.7

5.0.7.0

The PHP SDK of AfterShip API

  Sources   Download

MIT

The Requires

 

by Avatar aftership

shipping tracking fedex track ups usps aftership dhl

22/02 2016

5.0.6

5.0.6.0

The PHP SDK of AfterShip API

  Sources   Download

MIT

The Requires

 

by Avatar aftership

shipping tracking fedex track ups usps aftership dhl

26/01 2016

5.0.5

5.0.5.0

The PHP SDK of AfterShip API

  Sources   Download

MIT

The Requires

 

by Avatar aftership

shipping tracking fedex track ups usps aftership dhl

22/01 2016

5.0.4

5.0.4.0

The PHP SDK of AfterShip API

  Sources   Download

MIT

The Requires

 

by Avatar aftership

shipping tracking fedex track ups usps aftership dhl

20/01 2016

5.0.3

5.0.3.0

The PHP SDK of AfterShip API

  Sources   Download

MIT

The Requires

 

by Avatar aftership

shipping tracking fedex track ups usps aftership dhl

20/01 2016

5.0.2

5.0.2.0

The PHP SDK of AfterShip API

  Sources   Download

MIT

The Requires

 

by Avatar aftership

shipping tracking fedex track ups usps aftership dhl

20/01 2016

5.0.1

5.0.1.0

The PHP SDK of AfterShip API

  Sources   Download

MIT

The Requires

 

by Avatar aftership

shipping tracking fedex track ups usps aftership dhl

20/01 2016

5.0.0

5.0.0.0

The PHP SDK of AfterShip API

  Sources   Download

MIT

The Requires

 

by Avatar aftership

shipping tracking fedex track ups usps aftership dhl

12/11 2015

4.0.5

4.0.5.0

The PHP SDK of AfterShip API

  Sources   Download

MIT

The Requires

 

by Avatar aftership

shipping tracking fedex track ups usps aftership dhl

08/08 2014

4.0.0

4.0.0.0

The PHP SDK of AfterShip API

  Sources   Download

MIT

The Requires

 

by Avatar aftership

shipping tracking fedex track ups usps aftership dhl