เพื่อให้สามารถติดตามรายการผ่าน Royal Mail API คุณจะต้องเป็นเจ้าของบัญชี Royal Mail และได้รับการอนุมัติการเข้าถึง API การติดตามผ่านพอร์ทัลผู้พัฒนา Royal Mail ที่ https://developer.royalmail.net/
composer require nomisoft/royal-mail-tracking-api
คุณจะต้องมีหมายเลขอ้างอิงการติดตามของรายการที่คุณต้องการดึงรายละเอียดรวมถึงรหัสลูกค้าของคุณความลับของลูกค้าและรหัสแอพ (ทั้งหมดที่มีอยู่จากพอร์ทัลผู้พัฒนา Royal Mail)
use Nomisoft RoyalMailTrackingApi RoyalMail ;
use Nomisoft RoyalMailTrackingApi RoyalMailException ;
$ rm = RoyalMail :: init ( ' CLIENT_ID ' , ' CLIENT_SECRET ' , ' APP_ID ' );
try {
$ response = $ rm -> getSingleItemSummary ( ' XX12345678XX ' );
} catch ( SoapFault $ e ) {
echo $ e -> getMessage ();
} catch ( RoyalMailException $ e ) {
echo $ e -> getMessage () . ' - ' . $ e -> getCause ();
}
การตอบกลับที่ส่งคืนเป็นอาร์เรย์ที่มีวัตถุ DateTime สถานะและข้อความสรุป
Array
(
[datetime] => DateTime Object
(
[date] => 2016 - 06 - 01 12 : 30 : 00
[timezone_type] => 3
[timezone] => Europe / London
)
[status] => Delivered
[summary] => Item XX12345678XX was collected and signed for by the addressee on the 2016 - 06 - 01 from Kidderminster DO .
)
use Nomisoft RoyalMailTrackingApi RoyalMail ;
$ rm = RoyalMail :: init ( ' CLIENT_ID ' , ' CLIENT_SECRET ' , ' APP_ID ' );
$ response = $ rm -> getSingleItemHistory ( ' XX12345678XX ' );
การตอบกลับที่ส่งคืนเป็นอาร์เรย์หลายมิติ การอัปเดตสถานะการจัดส่งแต่ละครั้งมีวัตถุ DateTime ตำแหน่งและสถานะ
Array
(
[ 0 ] => Array
(
[datetime] => DateTime Object
(
[date] => 2016 - 06 - 01 12 : 30 : 00
[timezone_type] => 3
[timezone] => Europe / London
)
[location] => Kidderminster DO
[status] => Delivered
)
[ 1 ] => Array
(
[datetime] => DateTime Object
(
[date] => 2016 - 05 - 31 15 : 30 : 00
[timezone_type] => 3
[timezone] => Europe / London
)
[location] => Kidderminster DO
[status] => We have your item
)
[ 2 ] => Array
(
[datetime] => DateTime Object
(
[date] => 2016 - 05 - 31 12 : 30 : 00
[timezone_type] => 3
[timezone] => Europe / London
)
[location] => Kidderminster DO
[status] => Delivery attempted
)
[ 3 ] => Array
(
[datetime] => DateTime Object
(
[date] => 2016 - 05 - 28 10 : 00 : 00
[timezone_type] => 3
[timezone] => Europe / London
)
[location] => Medway Mail Centre
[status] => It 's on its way.
)
)
use Nomisoft RoyalMailTrackingApi RoyalMail ;
$ rm = RoyalMail :: init ( ' CLIENT_ID ' , ' CLIENT_SECRET ' , ' APP_ID ' );
$ response = $ rm -> getMultiItemSummary ( array ( ' XX12345678XX ' , ' ZZ12345678ZZ ' ));
การตอบกลับที่ส่งคืนเป็นอาร์เรย์หลายมิติพร้อมหมายเลขอ้างอิงการติดตามเป็นคีย์ แต่ละรายการมีวัตถุ Datetime สถานะและบทสรุป
Array
(
[ XX12345678XX ] => Array
(
[datetime] => DateTime Object
(
[date] => 2016 - 06 - 01 12 : 30 : 00
[timezone_type] => 3
[timezone] => Europe / London
)
[status] => Delivered
[summary] => Item XX12345678XX was collected and signed for by the addressee on the 2016 - 06 - 01 from Kidderminster DO .
)
[ ZZ12345678ZZ ] => Array
(
[datetime] => DateTime Object
(
[date] => 2016 - 06 - 01 12 : 30 : 00
[timezone_type] => 3
[timezone] => Europe / London
)
[status] => Delivered
[summary] => We have a record of item ZZ12345678ZZ as being delivered from Fort William DO on 2016 - 06 - 01.
)
)
use Nomisoft RoyalMailTrackingApi RoyalMail ;
$ rm = RoyalMail :: init ( ' CLIENT_ID ' , ' CLIENT_SECRET ' , ' APP_ID ' );
$ response = $ rm -> getProofOfDelivery ( ' XX12345678XX ' );
การตอบกลับที่ส่งคืนเป็นอาร์เรย์ที่มีวัตถุ DateTime และชื่อของบุคคลที่ลงนามในพัสดุ
Array
(
[datetime] => DateTime Object
(
[date] => 2016 - 06 - 01 12 : 30 : 00
[timezone_type] => 3
[timezone] => Europe / London
)
[name] => Smith
)
ข้อยกเว้นของ Royalmailexception จะถูกโยนลงหากได้รับการตอบกลับข้อผิดพลาดจาก API การเรียกฟังก์ชั่น getMessage () จะส่งคืนคำอธิบายข้อผิดพลาดของ Royal Mail นอกจากนี้ยังมีฟังก์ชั่น getCause () เพิ่มเติมซึ่งจะส่งคืนค่าของฟิลด์ 'สาเหตุ' ที่ส่งคืนโดย API
try {
$ response = $ rm -> getSingleItemSummary ( ' XX12345678XX ' );
} catch ( RoyalMailException $ e ) {
echo $ e -> getMessage ();
echo $ e -> getCause ();
}
หากรายการถูกส่งไปเมื่อ 30 วันที่ผ่านมาคุณอาจเห็นสิ่งที่พิมพ์ต่อไปนี้จากรหัสตัวอย่างด้านบน
Tracking data are not available for barcode reference XX12345678XX
It is not possible to provide information about events that occurred more than 30 days ago