当前位置: 首页 > 后端技术 > PHP

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

时间:2023-03-29 16:36:25 PHP

做过跨境电商项目的同学都知道,除了订单、支付和购物车,还有一个非常头疼的模块——物流轨迹追踪。一般来说,企业为了节省成本,会使用多种物流渠道。DHL、EMS、Epacket、USPS……听起来很头疼;谁叫我们做技术的?为了解决各种接口数据格式不一致的问题,花了一段时间做了一个composer包。附上地址:https://github.com/slince/shipment-tracking用法很简单:$tracker=newSlince\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());//打印物流轨迹echojson_encode($shipment);//#可以直接以json格式返回对象给前端}catch(Slince\ShipmentTracking\Exception\TrackException$exception){exit('Trackerror:'.$exception->getMessage());}Shipmentis一个package的抽象,可以直接json_encoded,json之后的数据结构见下面的案例(见ajaxRequest)包含以下主要方法:isDelivered是否传递成功getOrigin获取源countrygetDestination获取收货国getEvents获取物流轨迹有些渠道可能不支持getOrigin,getDestination目前支持的渠道有:DHLeCommerceYanWenExpress(燕文物流)E小包(Epacket,EUP),E小包,E-Express,国际EMSUSPS快递100创建您自己的追踪器如果您使用的追踪器不在以上渠道,您也可以创建您自己的追踪器;这时候你需要使用一个库https://github.com/slince/shipment-tracking-foundation;shipment-tracking-foundation采用类似omnipay的设计;提供一些基本方法和基本对象,帮助您轻松创建自己的Tracker。案例附上我们的一个案例http://mypackage.co/tracking?orderNo=9037866297519&trackingNum=LW489083733CN跨境项目打开速度可能有点慢