上一篇文章我们讲解了轨迹查询的接口,通过快递鸟接口可以实现实时查询物流轨迹,这次给大家推荐订阅服务功能。
为了更好的理解订阅服务,我们来做个对比,
即时查询是主动查询物流轨迹,需要我们主动调用接口才能获得物流轨迹。
快递单订阅是被动接收物流轨迹,我们把大量的物流订单通过接口委托给快递鸟,
快递鸟对订单进行实时监控,当物流轨迹有更新时,快递鸟通过内部处理,计算运单预计到达时间、全流程的物流状态,推送到我们指定的接口地址。每一次的物流轨迹更新,快递鸟就会调用一次我们提供的接口地址,直到订单签收后才结束订阅。
有些朋友可能会问,我只要使用即时接口查询快递就可以了,为什么还要使用订阅服务功能?
目的只有一个,减少公司开发成本,提升用户体验。
假设我们的电商平台,每天有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 | 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多家的快递查询接口,包括主流的四通一达,支持上门取件服务,其他接口调用,修改调用指令和参数就能实现。
演示截图: