homer / kuaidi100

通过kuaidi100访问物流系统

1.0.0 2016-07-06 09:38 UTC

This package is not auto-updated.

Last update: 2024-09-14 19:04:12 UTC


README

使用Kuaidi100公开API实现物流查询服务。

示例代码片段

从Kuaidi100获取API密钥(以下),并尝试以下代码

use Homer\Logistics\Kuaidi100\Service as LogisticsService;

$service = new LogisticsService(<YOUR_COMPANY_NAME>, <KEY>);
// - or the full version
// $service = new LogisticsService(<YOUR_COMPANY_NAME>, <KEY>, $optionsOfService, $instanceOfClient);

// to start tracking waybill
$service->track(<waybill#>, $options);

// handle on waybill's status update
$service->handleWaybillUpdated($notification, Closure $callback);

// eagerly query logistics of some waybill
$logistics = $service->query(<CODE_OF_LOGISTICS_COMPANY>, <waybill#>, <FROM_LOCATION>, <TO_LOCATION>);

API

构造

__construct($name, $key, array $options = [], ClientInterface $client = null)

  • $name 您公司的名称(在迫切查询物流时使用)
  • $key API密钥(来自Kuaidi100)
  • $options 一些配置,包括
    • notification_url 接收运单状态更新通知的URL
    • salt(可选)用于响应签名验证的全局选择值
  • $client(可选)http客户端

开始跟踪某个运单

您可以通过调用track方法开始跟踪某个运单的物流。

track($waybillNo, array $options = [])

  • $waybillNo 运单号(要跟踪的运单号)
  • $options 选项,包括
    • 公司     快递公司编码
    • from     出发地城市,格式:省市区。例如:广东省深圳市南山区
    • to     目的地城市,格式:省市区。例如:北京市朝阳区
    • salt    (可选)用于签名的随机字符串(如果指定,将覆盖构造函数中设置的salt;如果两处都没有设置,将使用运单号即waybillNo作为盐值)
    • international    (可选)是否开启国际订单 true开启(默认),false不开启
    • notification_url    (可选)接受通知的地址(如果使用,将覆盖构造函数中指定的notification_url)

此方法返回的值为布尔值,成功时为true,否则为false。一旦应用跟踪,将通知运单的状态/新物流。

处理运单状态更新

handleWaybillUpdated($notification, Closure $callback, $salt = null)

  • $notification    (字符串)运单状态更新
  • $salt    (字符串|null)用于签名验证的盐值

返回值是一个包含更新状态的对象(具有'tracking'、'domestic'和可选的'overseas'字段)。

  • 跟踪
  •     | |---- status 跟踪状态,polling:监控中,shutdown:结束,abort:中止,updateall:重新推送。
  •     | |---- message 跟踪状态相关消息
  •     | |---- fake 是否被认为是假运单(在快递公司找不到运单)
  •     |
  • 国内物流
  •     | |---- state 当前签收状态,0在途中、1已揽收、2疑难、3已签收、4退签、5同城派送中、6退回、7转单
  •     | |---- signed 是否签收 false未签收、true已签收
  •     | |---- waybillNo 运单号
  •     | |---- company 快递公司编码
  •     | |---- items 物流信息(多项)
  •     |           |---- time 时间
  •     |           |---- state 状态
  •     |           |---- desc 内容
  •     |
  • 国际物流 数据结构与国内物流相同

(sync)查询运单状态

迫切检查某些运单的状态。

query($company, $waybillNo, $from, $to)

  • $company 物流公司的 编码
  • $waybillNo 运单号
  • $from 出发地城市,格式:省市区。例如:广东省深圳市南山区
  • $to 目的地城市,格式:省市区。例如:北京市朝阳区

目前返回值仅包含国内物流。