Nav apraksta

maptrack.py 2.2KB

    # -*- coding: utf-8 -*-' import hashlib import json import requests class KuaiDi100: def __init__(self): self.key = '' # TODO 客户授权key self.customer = '' # TODO 查询公司编号 self.url = 'https://poll.kuaidi100.com/poll/maptrack.do' # 请求地址 def map_track(self, com, num, phone, ship_from, ship_to, orderTime): """ 快递查询地图轨迹 :param com: 查询的快递公司的编码,一律用小写字母 :param num: 查询的快递单号,单号的最大长度是32个字符 :param phone: 收件人或寄件人的手机号或固话(也可以填写后四位,如果是固话,请不要上传分机号) :param ship_from: 出发地城市,省-市-区,非必填,填了有助于提升签收状态的判断的准确率,请尽量提供 :param ship_to: 目的地城市,省-市-区,非必填,填了有助于提升签收状态的判断的准确率,且到达目的地后会加大监控频率,请尽量提供 :param orderTime: 订单下单时间,格式为(yyyy-MM-dd HH:mm:ss)如:2020-12-16 12:59:59 :return: requests.Response.text """ param = { 'com': com, 'num': num, 'phone': phone, 'from': ship_from, 'to': ship_to, 'show': '0', # 返回数据格式。0:json(默认),1:xml,2:html,3:text 'order': 'desc', # 返回结果排序方式。desc:降序(默认),asc:升序 'orderTime': orderTime } param_str = json.dumps(param) # 转json字符串 # 签名加密, 用于验证身份, 按param + key + customer 的顺序进行MD5加密(注意加密后字符串要转大写), 不需要“+”号 temp_sign = param_str + self.key + self.customer md = hashlib.md5() md.update(temp_sign.encode()) sign = md.hexdigest().upper() request_data = {'customer': self.customer, 'param': param_str, 'sign': sign} return requests.post(self.url, request_data).text # 发送请求 result = KuaiDi100().map_track('yuantong', 'YT9693083639795', '', '广东省江门市', '广东省深圳市', '2021-08-01 20:04:44') print(result)