作過跨境電商項目的同窗都知道,除了訂單,支付和購物車外還有一個很頭痛的模塊-物流軌跡追蹤。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;此時須要用到一個庫https://github.com/slince/shipment-tracking-foundation; shipment-tracking-foundation
採用相似omnipay
的設計;提供了一些基礎方法和基礎對象以幫助你輕鬆建立本身的Tracker.
附上咱們的一個案例 http://mypackage.co/tracking?orderNo=9037866297519&trackingNum=LW489083733CN跨境項目打開速度可能會有點慢