如何使用外部API接口实现快递物流单号查询(快递鸟案例)

前两天需要做一个快递查询的需求,由于也是第一次做,完全不懂,但是还是明白这必定是需要调用外部接口来实现,并且应该不是调用快递公司所给的接口,于是便上网查询了能够提供快递查询接口的公司。

目前国内主流的快递物流查询API接口服务商目前只有三家,分别是菜鸟、快递鸟、快递100,这三家都分别获得了融资,菜鸟是阿里投资的,为淘系(淘宝和天猫)服务,快递鸟是中银粤财、东方富海、启赋资本投资的,为非淘系(拼多多、蘑菇街、网易考拉等)服务,快递100是京东、国信弘盛投资的,为京东、百度等服务。
还有一些像阿里云是应用市场平台,入驻这类的平台的很多服务商都是用的快递鸟免费物流接口(这家产品介绍用的都是快递鸟官网的图),因为菜鸟和快递100都是收费的(融资信息可以在投资界网站上查看)。
如何使用外部API接口实现快递物流单号查询(快递鸟案例)
快递API的应用场景与用途
最常见的应用场景如下:
(1)电商网站:例如B2C、团购、B2B、批发分销站、C2C、本地生活交易等网站。
(2)管理系统:订单处理平台、订货平台、发货平台、分销系统、渠道管理系统、客户管理系统、ERP等。
快递API的用途如下:
(1)让顾客登录网站后,直接在“我的订单”页面内就能看到订单的物流状态。
(2)自动筛选出“已签收”、“疑难件”等状态的单号,减轻物流跟单人员的压力。
(3)改变订单的状态和交易流程,例如单号变为“已签收”,就能让订单变为可以确认退换货等。
(4)评估选择快递公司,根据“已签收”的运单数,可以算出销售人员的业绩,且便于应对货到付款的结算。
(5)邮件、短信提醒用户运单的最新状态,可以安抚用户,也可以利用邮件短信二次营销。
如果自己的网站是非淘系京东系的话,这边建议使用快递鸟,所以就以快递鸟作为案例进行解说吧.

注册快递鸟账号

注册这里就不演示了,注册完成后登入,进入到个人中心,这里需要进行一个实名认证,按公司产品的类型进行一个选择,展示页面如图1,认证完成后在我的产品服务中选择自己所需要的服务,当然对于初创型公司来说选择免费版就够了,等到业务做大时再选择其他产品服务.还有就是在个人中心中如图2所示,我们需要记住的是用户ID,和API key(不要泄露),这将是我们进行接口调用时需要用到的,

  1. 接口规则
    (1)、查询接口支持按照运单号查询(单个查询,并发不超过10个/S)。
    (2)、指定的物流运单号选择相应的快递公司编码,格式不对或则编码错误都会返失败的信息。如EMS物流单号应选择快递公司编码(EMS)
    (3)、返回的物流跟踪信息按照发生的时间升序排列。
    (4)、接口指令1002。
    (5)、请求地址:快递鸟
  2. 系统级和应用级输入参数
    如何使用外部API接口实现快递物流单号查询(快递鸟案例)
    3.返回参数
    如何使用外部API接口实现快递物流单号查询(快递鸟案例)
    请求示例:
    <br>{
    "OrderCode": "",
    "ShipperCode": "SF",
    "LogisticCode": "118650888018"}//返回示例<br>//没有物流轨迹的{
    "EBusinessID": "1109259",
    "Traces": [],
    "OrderCode": "",
    "ShipperCode": "SF",
    "LogisticCode": "118461988807",
    "Success": true,
    "Reason": null}//有物流轨迹的{
    "EBusinessID": "1109259",
    "OrderCode": "",
    "ShipperCode": "SF",
    "LogisticCode": "118461988807",
    "Success": true,
    "CallBack":"",
    "State": ,
    "Reason": null,
    "Traces": [
        {
            "AcceptTime": "2019/06/25 08:05:37",
            "AcceptStation": "正在派件..(派件人:邓裕富,电话:18718866310)[深圳 市]",
            "Remark": null
        },
        {
            "AcceptTime": "2019/06/25 04:01:28",
            "AcceptStation": "快件在 深圳集散中心 ,准备送往下一站 深圳 [深圳市]",
            "Remark": null
        },
        {
            "AcceptTime": "2019/06/25 01:41:06",
            "AcceptStation": "快件在 深圳集散中心 [深圳市]",
            "Remark": null
        },
        {
            "AcceptTime": "2019/06/24 20:18:58",
            "AcceptStation": "已收件[深圳市]",
            "Remark": null
        },
        {
            "AcceptTime": "2019/06/24 20:55:28",
            "AcceptStation": "快件在 深圳 ,准备送往下一站 深圳集散中心 [深圳市]",
            "Remark": null
        },
        {
            "AcceptTime": "2019/06/25 10:23:03",
            "AcceptStation": "派件已签收[深圳市]",
            "Remark": null
        },
        {
            "AcceptTime": "2019/06/25 10:23:03",
            "AcceptStation": "签收人是:已签收[深圳市]",
            "Remark": null
        }
    ]}

    2接收接口

