分享一个物流轨迹追踪的PHP库slince/shipment-tracking

做过跨境电商项目的同学都知道,除了订单,支付和购物车外还有一个很头痛的模块-物流轨迹追踪。

通常来说企业为了节省成本采用的物流渠道都是五花八门的,DHl、EMS、Epacket、USPS...听起来就让人头疼;谁让咱们是做技术的呢,为了解决各家接口数据格式不一致的问题,特地花了一段时间做了一个composer的包.

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

用法很简单:


$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请求) 具体包含下面几个主要方法

方法说明
isDelivered是否成功投递
getOrigin获取发货源国家
getDestination获取收货国家
getEvents获取物流轨迹

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

目前支持的渠道有:

  • DHL eCommerce

  • YanWen Express(燕文物流)

  • E邮宝(Epacket、EUP)、E包裹、E特快、国际EMS

  • USPS

  • 快递100

创建你自己的Tracker

如果你用到的tracker不在上述渠道中,你也可以创建自己的tracker;此时需要用到一个库https://github.com/slince/shipment-tracking-foundation; shipment-tracking-foundation 采用类似omnipay的设计;提供了一些基础方法和基础对象以帮助你轻松创建自己的Tracker.

案例

附上我们的一个案例 http://mypackage.co/tracking?orderNo=9037866297519&trackingNum=LW489083733CN
跨境项目打开速度可能会有点慢

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值