目的:
通過訂單號獲取訂單物流狀態。
實現方式:
通過快遞鳥的總api實現調用,快遞鳥做了所有快遞的兼容。
快遞鳥:
官方文檔:
http://www.kdniao.com/v2/API/Track.aspx
前提:
注冊賬戶,實名認證,拿到用戶id和API key,開通業務及時查詢。
封裝好的代碼:
import requests import base64 import hashlib import json def get_logistics_info(number, code): def get_dataSign(req_data, appKey): md5 = hashlib.md5() md5.update(req_data.encode('utf-8')) md5.update(appKey.encode('utf-8')) return base64.b64encode(md5.hexdigest().encode('utf-8')) api_key = '----快遞鳥的----' # 需要注冊完獲取 user_id = 快遞鳥的用戶id # 需要注冊完獲取 order_num = number # 運單編號 ShipperCode = code # 快遞公司編碼,這個是圓通的 url = 'http://api.kdniao.com/Ebusiness/EbusinessOrderHandle.aspx' order_data = { "ShipperCode": ShipperCode, "LogisticCode": order_num, } data = { "RequestData": json.dumps(order_data).encode('utf-8'), "EBusinessID": user_id, "RequestType": 1002, "DataSign": get_dataSign(json.dumps(order_data), api_key), } headers = { "Content-Type": "application/x-www-form-urlencoded;charset=utf-8", "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/76.0.3809.87 Safari/537.36", } response = requests.post(url=url, data=data, headers=headers) return response.content.decode('utf-8')
// 標紅部分記得重寫
調用演示:
效果:
注意:
1. 快遞公司編碼獲得,官方接口文檔獲取

2. 免費版,只能對(中通、圓通、申通)查詢,每天500次免費調用量