分享一个物流轨迹追踪的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跨境项目打开速度可能会有点慢

相关文章
相关标签/搜索