前面我们介绍了上门取件接口,取消接口,接着我们讲解一下取件状态推送接口,上门取件下单成功以后,快递员收到订单,会反馈接单状态,快递鸟会把状态实时推送到我们自己的服务器,之前我们讲解订阅推送功能时,提到过订阅推送接口,这个接口同样可以应用到取件状态推送接口,有部分区别,我们来详细讲解一下。
之前我们以C#为列,向快递鸟提供了一个
接收地址:http://www.你的域名.com/testReceive.aspx
并且推荐大家登陆快递鸟官网,通过快递鸟提供的沙箱调试页面进去测试接口
调试页面地址:
http://kdniao.com/UserCenter/v2/SandBox/PushQueryParam.aspx
测试的截图:
接口规范:
一、接口描述/说明
1. 取件状态推送接口
(1)此接口用于接收下单成功的订单状态。。
(2)客户需要按快递鸟要求开发接口,保证信息的正常接收。
(3)快递鸟主动推送时,物流信息接收接口由客户提供。
(4)接口支持的消息接收方式为HTTP POST,请求方法的编码格式(utf-8):"application/x-www-form-urlencoded;charset=utf-8"。
(5)运单物流信息全量推送(每次推送的运单物流信息包括运单当前所有的的物流信息)。
(6)接口地址:
沙箱地址:http://sandboxapi.kdniao.com:8080/kdniaosandbox/gateway/exterfaceInvoke.json
正式地址(不加密):
http://api.kdniao.com/api/OOrderService
正式地址(加密):
https://api.kdniao.com/api/OOrderService
接口数据包结构:
图例 - 数据包结构 (系统级参数{应用级参数})
系统级参数
参数名称 |
类型 |
说明 |
必须要求 |
RequestData |
String |
请求内容需进行URL(utf-8)编码。请求内容只支持JSON格式。 |
R |
RequestType |
String |
101-轨迹查询结果, 107-货款状态,103-取件状态推送 |
R |
DataSign |
String |
数据内容签名(把(请求内容(未编码)+AppKey)进行MD5加密,然后Base64编码) |
R |
备注:R-必填(Required),O-可选(Optional),C-报文中该参数在一定条件下可选(Conditional)
注意:前面提到的订阅推送轨迹信息RequestType=101,取件状态推送RequestType=103,所以我们在接收快递鸟报文的时候,接收到RequestType=103的内容就是快递鸟推送过来的取件状态信息。
应用级参数
参数名称 |
类型 |
是否必填 |
说明 |
EBusinessID |
String |
R |
用户ID |
PushTime |
String |
R |
推送时间 |
Count |
String |
R |
推送分发结果的订单个数(一次最多推送10个订单的分发结果) |
Data |
String |
R |
推送分发结果的集合 |
Data请求参数:
参数名称 |
类型 |
是否必填 |
说明 |
|
EBusinessID |
String |
R |
用户ID |
|
OrderCode |
String |
R |
预约时的订单编号 |
|
CallRequestType |
String |
R |
预约时调用的接口指令 预约取件接口:1801 |
|
ShipperCode |
String |
R |
快递公司编码 |
|
LogisticCode |
String |
O |
快递单号 |
|
Weight |
Int |
O |
重量 |
|
Success |
Bool |
R |
成功与否:true |
|
State |
String |
R |
订单状态码 |
|
CreateTime |
String |
O |
状态操作时间 |
|
Reason |
String |
O |
备注 |
|
FetchTime |
Date |
O |
上门取件时间 |
|
CallBack |
String |
O |
预约取件接口的CallBack值 |
|
PickerInfo |
PersonName |
String |
O |
取件快递员姓名 |
PersonTel |
String |
O |
取件快递员电话 |
|
PersonCode |
String |
O |
取件快递员工号 |
|
StationName |
String |
O |
取件网点名称 |
|
StationCode |
String |
O |
取件网点编号 |
|
StationAddress |
String |
O |
取件网点地址 |
|
StationTel |
String |
O |
取件网点电话 |
|
PickupCode |
String |
O |
取件码 |
请求示例:
{ "PushTime":"2019-08-21 12:05:00", "EBusinessID":"1549335", "Data":[ { "LogisticCode":"234354243168", "ShipperCode":"SF", "createTime":"2019-08-21 11:59:19", "State":"103", "FetchTime":"", "weight":2, "OrderCode":"72751507950551040", "EBusinessID":"1549335", "PickerInfo":[ { "PersonTel":"15827073766", "PersonCode":"086082", "PickupCode":"123456" } ], "Success":true, "CallRequestType":"1007", "Reason":"调度成功/收派员信息" } ], "Count":1 } |
返回参数:
参数名称 |
类型 |
必须要求 |
说明 |
EBusinessID |
String |
R |
用户ID |
UpdateTime |
String |
R |
时间 |
Success |
Bool |
R |
成功与否 true/false |
Reason |
String |
O |
备注 |
返回示例:
{ "EBusinessID": "1151847", "UpdateTime": "2016-08-09 16:42:38", "Success": true, "Reason": "" } |
取件状态传值说明如下表:
State |
State说明 |
Reason |
PickerInfo |
FetchTime |
101 |
接单失败 |
传值原因 |
|
|
102 |
订单分配已网点 |
|
传值网点信息 |
|
103 |
订单分配已快递员 |
|
传值快递员信息 |
|
201 |
订单已更改取件时间 |
|
|
传值新时间 |
202 |
订单需转单 |
传值原因 |
|
|
203 |
订单已取消 |
传值原因 |
|
|
204 |
订单延时取件 |
传值原因 |
|
|
205 |
无法联系上客户 |
传值原因 |
|
|
301 |
订单已完成 |
|
|
|
注:Reason取值快递公司传的原因内容,如快递公司只传了状态码,未回传异常原因,则留空;PickerInfo、FetchTime字段规则同上。
提供源码下载:
https://download.csdn.net/download/yanghanwen/12139326
调用第三方物流接口,替换自己的key就能直接使用,主要实现了物流在线轨迹查询,订单订阅,轨迹推送,支持500多家的快递查询接口,包括主流的四通一达,支持上门取件服务,其他接口调用,修改调用指令和参数就能实现。