物流跟踪API-快递单订阅
上一篇文章我们讲解了轨迹查询的接口,通过快递鸟接口可以实现实时查询物流轨迹,这次给大家推荐订阅服务功能。
为了更好的理解订阅服务,我们来做个对比,
即时查询是主动查询物流轨迹,需要我们主动调用接口才能获得物流轨迹。
快递单订阅是被动接收物流轨迹,我们把大量的物流订单通过接口委托给快递鸟,
快递鸟对订单进行实时监控,当物流轨迹有更新时,快递鸟通过内部处理,计算运单预计到达时间、全流程的物流状态,推送到我们指定的接口地址。每一次的物流轨迹更新,快递鸟就会调用一次我们提供的接口地址,直到订单签收后才结束订阅。
有些朋友可能会问,我只要使用即时接口查询快递就可以了,为什么还要使用订阅服务功能?
目的只有一个,减少公司开发成本,提升用户体验。
假设我们的电商平台,每天有1000个订单需要发货,每天就有1000个运单要查询物流轨迹,一个订单从发货到签收周期是3-7天,我们需要查询所有未签收的运单轨迹,综合统计,一天我们可能需要查询5000千个订单,如果我们对订单时效要求非常高,需要实时了解包裹的签收情况,我们就要反复调用接口,每半小时调用一次,一个单一天要调用48次,如果时效要求更高,调用更频繁,5000个订单需要调用24万次以上,这样的频繁调用既占用公司服务器资源,也容易被快递鸟当中恶意攻击查封接口。
这个时候订阅服务的优势就提现出来了,我们只需要把每天的1000个发货订单推送到快递鸟,让快递鸟去做这个比较繁琐的事情,快递鸟会监控我们推送过去的所有订单,只要没有被签收,快递鸟就会提供推送服务,假设目前有5000个订单还没被签收,快递鸟就会监控这5000个单,其中任何一个单有新的轨迹或者被签收了,快递鸟即时调用我们提供的接口,把轨迹推送到我们的服务器,这样我们就实现了0延迟,真正做到了即时更新物流轨迹,我们利用这个功能可以实现很多产品服务,比如:短信提醒客户订单预计签收时间,统计订单的签收情况,计算订单的发货时效……
订阅服务我们已经了解了,接下来说说如何对接。
一、接口描述/说明
1.订阅接口
(1)此功能为专业定制,为特殊商户提供订阅服务,快递鸟系统会定时推送新的物流信息到商户系统。
(2)订阅快递号需指定相应的快递公司编码,格式不对或则编码错误都会返回失败的信息。
(3)接口支持的消息接收方式为HTTP POST,请求方法的编码格式(utf-8):"application/x-www-form-urlencoded;charset=utf-8"。
(4)接口地址:
API测试地址:http://sandboxapi.kdniao.com:8080/kdniaosandbox/gateway/exterfaceInvoke.json
API正式地址:
http://api.kdniao.com/api/dist
请求系统级参数说明:
参数名称 |
类型 |
说明 |
必须要求 |
RequestData |
String |
请求内容需进行URL(utf-8)编码。请求内容JSON格式,须和DataType一致。 |
R |
EBusinessID |
String |
商户ID,请在我的服务页面查看。 |
R |
RequestType |
String |
请求指令类型:1008 |
R |
DataSign |
String |
数据内容签名:把(请求内容(未编码)+AppKey)进行MD5加密,然后Base64编码,最后 进行URL(utf-8)编码。详细过程请查看Demo。 |
R |
DataType |
String |
请求、返回数据类型:2-json; |
R |
备注:R-必填(Required),O-可选(Optional),C-报文中该参数在一定条件下可选(Conditional)
二、接口参数
1.订阅接口
请求内容字段定义:
参数 |
类型 |
说明 |
必须要求 |
|
Callback |
String(50) |
用户自定义回调信息 |
O |
|
MemberID |
String(50) |
会员标识(备用字段) |
O |
|
WareHouseID |
String(30) |
仓库标识(备用字段) |
O |
|
CustomerName |
String |
电子面单客户账号(与快递网点申请) |
O |
|
CustomerPwd |
String |
电子面单密码 |
O |
|
SendSite |
String |
收件网点标识(名称) |
O |
|
ShipperCode |
String(10) |
快递公司编码 |
R |
|
LogisticCode |
String(30) |
快递单号 |
R |
|
OrderCode |
String(30) |
订单编号 |
O |
|
MonthCode |
String(20) |
月结编号 |
O |
|
PayType |
Int |
邮费支付方式:1-现付,2-到付,3-月结,4-第三方支付 |
O |
|
ExpType |
String(2) |
快递类型:1-标准快件 |
O |
|
Cost |
Double(5) |
快递运费 |
O |
|
OtherCost |
Double(5) |
其他费用 |
O |
|
Receiver |
Company |
String(30) |
收件人公司 |
O |
Name |
String(30) |
收件人 |
R |
|
Tel |
String(20) |
电话(电话与手机,必填一个) |
R |
|
Mobile |
String(20) |
手机 |
R |
|
PostCode |
String(10) |
收件人邮编 |
O |
|
ProvinceName |
String(20) |
收件省(如广东省,不要缺少“省”) |
R |
|
CityName |
String(20) |
收件市(如深圳市,不要缺少“市”) |
R |
|
ExpAreaName |
String(20) |
收件区(如福田区,不要缺少“区”或“县”) |
R |
|
Address |
String(100) |
收件人详细地址 |
R |
|
Sender |
Company |
String(30) |
发件人公司 |
O |
Name |
String(30) |
发件人 |
R |
|
Tel |
String(20) |
手机与电话必填一个 |
R |
|
Mobile |
String(20) |
发件人手机 |
R |
|
PostCode |
String |
发件人邮编 |
O |
|
ProvinceName |
String(20) |
发件省(如广东省,不要缺少“省”) |
R |
|
CityName |
String(20) |
发件市(如深圳市,不要缺少“市”) |
R |
|
ExpAreaName |
String(20) |
发件区(如福田区,不要缺少“区”或“县”) |
R |
|
Address |
String(100) |
发件人详细地址 |
R |
|
IsNotice |
Int(1) |
是否通知快递员上门揽件:0-通知;1-不通知;默认为1 |
O |
|
StartDate |
String |
上门取货时间段:"yyyy-MM-dd HH:mm:ss"格式化,本文中所有时间格式相同 |
O |
|
EndDate |
String |
O |
||
Weight |
Double |
包裹总重量kg |
O |
|
Quantity |
Int(2) |
件数/包裹数 |
O |
|
Volume |
Double |
物品总体积m3 |
O |
|
Remark |
String(60) |
备注 |
O |
|
IsSendMessage |
Int(1) |
是否订阅短信:0-不需要;1-需要 |
O |
|
AddService(数组形式) |
||||
AddService |
Name |
String(20) |
增值服务名称 |
O |
Value |
String(30) |
增值服务值 |
O |
|
CustomerID |
String(30) |
客户标识(选填) |
O |
|
Commodity(数组形式) |
||||
Commodity |
GoodsName |
String(100) |
商品名称 |
O |
GoodsCode |
String(20) |
商品编码 |
O |
|
Goodsquantity |
Int(5) |
件数 |
O |
|
GoodsPrice |
Double(10) |
商品价格 |
O |
|
GoodsWeight |
Double |
商品重量kg |
O |
|
GoodsDesc |
String(50) |
商品描述 |
O |
|
GoodsVol |
Double |
商品体积m3 |
O |
返回参数定义:
参数名称 |
类型 |
说明 |
必须要求 |
EBusinessID |
String |
用户ID |
R |
UpdateTime |
String |
更新时间 |
R |
Success |
Bool |
成功与否:true,false |
R |
Reason |
String(50) |
失败原因 |
O |
EstimatedDeliveryTime |
String |
订单预计到货时间yyyy-mm-dd(即将上线) |
O |
三、示例
订阅接口
请求示例 JSON
{
"ShipperCode":"SF",
"OrderCode":"SF201608081055208281",
"LogisticCode":"3100707578976",
"PayType":"1",
"ExpType":"1",
"CustomerName":"",
"CustomerPwd":"",
"MonthCode":"",
"IsNotice":"0",
"Sender":{
"Name":"1255760",
"Tel":"",
"Mobile":"13700000000",
"ProvinceName":"广东省",
"CityName":"深圳市",
"ExpAreaName":"福田区",
"Address":"测试地址"
},
"Receiver":{
"Name":"1255760",
"Tel":"",
"Mobile":"13800000000",
"ProvinceName":"广东省",
"CityName":"深圳市",
"ExpAreaName":"龙华新区",
"Address":"测试地址2"
},
"Commodity":[
{
"GoodsName":"书本"
}
]
}
返回示例 JSON
{
"EBusinessID": "1151847",
"UpdateTime": "2016-08-09 16:42:38",
"Success": true,
"Reason": ""
}
提供源码下载:
https://download.csdn.net/download/yanghanwen/12139326
调用第三方物流接口,替换自己的key就能直接使用,主要实现了物流在线轨迹查询,订单订阅,轨迹推送,支持500多家的快递查询接口,包括主流的四通一达,支持上门取件服务,其他接口调用,修改调用指令和参数就能实现。
演示截图: