目前快遞查詢接口有兩種方式可以對接,一是和順豐、圓通、中通、天天、韻達、德邦這些快遞公司一一對接接口,二是和快遞鳥這樣第三方集成接口一次性對接多家常用快遞。第一種耗費時間長,但是是直接和快遞公司合作,第二種雖然是間接對接,但是對接簡便,對后期的接口維護可以省很多時間和人力成本。
集成接口還有其他公司提供,有其他需要可以去找,快遞鳥其實能滿足電商、ERP系統商這些企業需求了。這里就以快遞鳥為例說說對接方法。
快遞鳥物流查詢接口有免費和收費版本,對接周期大概在一天左右,他們有寫好的demo,可以直接使用。
一.即時查詢接口(免費)
1. 接口規則
(1)、查詢接口支持按照運單號查詢(單個查詢,並發不超過10個/S)。
(2)、指定的物流運單號選擇相應的快遞公司編碼,格式不對或則編碼錯誤都會返失敗的信息。如EMS物流單號應選擇快遞公司編碼(EMS)
(3)、返回的物流跟蹤信息按照發生的時間升序排列。
(4)、接口指令1002。
(5)、請求地址:http://api.kdniao.cc/Ebusiness/EbusinessOrderHandle.aspx
2. 系統級和應用級輸入參數
系統級輸入參數 |
類型 |
應用級輸入參數 |
必須要求 |
說明 |
|
RequestData |
String |
OrderCode |
O |
訂單編號 |
請求內容,JSON格式,和DataType一致 |
ShipperCode |
R |
快遞公司編碼 |
|||
LogisticCode |
R |
物流單號 |
|||
EBusinessID |
String |
|
R |
電商ID |
|
RequestType |
String |
R |
請求指令類型:1002 |
||
DataSign |
String |
R |
數據內容簽名 |
||
DataType |
String |
R |
請求、返回數據類型: 2-json; |
3. 返回結果參數
參數名稱 |
類型 |
必須要求 |
說明 |
EBusinessID |
String |
R |
電商用戶ID |
OrderCode |
String |
O |
訂單編號 |
ShipperCode |
String |
R |
快遞公司編碼 |
LogisticCode |
String |
R |
物流運單號 |
CallBack |
String |
O |
用戶標識 |
Success |
Bool |
R |
成功與否 |
Reason |
String |
O |
失敗原因 |
State |
String |
R |
物流狀態: 0-無軌跡 2-在途中,3-簽收,4-問題件 |
Traces/物流軌跡詳情 |
|||
AcceptTime |
String |
R |
時間 |
AcceptStation |
String |
R |
描述 |
Remark |
String |
O |
備注 |
4. 示例
//請求示例
{ "OrderCode": "", "ShipperCode": "SF", "LogisticCode": "118650888018" }
//返回示例
//沒有物流軌跡的 { "EBusinessID": "1109259", "Traces": [], "OrderCode": "", "ShipperCode": "SF", "LogisticCode": "118461988807", "Success": true, "Reason": null } //有物流軌跡的 { "EBusinessID": "1109259", "OrderCode": "", "ShipperCode": "SF", "LogisticCode": "118461988807", "Success": true, "CallBack":"", "State": 3, "Reason": null, "Traces": [ { "AcceptTime": "2014/06/25 08:05:37", "AcceptStation": "正在派件..(派件人:鄧裕富,電話:18718866310)[深圳 市]", "Remark": null }, { "AcceptTime": "2014/06/25 04:01:28", "AcceptStation": "快件在 深圳集散中心 ,准備送往下一站 深圳 [深圳市]", "Remark": null }, { "AcceptTime": "2014/06/25 01:41:06", "AcceptStation": "快件在 深圳集散中心 [深圳市]", "Remark": null }, { "AcceptTime": "2014/06/24 20:18:58", "AcceptStation": "已收件[深圳市]", "Remark": null }, { "AcceptTime": "2014/06/24 20:55:28", "AcceptStation": "快件在 深圳 ,准備送往下一站 深圳集散中心 [深圳市]", "Remark": null }, { "AcceptTime": "2014/06/25 10:23:03", "AcceptStation": "派件已簽收[深圳市]", "Remark": null }, { "AcceptTime": "2014/06/25 10:23:03", "AcceptStation": "簽收人是:已簽收[深圳市]", "Remark": null } ] }
二.物流跟蹤接口(免費)
2.1請求接口
物流跟蹤接口和即時查詢接口的區別:
查詢次數-物流跟蹤接口不限次數,即時查詢接口每天只能查詢3000次
接口使用-物流跟蹤接口使用訂閱單號異步推送的方式,就是如有物流軌跡更新,則推送給用戶,后期用戶需要查詢的時候調用本地數據庫就可以了,而即時查詢接口是即時返回的方式,就是請求一次,返回一次
1. 接口規則
(1)、訂單接收的信息(分給了的網點,業務員的信息),會通過推送接口推給客戶(訂閱並發不超過30次/S)客戶需要按要求實現接口。
(2)、僅支持Json格式。
(3)、請求指令1008。
(4)、測試接口地址:http://testapi.kdniao.cc:8081/api/dist
(5)、聯調通過后請更換為正式地址:http://api.kdniao.cc/api/dist
(6)、分發及訂閱接口需要客戶方實現回調接口,回調RequestType(1008)
2. 系統級和應用級輸入參數
系統級輸入參數 |
應用級輸入參數 |
類型 |
是否必須 |
描述 |
||
RequestData(必填參數,請求內容,JSON格式,須和DataType一致)) |
CallBack |
String |
O |
用戶自定義回調信息 |
||
MemberID |
String |
O |
會員標識(備用字段) |
|||
WareHouseID |
String |
O |
倉庫標識(備用字段) |
|||
CustomerName |
String |
O |
電子面單客戶賬號 (與快遞網點申請) |
|||
CustomerPwd |
String |
O |
電子面單密碼 |
|||
SendSite |
String |
O |
收件網點標識 |
|||
ShipperCode |
String |
R |
快遞公司編碼 |
|||
LogisticCode |
String |
R |
快遞單號 |
|||
OrderCode |
String |
O |
訂單編號 |
|||
MonthCode |
String |
O |
月結編碼 |
|||
PayType |
Int |
O |
郵費支付方式: 1-現付,2-到付,3-月結,4-第三方支付 |
|||
ExpType |
String |
O |
快遞類型:1-標准快件 |
|||
Cost |
Double |
O |
寄件費(運費) |
|||
OtherCost |
Double |
O |
其他費用 |
|||
Receiver |
Company |
String |
O |
收件人公司 |
||
Name |
String |
O |
收件人 |
|||
Tel |
String |
O |
電話 |
|||
Mobile |
String |
O |
手機 |
|||
PostCode |
String |
O |
收件人郵編 |
|||
ProvinceName |
String |
O |
收件省(如廣東省,不要缺少“省”) |
|||
CityName |
String |
O |
收件市(如深圳市,不要缺少“市”) |
|||
ExpAreaName |
String |
O |
收件區(如福田區,不要缺少“區”或“縣”) |
|||
Address |
String |
O |
收件人詳細地址 |
|||
Sender |
Company |
String |
O |
發件人公司 |
||
Name |
String |
O |
發件人 |
|||
Tel |
String |
O |
發件人電話 |
|||
Mobile |
String |
O |
發件人手機 |
|||
PostCode |
String |
O |
發件人郵編 |
|||
ProvinceName |
String |
O |
發件省(如廣東省,不要缺少“省”) |
|||
CityName |
String |
O |
發件市(如深圳市,不要缺少“市”) |
|||
ExpAreaName |
String |
O |
發件區(如福田區,不要缺少“區”或“縣”) |
|||
Address |
String |
O |
發件詳細地址 |
|||
StartDate |
String |
O |
上門取貨時間段: "yyyy-MM-dd HH:mm:ss"格式化,本文中所有時間格式相同 |
|||
EndDate |
String |
O |
||||
Weight |
Double |
O |
物品總重量kg |
|||
Quantity |
Int |
O |
件數/包裹數 |
|||
Volume |
Double |
O |
物品總體積m3 |
|||
Remark |
String |
O |
備注 |
|||
IsNotice |
Int |
O |
是否分發到快遞公司:1-不分發;0-分發.默認為0 |
|||
IsSendMessage |
Int |
O |
是否訂閱短信 0-不需要;1-需要 |
|||
AddService |
Name |
String |
0 |
|||
Value |
String |
0 |
增值服務值 |
|||
CustomerID |
String |
0 |
客戶標識(選填) |
|||
Commodity |
GoodsName |
String |
O |
商品名稱 |
||
GoodsCode |
String |
O |
商品編碼 |
|||
Goodsquantity |
Int |
O |
件數 |
|||
GoodsPrice |
Double |
O |
商品價格 |
|||
GoodsWeight |
Double |
O |
商品重量kg |
|||
GoodsDesc |
String |
O |
商品描述 |
|||
GoodsVol |
Double |
O |
商品體積m3 |
|||
EBusinessID |
|
String |
R |
商戶ID |
||
RequestType |
String |
R |
請求指令類型:1008 |
|||
DataSign |
String |
R |
數據內容簽名 |
|||
DataType |
String |
R |
請求、返回數據類型:2-json; |
3. 返回結果參數(同步返回是否調用成功)
參數名稱 |
類型 |
必須要求 |
說明 |
EBusinessID |
String |
R |
電商用戶ID |
UpdateTime |
String |
R |
時間 |
Success |
Bool |
R |
成功與否:true,false |
Reason |
String |
O |
失敗原因 |
EstimatedDeliveryTime |
String |
O |
訂單預計到貨時間yyyy-mm-dd |
4. 調用示例
//請求示例
{ "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":"書本" } ] }
//返回示例
{ "EBusinessID": "1151847", "UpdateTime": "2016-08-09 16:42:38", "Success": true, "Reason": "" "EstimatedDeliveryTime":"2016-8-12" }
2.2接收接口
這個是用戶在訂閱單號成功且有物流軌跡更新后,快遞鳥的推送
客戶通過下單、訂閱接口,把運單號在快遞鳥系統訂閱。運單物流信息有更新,快遞鳥通過推送接口把更新的信息推送給客戶。推送接口由用戶按照快遞鳥規則實現。商戶開放接口,快遞鳥定時將最新的物流軌跡推送到商戶平台。
優點:客戶不需要關注軌跡變化,一旦有更新,快遞鳥自動推送。
缺點:對客戶的服務器性能有所要求,快遞鳥定時請求接口,對客戶的服務器有一定的影響,客戶服務器異常將接受不到最新數據。
快遞鳥推送接口根據業務不同,會根據RequestType的分類推送不同的數據,用戶需對推送的數據進行分類保存。原推送接口無需變化,快遞鳥會根據推送版本進行推送。
1. 接口規則
(1)、客戶服務器必須穩定,並且有一定的接受數據能力(需要在5S內給快遞鳥返回成功示例,超時會判斷推送失敗)。快遞鳥通過多線程推送物流信息給客戶。
(2)、客戶需要按快遞鳥要求開發接口,保證信息的正常接收。客戶接數據后,存儲並馬上返回接收響應。如果客戶對數據進行處理,再做出響應。這會造成網絡超時,傳輸效率低下。
(3)、主動推送時物流信息接收接口由客戶提供,接口必須按照快遞鳥的要求實現。
(4)、客戶提供接口地址,用戶登陸用戶管理后台-----調試平台-----推送接口進行測試---(成功返回示例后)才可以配置。
(5)、接口只支持Json數據格式。
(6)、POST方式請求。
2. 系統級和應用級輸入參數
系統級輸入參數 |
應用級輸入參數 |
類型 |
必須要求 |
說明 |
|
RequestData |
EBusinessID |
String |
R |
用戶電商ID |
推送數據經url轉碼utf-8 |
PushTime |
推送時間 |
||||
Count |
推送物流單號軌跡個數 |
||||
Data |
推送物流單號軌跡集合 |
||||
RequestType |
|
String |
R |
101-軌跡查詢結果, 107-貨款狀態 |
|
DataSign |
String |
R |
數據內容簽名(把(請求內容(未編碼)+AppKey)進行MD5加密,然后Base64編碼) |
3. 訂閱查詢結果(RequestType:101)
通過軌跡查詢(訂閱查詢)接口訂閱到快遞鳥的數據,快遞鳥推送時,會將推送的RequestType的值置為101,同時返回下列數據
參數名稱 |
類型 |
必須要求 |
說明 |
|
Data |
EBusinessID |
String |
O |
電商用戶ID |
OrderCode |
String |
O |
訂單編號 |
|
ShipperCode |
String |
R |
快遞公司編碼 |
|
LogisticCode |
String |
R |
物流運單號 |
|
Success |
Bool |
R |
成功與否 |
|
Reason |
String |
O |
失敗原因 |
|
State |
String |
R |
物流狀態: 0-無軌跡 2-在途中 3-簽收 4-問題件 |
|
CallBack |
String |
O |
訂閱接口的Bk值 |
|
Traces |
String |
R |
物流軌跡詳情 |
|
EstimatedDeliveryTime |
String |
O |
預計到達時間yyyy-mm-dd |
|
PickerInfo |
Object |
O |
收件員信息 |
|
SenderInfo |
Object |
O |
派件員信息 |
注:通過訂單分發與電子面單接口自動訂閱的運單,會返回預計達到時間,收派件人員網點信息,當前快件所在省市等字段
參數名稱 |
類型 |
必須要求 |
說明 |
|
Traces |
AcceptTime |
String |
R |
時間 |
AcceptStation |
String |
R |
描述 |
|
Remark |
String |
O |
備注 |
3. 訂閱查詢(增值版)結果(RequestType:102)
這個是增值收費項,不想用收費的不支付就不會有這個服務,通過軌跡查詢(訂閱查詢)接口訂閱到快遞鳥的數據,快遞鳥推送時,會將推送的RequestType的值置為102,同時返回下列數據
參數名稱 |
類型 |
必須要求 |
說明 |
|
Date |
EBusinessID |
String |
O |
電商用戶ID |
OrderCode |
String |
O |
訂單編號 |
|
ShipperCode |
String |
R |
快遞公司編碼 |
|
LogisticCode |
String |
R |
物流運單號 |
|
Success |
Bool |
R |
成功與否 |
|
Reason |
String |
O |
失敗原因 |
|
State |
String |
R |
物流狀態: 0-無軌跡 2-在途中 3-簽收 4-問題件 |
|
StateEx |
String |
O |
增值物流狀態: 1-已攬收 2-在途中 201-到達派件城市 202-派件中 211-已放入快遞櫃或驛站 3-已簽收 311-已取出快遞櫃或驛站 4-問題件 401-發貨無信息 402-超時未簽收 403-超時未更新 404-拒收(退件) 412-快遞櫃或驛站超時未取 |
|
Location |
String |
O |
當前城市 |
|
CallBack |
String |
O |
訂閱接口的Bk值 |
|
Traces |
String |
R |
物流軌跡詳情 |
|
EstimatedDeliveryTime |
String |
O |
預計到達時間yyyy-mm-dd |
|
PickerInfo |
Object |
O |
收件員信息 |
|
SenderInfo |
Object |
O |
派件員信息 |
注:通過訂單分發與電子面單接口自動訂閱的運單,會返回預計達到時間,收派件人員網點信息,當前快件所在省市等字段
參數名稱 |
類型 |
必須要求 |
說明 |
|
Traces |
AcceptTime |
String |
R |
時間 |
AcceptStation |
String |
R |
描述 |
|
Location |
String |
O |
當前城市 |
|
Action |
String |
O |
當前狀態 |
|
Remark |
String |
O |
備注 |
4. 貨款狀態(RequestType:107)
用戶通過電子面單使用快遞鳥貨到付款等金融服務時,快遞鳥會將該訂單的金融狀態通過接口推送給用戶。
參數名稱 |
類型 |
必須要求 |
說明 |
|
Response |
EBusinessID |
String |
O |
電商用戶ID |
OrderCode |
String |
O |
訂單編號 |
|
ShipperCode |
String |
R |
快遞公司編碼 |
|
LogisticCode |
String |
R |
物流運單號 |
|
Success |
Bool |
R |
成功與否 |
|
Reason |
String |
O |
失敗原因 |
|
State |
String |
R |
物流狀態: 0-無軌跡 2-在途中 3-簽收 4-問題件 |
|
CallBack |
String |
O |
訂閱接口的Bk值 |
|
OrderState |
String |
O |
訂單貨款狀態: 1-待出款; 2-已出款; 3-已收款 |
|
AccountName |
String |
O |
返款銀行卡開戶人(例:**偉、*佳) |
|
AccountTel |
String |
O |
返款銀行卡手機末四位 |
|
AccountNum |
String |
O |
返款銀行卡末四位 |
注:通過訂單分發與電子面單接口自動訂閱的運單,會返回預計達到時間,收派件人員網點信息,當前快件所在省市等字段
4. 返回結果參數
參數名稱 |
類型 |
必須要求 |
說明 |
EBusinessID |
String |
R |
用戶ID |
UpdateTime |
String |
R |
時間 |
Success |
String |
R |
成功與否 |
Reason |
String |
O |
失敗原因 |
5. 示例
//快遞鳥請求接收接口示例
訂閱查詢結果示例: { "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" } ] }
//用戶接收后返回
{ "EBusinessID": "1109259", "UpdateTime": "2015-03-11 16: 26: 11", "Success": true, "Reason": "" }