homer / kuaidi100
通过kuaidi100访问物流系统
1.0.0
2016-07-06 09:38 UTC
Requires
- guzzlehttp/guzzle: ^6.1
Requires (Dev)
- phpspec/phpspec: ^2.4
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
接收运单状态更新通知的URLsalt
(可选)用于响应签名验证的全局选择值
- $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
目的地城市,格式:省市区。例如:北京市朝阳区
目前返回值仅包含国内物流。