python实现快递鸟API查询接口 数据签名通用方法
为了方便朋友们使用python开发,封装了相关代码,让大家少踩坑。
注册快递鸟账号获取APIkey ID的流程就不说了,大家在百度搜索快递鸟就官网免费注册。
下面直接提供核心源代码
# 请求数据处理方法
def before_reqData(shipperCode, logisticCode):
"""请求报文"""
frs_reqData = {
"OrderCode": "", # 可为空
"ShipperCode": shipperCode,
"LogisticCode": logisticCode
}
# 数据转换为json格式
data = json.dumps(frs_reqData)
# 进行url编码
# 替换内容
reqData = quote(data).replace("%20%", "%")
return reqData
def data_sign(shipperCode, logisticCode):
"""签名datasign"""
frs_reqData = {
'OrderCode': '',
'ShipperCode': shipperCode,
'LogisticCode': logisticCode
}
APIKey = "554343b2-7252-439b-b4eb-1af42c8f2175"
# 请求内容(未编码) + APIKey
# MD5加密前去除空格
data = json.dumps(frs_reqData).replace(": ", ":").replace(", ", ",") + APIKey
# md5加密
sign_md5 = hashlib.md5(data.encode("utf-8")).hexdigest()
# Base64编码
data_sign = base64.b64encode(sign_md5.encode("utf-8")).decode("utf-8")
return data_sign
极兔速递快递单号查询信息如下:
2020-04-24 09:18:31【沧州市】【沧州运河区医专网点】正在派件
2020-04-24 09:10:37【沧州市】快件到达【沧州运河区医专网点】
2020-04-24 07:50:13【沧州市】快件离开【沧县集散点】已发往【沧州运河区医专网点】
2020-04-23 19:31:08【沧州市】快件到达【沧县集散点】
2020-04-23 17:40:04【沧州市】快件离开【沧州盐山网点】已发往【沧县集散点】
2020-04-23 17:39:28【沧州市】【沧州盐山网点】已收件
2020-04-23 10:27:16【沧州市】【沧州盐山网点】已取件
详细如下。一个名叫“Remi”的Python库,就是用来开发WebApp的。1.Remi库简介
Remi是一个用于Python应用程序的GUI库,它将应用程序的界面转换为HTML,以便在Web浏览器中呈现。严格地说,我们不能用Remi库来编写传统的网站,而只能将它当成Web形式的Tkinter库(Python最经典的图形界面库)来使用。如果要做网站,还是要老老实实学点前端知识,然后结合Python的Flask框架来开发。
2.Remi库的安装
Remi可以采用pip命令安装
3.Remi库的代码
运行这段代码后,浏览器会自动打开一个本地的网址,出现如下图所示的界面。将“127.0.0.1”换成IP地址,就能通过其他电脑、手机的浏览器来访问了。
点击“请点击这里”按钮,界面会发生变化,如下图所示。不用写复杂的JS代码,在Remi的支持下,网页交互就变得这么简单。如果需要了解更多关于Remi库的资源,可以访问github或者官方文档。
github地址:https://github.com/dddomodossola/remi
文档地址:https://remi.readthedocs.io/en/latest/
基于Remi编写基于Web的物联网应用程序,既然是编写物联网应用程序,那么肯定还需要安装siot库。这也是“虚谷物联”团队开发的Python库,因为MQTT的官方Python库(paho-mqtt)编写出来的代码冗长,不好理解,于是委托上海蘑菇云团队在paho-mqtt的基础上进行了新的封装。siot库可以通过pip命令来安装,命令如下:
pipinstallsiot