这个是用户在订阅单号成功且有物流轨迹更新后,快递鸟的推送
客户通过下单、订阅接口,把运单号在快递鸟系统订阅。运单物流信息有更新,快递鸟通过推送接口把更新的信息推送给客户。推送接口由用户按照快递鸟规则实现。商户开放接口,快递鸟定时将最新的物流轨迹推送到商户平台。
优点:客户不需要关注轨迹变化,一旦有更新,快递鸟自动推送。
缺点:对客户的服务器性能有所要求,快递鸟定时请求接口,对客户的服务器有一定的影响,客户服务器异常将接受不到最新数据。
快递鸟推送接口根据业务不同,会根据RequestType的分类推送不同的数据,用户需对推送的数据进行分类保存。原推送接口无需变化,快递鸟会根据推送版本进行推送。

  1. 接口规则
    (1)、客户服务器必须稳定,并且有一定的接受数据能力(需要在5S内给快递鸟返回成功示例,超时会判断推送失败)。快递鸟通过多线程推送物流信息给客户。
    (2)、客户需要按快递鸟要求开发接口,保证信息的正常接收。客户接数据后,存储并马上返回接收响应。如果客户对数据进行处理,再做出响应。这会造成网络超时,传输效率低下。
    (3)、主动推送时物流信息接收接口由客户提供,接口必须按照快递鸟的要求实现。
    (4)、客户提供接口地址,用户登陆用户管理后台-----调试平台-----推送接口进行测试---(成功返回示例后)才可以配置。
    (5)、接口只支持Json数据格式。
    (6)、POST方式请求。
    示例:
    
    //快递鸟请求接收接口示例<br>订阅查询结果示例:
    {
    "EBusinessID": "1109259",
    "Count": "2",
    "PushTime": "2015-03-11 16:21:06",
    "Data": [
        {
            "EBusinessID": "1109259",
            "OrderCode": "",
            "ShipperCode": "EMS",
            "LogisticCode": "5042260908504",
            "Success": true,
            "Reason": "",
            "State": "2",
            "CallBack": "0",
            "Traces": [
                {
                    "AcceptTime": "2015-03-06 21:16:58",
                    "AcceptStation": "深圳市横岗速递营销部已收件,(揽投员姓名:钟定基;联系电话:)",
                    "Remark": ""
                },
                {
                    "AcceptTime": "2015-03-07 14:25:00",
                    "AcceptStation": "离开深圳市 发往广州市",
                    "Remark": ""
                },
                {
                    "AcceptTime": "2015-03-08 00:17:00",
                    "AcceptStation": "到达广东速递物流公司广航中心处理中心(经转)",
                    "Remark": ""
                },
                {
                    "AcceptTime": "2015-03-08 01:15:00",
                    "AcceptStation": "离开广州市 发往北京市(经转)",
                    "Remark": ""
                },
                {
                    "AcceptTime": "2015-03-09 09:01:00",
                    "AcceptStation": "到达北京黄村转运站处理中心(经转)",
                    "Remark": ""
                },
                {
                    "AcceptTime": "2015-03-09 18:39:00",
                    "AcceptStation": "离开北京市 发往呼和浩特市(经转)",
                    "Remark": ""
                },
                {
                    "AcceptTime": "2015-03-10 18:06:00",
                    "AcceptStation": "到达  呼和浩特市 处理中心",
                    "Remark": ""
                },
                {
                    "AcceptTime": "2015-03-11 09:53:48",
                    "AcceptStation": "呼和浩特市邮政速递物流分公司金川揽投部安排投递(投递员姓名:安长虹;联系电话:18047140142)",
                    "Remark": ""
                }
            ]
        },
        {
            "EBusinessID": "1109259",
            "OrderCode": "",
            "ShipperCode": "EMS",
            "LogisticCode": "5042260943004",
            "Success": true,
            "Reason": "",
            "State": "2",
            "CallBack": "0",
            "Traces": [
                {
                    "AcceptTime": "2015-03-07 15:26:09",
                    "AcceptStation": "深圳市横岗速递营销部已收件,(揽投员姓名:周宏彪;联系电话:13689537568)",
                    "Remark": ""
                },
                {
                    "AcceptTime": "2015-03-08 16:32:00",
                    "AcceptStation": "离开深圳市 发往广州市",
                    "Remark": ""
                },
                {
                    "AcceptTime": "2015-03-09 00:58:00",
                    "AcceptStation": "到达广东速递物流公司广航中心处理中心(经转)",
                    "Remark": ""
                },
                {
                    "AcceptTime": "2015-03-09 01:15:00",
                    "AcceptStation": "离开广州市 发往北京市(经转)",
                    "Remark": ""
                },
                {
                    "AcceptTime": "2015-03-10 05:20:00",
                    "AcceptStation": "到达北京黄村转运站处理中心(经转)",
                    "Remark": ""
                },
                {
                    "AcceptTime": "2015-03-10 11:59:00",
                    "AcceptStation": "离开北京市 发往廊坊市(经转)",
                    "Remark": ""
                },
                {
                    "AcceptTime": "2015-03-10 14:23:00",
                    "AcceptStation": "到达廊坊市处理中心(经转)",
                    "Remark": ""
                },
                {
                    "AcceptTime": "2015-03-11 08:55:00",
                    "AcceptStation": "离开廊坊市 发往保定市(经转)",
                    "Remark": ""
                }
            ]
        }
    ]
    }

货款状态:
{
"EBusinessID": "1109259",
"Count": "2",
"PushTime": "2015/3/11 16:21:06",
"Data": [
{
"EBusinessID": "1109259",
"OrderCode": "",
"ShipperCode": "EMS",
"LogisticCode": "5042260908504",
"Success": true,
"Reason": "",
"State": "2",
"CallBack": "0",
"OrderState":"1",
"AccountName":"张三",
"AccountTel":"13800000000",
"AccountNum":"0321"
},
{
"EBusinessID": "1109259",
"OrderCode": "",
"ShipperCode": "EMS",
"LogisticCode": "5042260908522",
"Success": true,
"Reason": "",
"State": "2",
"CallBack": "0",
"OrderState":"1",
"AccountName":"张三",
"AccountTel":"13800000011",
"AccountNum":"0321"
}
]
}

上一篇:java对接快递鸟单号查询自动识别接口,调用示例


下一篇:JMeter首金网自营项目-转义及数据库数据乱码的解决