slince / shipment-tracking-foundation
适用于多承运商的灵活的运输跟踪库。
1.1.0
2017-10-31 09:39 UTC
Requires
- php: >=5.6.0
- guzzlehttp/guzzle: ^6.0
Requires (Dev)
- phpunit/phpunit: ^5.0|^6.0
This package is auto-updated.
Last update: 2024-09-08 19:25:39 UTC
README
适用于多承运商的灵活的运输跟踪库。
基本用法
$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()); //print the shipment events } catch (Slince\ShipmentTracking\Exception\TrackException $exception) { exit('Track error: ' . $exception->getMessage()); }
如何创建自己的跟踪器?
所有运输跟踪器必须实现 Slince\ShipmentTracking\Foundation\TrackerInterface
,如果承运商的API基于HTTP,通常会扩展 Slince\ShipmentTracking\Foundation\HttpAwareTracker
以实现基本功能。
namespace My\Tracker; use Slince\ShipmentTracking\Foundation\HttpAwareTracker; use Slince\ShipmentTracking\Foundation\Shipment; class MyTracker extends HttpAwareTracker { /** * {@inheritdoc} */ public function track($trackingNumber) { $response = $this->getHttpClient()->get('/../endpoint', [ 'query' => [ 'tracking_number' => $trackingNumber ] ]); return static::buildShipment($response): } /** * @return Shipment */ public function buildShipment($response) { //.... } } $tracker = new MyTracker(); $shipment = $tracker->track('foo-tracking-number'); print_r($shipment):
如果需要,您可以扩展所有现有类。
运输跟踪器
以下承运商可用
许可证
MIT许可证。请参阅 MIT