200字范文,内容丰富有趣,生活中的好帮手!
200字范文 > python全国快递查询接口和电子面单打印接口 一次接入全国快递公司

python全国快递查询接口和电子面单打印接口 一次接入全国快递公司

时间:2023-12-25 10:44:36

相关推荐

python全国快递查询接口和电子面单打印接口 一次接入全国快递公司

快递100python快递查询接口-一次性接入顺丰、京东、申通、圆通、韵达、中通、天天、百世、邮政、EMS等主流快递公司,只需要复制源码,并将部分参数修改为您的账户参数即可。

此python接口demo目录内容包括:快递公司物流轨迹地图接口、单号智能识别快递公司接口、实时查询物流状态接口和订阅物流状态提醒接口、电子面单打印接口。python快递查询接口示例仅用于展示快递100物流查询接口的对接流程,其中的API密钥需要注册获取,您可点击访问接申请免费接口,如果需要人工帮助,可以咨询快递100API技术人员,此服务不收取任何费用。

智能判断示例代码

# coding = utf-8import requestsclass KuaiDi100:def __init__(self):self.key = '' # TODO 客户授权keyself.url = '/autonumber/auto' # 请求地址def auto_number(self, num):"""智能单号识别:param num: 快递单号:return: requests.Response.text"""req_params = {'key': self.key, 'num': num}return requests.post(self.url, req_params).text # 发送请求result = KuaiDi100().auto_number('YT9693083639795')print(result)

电子面单打印接口

# coding = utf-8import hashlibimport jsonimport timeimport requestsclass KuaiDi100:def __init__(self):self.key = '' # TODO 客户授权keyself.secret = '' # TODO 电子面单secretself.url = '/print/billparcels.do' # 请求地址def submit(self, param, settings):"""发货单打印:param param: 模板配置信息和自定义参数信息:param settings: 纸张配置信息:return: requests.Response.text"""timestamp = str(time.time())md = hashlib.md5()param_str = json.dumps(param)temp_sign = param_str + timestamp + self.key + self.secretmd.update(temp_sign.encode())sign = md.hexdigest().upper()req_params = {'method': 'billparcels','key': self.key,'t': timestamp,'sign': sign,'param': param_str,'settings': json.dumps(settings)}return requests.post(self.url, req_params).text # 发送请求param = {"tempid": "xxxx", # 模板编码,通过管理后台的打印发货单模板配置信息获取"siid": "xxxx", # 打印设备码,通过打印机输出的设备码进行获取"callBackUrl": "/fhd/callback", # 打印状态对调地址"petName": "kd100", # 自定义参数"recName": "小百", # 自定义参数"recPhone": "10086", # 自定义参数"payTime": "-01-15 15:40:55", # 自定义参数"expressName": "德邦快递", # 自定义参数"printTime": "-01-15 15:41:30", # 自定义参数"printCount": "1", # 自定义参数"address": "广东省深圳市南山区金蝶软件园", # 自定义参数"total": "21", "remark": "购物小票作为购物凭证,请妥善保管,您有任何疑问,请咨询服务热线 123456798", # 自定义参数"img0": {# 图片参数,多图片时用img0,img1,img2等追加"type": "code_128","content": "887921256577","width": 350,"height": 100},"tab0": [ # 表格参数,多表格时用tab0,tab1,tab2等追加对象{"prodName": "热敏纸","count": "5","specs": "76*130","unitPrice": "30","price": "150"},{"prodName": "热敏纸","count": "10","specs": "100*180","unitPrice": "50","price": "500"},{"prodName": "续打纸","count": "5","specs": "","unitPrice": "40","price": "200"},{"prodName": "云打印机","count": "1","specs": "二代","unitPrice": "499","price": "499"}]}settings = {"pageWidth": 100, # 纸张宽,单位mm,默认值:100"pageHeight": 180, # 纸张高,单位mm ,续打纸张时,该字段设置为null或空串"margins": {# 边距"top": 5, # 上边距,单位:mm,默认:0"bottom": 5, # 下边距,单位:mm,默认:0"left": 5, # 左边距,单位:mm,默认:0"right": 5 # 右边距,单位:mm,默认:0}}result = KuaiDi100().submit(param, settings)print(result)

# coding = utf-8import hashlibimport jsonimport requestsclass KuaiDi100:def __init__(self):self.key = '' # TODO 客户授权keyself.customer = '' # TODO 查询公司编号self.url = '/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)如:-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.customermd = 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', '', '广东省江门市', '广东省深圳市', '-08-01 20:04:44')print(result)

