目前快递查询接口有两种方式可以对接,一是和顺丰、圆通、中通、天天、韵达、德邦这些快递公司一一对接接口,二是和快递鸟这样第三方集成接口一次性对接多家常用快递。第一种耗费时间长,但是是直接和快递公司合作,第二种虽然是间接对接,但是对接简便,对后期的接口维护可以省很多时间和人力成本。
集成接口还有其他公司提供,有其他需要可以去找,快递鸟其实能满足电商、ERP系统商这些企业需求了。这里就以快递鸟为例说说对接方法。
快递鸟物流查询接口有免费和收费版本,对接周期大概在一天左右,他们有写好的demo,可以直接使用。
一.即时查询接口(免费)
1. 接口规则
(1)、查询接口支持按照运单号查询(单个查询,并发不超过10个/S)。
(2)、指定的物流运单号选择相应的快递公司编码,格式不对或则编码错误都会返失败的信息。如EMS物流单号应选择快递公司编码(EMS)
(3)、返回的物流跟踪信息按照发生的时间升序排列。
(4)、接口指令1002。
(5)、请求地址:http://api.kdniao.cc/Ebusiness/EbusinessOrderHandle.aspx
2. 系统级和应用级输入参数
系统级输入参数 | 类型 | 应用级输入参数 | 必须要求 | 说明 | |
RequestData | String | OrderCode | O | 订单编号 | 请求内容,JSON格式,和DataType一致 |
ShipperCode | R | 快递公司编码 | |||
LogisticCode | R | 物流单号 | |||
EBusinessID | String |
| R | 电商ID | |
RequestType | String | R | 请求指令类型:1002 | ||
DataSign | String | R | 数据内容签名 | ||
DataType | String | R | 请求、返回数据类型: 2-json; |
3. 返回结果参数
参数名称 | 类型 | 必须要求 | 说明 |
EBusinessID | String | R | 电商用户ID |
OrderCode | String | O | 订单编号 |
ShipperCode | String | R | 快递公司编码 |
LogisticCode | String | R | 物流运单号 |
CallBack | String | O | 用户标识 |
Success | Bool | R | 成功与否 |
Reason | String | O | 失败原因 |
State | String | R | 物流状态: 0-无轨迹 2-在途中,3-签收,4-问题件 |
Traces/物流轨迹详情 | |||
AcceptTime | String | R | 时间 |
AcceptStation | String | R | 描述 |
Remark | String | O | 备注 |
4. 示例
二.物流跟踪接口(免费)
2.1请求接口
物流跟踪接口和即时查询接口的区别:
查询次数-物流跟踪接口不限次数,即时查询接口每天只能查询3000次
接口使用-物流跟踪接口使用订阅单号异步推送的方式,就是如有物流轨迹更新,则推送给用户,后期用户需要查询的时候调用本地数据库就可以了,而即时查询接口是即时返回的方式,就是请求一次,返回一次
1. 接口规则
(1)、订单接收的信息(分给了的网点,业务员的信息),会通过推送接口推给客户(订阅并发不超过30次/S)客户需要按要求实现接口。
(2)、仅支持Json格式。
(3)、请求指令1008。
(4)、测试接口地址:http://testapi.kdniao.cc:8081/api/dist
(5)、联调通过后请更换为正式地址:http://api.kdniao.cc/api/dist
(6)、分发及订阅接口需要客户方实现回调接口,回调RequestType(1008)
2. 系统级和应用级输入参数
系统级输入参数 | 应用级输入参数 | 类型 | 是否必须 | 描述 | ||
RequestData(必填参数,请求内容,JSON格式,须和DataType一致)) | CallBack | String | O | 用户自定义回调信息 | ||
MemberID | String | O | 会员标识(备用字段) | |||
WareHouseID | String | O | 仓库标识(备用字段) | |||
CustomerName | String | O | 电子面单客户账号 (与快递网点申请) | |||
CustomerPwd | String | O | 电子面单密码 | |||
SendSite | String | O | 收件网点标识 | |||
ShipperCode | String | R | 快递公司编码 | |||
LogisticCode | String | R | 快递单号 | |||
OrderCode | String | O | 订单编号 | |||
MonthCode | String | O | 月结编码 | |||
PayType | Int | O | 邮费支付方式: 1-现付,2-到付,3-月结,4-第三方支付 | |||
ExpType | String | O | 快递类型:1-标准快件 | |||
Cost | Double | O | 寄件费(运费) | |||
OtherCost | Double | O | 其他费用 | |||
Receiver | Company | String | O | 收件人公司 | ||
Name | String | O | 收件人 | |||
Tel | String | O | 电话 | |||
Mobile | String | O | 手机 | |||
PostCode | String | O | 收件人邮编 | |||
ProvinceName | String | O | 收件省(如广东省,不要缺少“省”) | |||
CityName | String | O | 收件市(如深圳市,不要缺少“市”) | |||
ExpAreaName | String | O | 收件区(如福田区,不要缺少“区”或“县”) | |||
Address | String | O | 收件人详细地址 | |||
Sender | Company | String | O | 发件人公司 | ||
Name | String | O | 发件人 | |||
Tel | String | O | 发件人电话 | |||
Mobile | String | O | 发件人手机 | |||
PostCode | String | O | 发件人邮编 | |||
ProvinceName | String | O | 发件省(如广东省,不要缺少“省”) | |||
CityName | String | O | 发件市(如深圳市,不要缺少“市”) | |||
ExpAreaName | String | O | 发件区(如福田区,不要缺少“区”或“县”) | |||
Address | String | O | 发件详细地址 | |||
StartDate | String | O | 上门取货时间段: "yyyy-MM-dd HH:mm:ss"格式化,本文中所有时间格式相同 | |||
EndDate | String | O | ||||
Weight | Double | O | 物品总重量kg | |||
Quantity | Int | O | 件数/包裹数 | |||
Volume | Double | O | 物品总体积m3 | |||
Remark | String | O | 备注 | |||
IsNotice | Int | O | 是否分发到快递公司:1-不分发;0-分发.默认为0 | |||
IsSendMessage | Int | O | 是否订阅短信 0-不需要;1-需要 | |||
AddService | Name | String | 0 | 增值服务名称 | ||
Value | String | 0 | 增值服务值 | |||
CustomerID | String | 0 | 客户标识(选填) | |||
Commodity | GoodsName | String | O | 商品名称 | ||
GoodsCode | String | O | 商品编码 | |||
Goodsquantity | Int | O | 件数 | |||
GoodsPrice | Double | O | 商品价格 | |||
GoodsWeight | Double | O | 商品重量kg | |||
GoodsDesc | String | O | 商品描述 | |||
GoodsVol | Double | O | 商品体积m3 | |||
EBusinessID |
| String | R | 商户ID | ||
RequestType | String | R | 请求指令类型:1008 | |||
DataSign | String | R | 数据内容签名 | |||
DataType | String | R | 请求、返回数据类型:2-json; |
3. 返回结果参数(同步返回是否调用成功)
参数名称 | 类型 | 必须要求 | 说明 |
EBusinessID | String | R | 电商用户ID |
UpdateTime | String | R | 时间 |
Success | Bool | R | 成功与否:true,false |
Reason | String | O | 失败原因 |
EstimatedDeliveryTime | String | O | 订单预计到货时间yyyy-mm-dd |
4. 调用示例
2.2接收接口
这个是用户在订阅单号成功且有物流轨迹更新后,快递鸟的推送
客户通过下单、订阅接口,把运单号在快递鸟系统订阅。运单物流信息有更新,快递鸟通过推送接口把更新的信息推送给客户。推送接口由用户按照快递鸟规则实现。商户开放接口,快递鸟定时将最新的物流轨迹推送到商户平台。
优点:客户不需要关注轨迹变化,一旦有更新,快递鸟自动推送。
缺点:对客户的服务器性能有所要求,快递鸟定时请求接口,对客户的服务器有一定的影响,客户服务器异常将接受不到最新数据。
快递鸟推送接口根据业务不同,会根据RequestType的分类推送不同的数据,用户需对推送的数据进行分类保存。原推送接口无需变化,快递鸟会根据推送版本进行推送。
1. 接口规则
(1)、客户服务器必须稳定,并且有一定的接受数据能力(需要在5S内给快递鸟返回成功示例,超时会判断推送失败)。快递鸟通过多线程推送物流信息给客户。
(2)、客户需要按快递鸟要求开发接口,保证信息的正常接收。客户接数据后,存储并马上返回接收响应。如果客户对数据进行处理,再做出响应。这会造成网络超时,传输效率低下。
(3)、主动推送时物流信息接收接口由客户提供,接口必须按照快递鸟的要求实现。
(4)、客户提供接口地址,用户登陆用户管理后台-----调试平台-----推送接口进行测试---(成功返回示例后)才可以配置。
(5)、接口只支持Json数据格式。
(6)、POST方式请求。
2. 系统级和应用级输入参数
系统级输入参数 | 应用级输入参数 | 类型 | 必须要求 | 说明 | |
RequestData | EBusinessID | String | R | 用户电商ID | 推送数据经url转码utf-8 |
PushTime | 推送时间 | ||||
Count | 推送物流单号轨迹个数 | ||||
Data | 推送物流单号轨迹集合 | ||||
RequestType |
| String | R | 101-轨迹查询结果, 107-货款状态 | |
DataSign | String | R | 数据内容签名(把(请求内容(未编码)+AppKey)进行MD5加密,然后Base64编码) |
3. 订阅查询结果(RequestType:101)
通过轨迹查询(订阅查询)接口订阅到快递鸟的数据,快递鸟推送时,会将推送的RequestType的值置为101,同时返回下列数据
参数名称 | 类型 | 必须要求 | 说明 | |
Data | EBusinessID | String | O | 电商用户ID |
OrderCode | String | O | 订单编号 | |
ShipperCode | String | R | 快递公司编码 | |
LogisticCode | String | R | 物流运单号 | |
Success | Bool | R | 成功与否 | |
Reason | String | O | 失败原因 | |
State | String | R | 物流状态: 0-无轨迹 2-在途中 3-签收 4-问题件 | |
CallBack | String | O | 订阅接口的Bk值 | |
Traces | String | R | 物流轨迹详情 | |
EstimatedDeliveryTime | String | O | 预计到达时间yyyy-mm-dd | |
PickerInfo | Object | O | 收件员信息 | |
SenderInfo | Object | O | 派件员信息 |
注:通过订单分发与电子面单接口自动订阅的运单,会返回预计达到时间,收派件人员网点信息,当前快件所在省市等字段
参数名称 | 类型 | 必须要求 | 说明 | |
Traces | AcceptTime | String | R | 时间 |
AcceptStation | String | R | 描述 | |
Remark | String | O | 备注 |
3. 订阅查询(增值版)结果(RequestType:102)
这个是增值收费项,不想用收费的不支付就不会有这个服务,通过轨迹查询(订阅查询)接口订阅到快递鸟的数据,快递鸟推送时,会将推送的RequestType的值置为102,同时返回下列数据
参数名称 | 类型 | 必须要求 | 说明 | |
Date | EBusinessID | String | O | 电商用户ID |
OrderCode | String | O | 订单编号 | |
ShipperCode | String | R | 快递公司编码 | |
LogisticCode | String | R | 物流运单号 | |
Success | Bool | R | 成功与否 | |
Reason | String | O | 失败原因 | |
State | String | R | 物流状态: 0-无轨迹 2-在途中 3-签收 4-问题件 | |
StateEx | String | O | 增值物流状态: 1-已揽收 2-在途中 201-到达派件城市 202-派件中 211-已放入快递柜或驿站 3-已签收 311-已取出快递柜或驿站 4-问题件 401-发货无信息 402-超时未签收 403-超时未更新 404-拒收(退件) 412-快递柜或驿站超时未取 | |
Location | String | O | 当前城市 | |
CallBack | String | O | 订阅接口的Bk值 | |
Traces | String | R | 物流轨迹详情 | |
EstimatedDeliveryTime | String | O | 预计到达时间yyyy-mm-dd | |
PickerInfo | Object | O | 收件员信息 | |
SenderInfo | Object | O | 派件员信息 |
注:通过订单分发与电子面单接口自动订阅的运单,会返回预计达到时间,收派件人员网点信息,当前快件所在省市等字段
参数名称 | 类型 | 必须要求 | 说明 | |
Traces | AcceptTime | String | R | 时间 |
AcceptStation | String | R | 描述 | |
Location | String | O | 当前城市 | |
Action | String | O | 当前状态 | |
Remark | String | O | 备注 |
4. 货款状态(RequestType:107)
用户通过电子面单使用快递鸟货到付款等金融服务时,快递鸟会将该订单的金融状态通过接口推送给用户。
参数名称 | 类型 | 必须要求 | 说明 | |
Response | EBusinessID | String | O | 电商用户ID |
OrderCode | String | O | 订单编号 | |
ShipperCode | String | R | 快递公司编码 | |
LogisticCode | String | R | 物流运单号 | |
Success | Bool | R | 成功与否 | |
Reason | String | O | 失败原因 | |
State | String | R | 物流状态: 0-无轨迹 2-在途中 3-签收 4-问题件 | |
CallBack | String | O | 订阅接口的Bk值 | |
OrderState | String | O | 订单货款状态: 1-待出款; 2-已出款; 3-已收款 | |
AccountName | String | O | 返款银行卡开户人(例:**伟、*佳) | |
AccountTel | String | O | 返款银行卡手机末四位 | |
AccountNum | String | O | 返款银行卡末四位 |
注:通过订单分发与电子面单接口自动订阅的运单,会返回预计达到时间,收派件人员网点信息,当前快件所在省市等字段
4. 返回结果参数
参数名称 | 类型 | 必须要求 | 说明 |
EBusinessID | String | R | 用户ID |
UpdateTime | String | R | 时间 |
Success | String | R | 成功与否 |
Reason | String | O | 失败原因 |
5. 示例