近年来,我国电商产业发展迅速,数据显示,2010-2019年,我国电子商务交易规模从4.55万亿元增长至了34.81万亿元,年均复合增速达25%。在电子商务蓬勃发展的态势下,我国电商物流行业也迎来了广阔的发展机遇。2019年,我国电商物流行业的营收规模突破7000亿元,同比增长15.92%。电商产业的迅猛发展也推动着物流行业需求的增加,其中电商平台根据快递单号查询物流状态的需求就是基本需求,用户下单后商家把货物有没有及时的按要求发出去,就需要通过物流轨迹的揽件状态来判断,作为衡量商家物流服务的评价依据,货物发出去到哪了,电商平台就需要给用户查看提醒物流轨迹,提高用户的购物体验,商家发货仓库也需要根据物流轨迹的签收状态来统计签收率(妥投率)来考核物流网点的服务。鉴于我在自身业务中的一些实际使用经验和总结,接下来就以快递鸟API为例,讲一讲如何通过对接快递查询API接口,调用物流数据接口,获取物流轨迹信息。
快递鸟是中国领先的物流信息服务商,国家高新技术企业,已先后完成四轮融资,一直专注于企业级物流API技术研发和打通物流各节点信息服务,致力于成为全球最大的物流信息枢纽中心,目前支持600 以上快递物流公司接口一次性对接,为企业级用户提供标准的物流接口和电商物流模块整体解决方案,各零售平台商只需要简单的对接,就具备了完整的物流服务能力。
在快递鸟官网我们看到,快递鸟API查询接口支持包括顺丰、中通、韵达、圆通、申通、百世、EMS、邮政等600家以上快递物流公司,是专注做物流接口的, 第三方物流接口中做的比较好的。
快递鸟支持的快递公司列表:http://www.kdniao.com/file/快递鸟接口支持快递公司编码.xlsx
【对接使用流程】
1、将快递单号和快递公司编码发送給快递鸟
2、快递鸟根据单号和快递公司查询到物流轨迹状态
3、快递鸟将查询到的物流轨迹状态反馈給电商平台或ISV服务商
4、电商平台或ISV服务商接收数据并实时处理做数据展示或应用
【接口描述说明】
(1)查询接口支持按照运单号查询(单个查询)。
(2)接口需要指定快递单号的快递公司编码,格式不对或则编码错误都会返失败的信息。
如:EMS物流单号应选择快递公司编码(EMS)查看快递公司编码
(3)返回的物流跟踪信息按照发生的时间升序排列。
(4)接口指令1002。
(5)接口支持的消息接收方式为HTTP POST,请求方法的编码格式(utf-8):"application/x-www-form-urlencoded;charset=utf-8"。
(6)测试地址:http://sandboxapi.kdniao.com:8080/kdniaosandbox/gateway/exterfaceInvoke.json
(7)正式地址:http://api.kdniao.com/Ebusiness/EbusinessOrderHandle.aspx
请求系统级参数说明:
参数名称 | 类型 | 说明 | 必须要求 |
---|---|---|---|
RequestData | String | 请求内容需进行URL(utf-8)编码。请求内容JSON格式,须和DataType一致。 | R |
EBusinessID | String | 商户ID,请在我的服务页面查看。 | R |
RequestType | String | 请求指令类型:1002 | R |
DataSign | String | 数据内容签名:把(请求内容(未编码)+AppKey)进行MD5加密,然后Base64编码,最后 进行URL(utf-8)编码。详细过程请查看Demo。 | R |
DataType | String | 请求、返回数据类型:2-json; | O |
备注:R-必填(Required),O-可选(Optional),C-报文中该参数在一定条件下可选(Conditional)
【接口参数】
请求内容字段定义:
参数名称 | 类型 | 说明 | 必须要求 |
---|---|---|---|
OrderCode | String | 订单编号 | O |
ShipperCode | String | 快递公司编码 | R |
LogisticCode | String | 物流单号 | R |
返回参数定义:
参数名称 | 类型 | 说明 | 必须要求 |
---|---|---|---|
EBusinessID | String | 用户ID | R |
OrderCode | String | 订单编号 | O |
ShipperCode | String | 快递公司编码 | R |
LogisticCode | String | 物流运单号 | O |
Success | Bool | 成功与否 | R |
Reason | String | 失败原因 | O |
State | String | 物流状态:2-在途中,3-签收,4-问题件 | R |
Traces | |||
AcceptTime | String | 时间 | R |
AcceptStation | String | 描述 | R |
Remark | String | 备注 | O |
【示例】
请求示例 JSON
{
"OrderCode": "",
"ShipperCode": "SF",
"LogisticCode": "118650888018"
}
返回示例 JSON
没有物流轨迹的
{
"EBusinessID": "1109259",
"Traces": [],
"OrderCode": "",
"ShipperCode": "SF",
"LogisticCode": "118461988807",
"Success": false,
"Reason": null
}
有物流轨迹的
{
"EBusinessID": "1109259",
"OrderCode": "",
"ShipperCode": "SF",
"LogisticCode": "118461988807",
"Success": true,
"State": 3,
"