分享一個物流軌跡追蹤的PHP庫slince/shipment-tracking

作過跨境電商項目的同窗都知道,除了訂單,支付和購物車外還有一個很頭痛的模塊-物流軌跡追蹤。php

一般來講企業爲了節省成本採用的物流渠道都是五花八門的,DHl、EMS、Epacket、USPS...聽起來就讓人頭疼;誰讓我們是作技術的呢,爲了解決各家接口數據格式不一致的問題,特意花了一段時間作了一個composer的包.前端

附上地址: https://github.com/slince/shipment-trackinggit

用法很簡單:

$tracker = new Slince\ShipmentTracking\DHLECommerce\DHLECommerceTracker(CLIENT_ID, PASSWORD);

try {
   $shipment = $tracker->track('CNAQV100168101');
   
   if ($shipment->isDelivered()) {
       echo "Delivered";
   }
   echo $shipment->getOrigin();
   echo $shipment->getDestination();
   print_r($shipment->getEvents());  //打印物流軌跡
   
   echo json_encode($shipment);  //# 你能夠直接將對象json化返回給前端

} catch (Slince\ShipmentTracking\Exception\TrackException $exception) {
    exit('Track error: ' . $exception->getMessage());
}

Shipment是對一個包裹的抽象,能夠直接被json_encode, json以後的數據結構能夠看下面附上的案例(看ajax請求) 具體包含下面幾個主要方法github

方法 說明
isDelivered 是否成功投遞
getOrigin 獲取發貨源國家
getDestination 獲取收貨國家
getEvents 獲取物流軌跡

部分渠道可能不支持getOrigin, getDestination ajax

目前支持的渠道有:

  • DHL eCommercejson

  • YanWen Express(燕文物流)數據結構

  • E郵寶(Epacket、EUP)、E包裹、E特快、國際EMScomposer

  • USPS設計

  • 快遞100code

建立你本身的Tracker

若是你用到的tracker不在上述渠道中,你也能夠建立本身的tracker;此時須要用到一個庫https://github.com/slince/shipment-tracking-foundation; shipment-tracking-foundation 採用相似omnipay的設計;提供了一些基礎方法和基礎對象以幫助你輕鬆建立本身的Tracker.

案例

附上咱們的一個案例 http://mypackage.co/tracking?orderNo=9037866297519&trackingNum=LW489083733CN跨境項目打開速度可能會有點慢

相關文章
相關標籤/搜索