作过跨境电商项目的同窗都知道,除了订单,支付和购物车外还有一个很头痛的模块-物流轨迹追踪。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跨境项目打开速度可能会有点慢