物流轨迹接口

# coding = utf-8import jsonimport requestsclass KuaiDi100:def __init__(self):self.key = '' # TODO 客户授权keyself.url = '/poll' # 请求地址def submit(self, com, num, phone, ship_from, ship_to):"""物流轨迹订阅:param com: 快递公司编码:param num: 快递单号:param phone: 收件人或寄件人的手机号或固话(也可以填写后四位,如果是固话,请不要上传分机号):param ship_from: 出发地城市,省-市-区,非必填,填了有助于提升签收状态的判断的准确率,请尽量提供:param ship_to: 目的地城市,省-市-区,非必填,填了有助于提升签收状态的判断的准确率,且到达目的地后会加大监控频率,请尽量提供:return: requests.Response.text"""param = {'company': com,'number': num,'from': ship_from,'to': ship_to,'key': self.key,'parameters': {'callbackurl': '/kd100/callback', # 回调接口的地址。如果需要在推送信息回传自己业务参数,可以在回调地址URL后面拼接上去,例如:/kd100/callback?orderId=123'salt': None, # 签名用随机字符串。32位自定义字符串。添加该参数,则推送的时候会增加sign给贵司校验消息的可靠性'resultv2': '1', # 添加此字段表示开通行政区域解析功能。0:关闭(默认),1:开通行政区域解析功能'autoCom': '0', # 添加此字段且将此值设为1,则表示开始智能判断单号所属公司的功能,开启后,company字段可为空,即只传运单号(number字段),我方收到后会根据单号判断出其所属的快递公司(即company字段)。建议只有在无法知道单号对应的快递公司(即company的值)的情况下才开启此功能'interCom': '0', # 添加此字段且将此值设为1,则表示开启国际版,开启后,若订阅的单号(即number字段)属于国际单号,会返回出发国与目的国两个国家的跟踪信息,本功能暂时只支持邮政体系(国际类的邮政小包、EMS)内的快递公司,若单号我方识别为非国际单,即使添加本字段,也不会返回destResult元素组'departureCountry': '', # 出发国家编码,interCom=1的国际单号最好提供该值'departureCom': '', # 出发国家快递公司的编码,interCom=1的国际单号最好提供该值'destinationCountry': '', # 目的国家编码,interCom=1的国际单号最好提供该值'destinationCom': '', # 目的国家快递公司的编码,interCom=1的国际单号最好提供该值'phone': phone}}req_params = {'schema': 'json', # 查询公司编号'param': json.dumps(param) # 参数数据}return requests.post(self.url, req_params).text # 发送请求result = KuaiDi100().submit('yuantong', 'YT9693083639795', '', '江门市', '深圳市')print(result)

物流轨迹实时查询接口

# coding = utf-8import hashlibimport jsonimport requestsclass KuaiDi100:def __init__(self):self.key = '' # TODO 客户授权keyself.customer = '' # TODO 查询公司编号self.url = '/poll/query.do' # 请求地址def track(self, com, num, phone, ship_from, ship_to):"""物流轨迹实时查询:param com: 查询的快递公司的编码,一律用小写字母:param num: 查询的快递单号,单号的最大长度是32个字符:param phone: 收件人或寄件人的手机号或固话(也可以填写后四位,如果是固话,请不要上传分机号):param ship_from: 出发地城市,省-市-区,非必填,填了有助于提升签收状态的判断的准确率,请尽量提供:param ship_to: 目的地城市,省-市-区,非必填,填了有助于提升签收状态的判断的准确率,且到达目的地后会加大监控频率,请尽量提供:return: requests.Response.text"""param = {'com': com,'num': num,'phone': phone,'from': ship_from,'to': ship_to,'resultv2': '1', # 添加此字段表示开通行政区域解析功能。0:关闭(默认),1:开通行政区域解析功能,2:开通行政解析功能并且返回出发、目的及当前城市信息'show': '0', # 返回数据格式。0:json(默认),1:xml,2:html,3:text'order': 'desc' # 返回结果排序方式。desc:降序(默认),asc:升序}param_str = json.dumps(param) # 转json字符串# 签名加密, 用于验证身份, 按param + key + customer 的顺序进行MD5加密(注意加密后字符串要转大写), 不需要“+”号temp_sign = param_str + self.key + self.customermd = 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().track('yuantong', 'YT9693083639795', '', '广东省江门市', '广东省深圳市')print(result)

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。