当前位置: 首页 > 后端技术 > Python

python接入全国1200个快递查询和地图追踪接口,支持顺丰、京东、申通、圆通、韵达、中通、天天、百世、邮政、EMS

时间:2023-03-26 12:22:06 Python

速递100个python快递查询接口-一次性接入顺丰、京东、申通、圆通、韵达、中通、天天、百世、邮政、EMS等主流快递公司,只需要复制源代码修改部分参数到您的账户参数即可。本python界面演示目录内容包括:快递公司物流轨迹图界面、轨迹号智能识别快递公司界面、实时查询物流状态界面及物流状态提醒界面、电子面单打印界面。python快递查询接口示例仅用于展示快递100物流查询接口的对接过程。需要注册并获取APIkey。您可以点击访问https://api.kuaidi100.com申请免费接口。如需人工协助,可咨询快递100API技术人员,此项服务不收取任何费用。智能判断示例代码#coding=utf-8importrequestsclassKuaiDi100:def__init__(self):self.key=''#TODO客户授权密钥self.url='https://www.kuaidi100.com/autonumber/auto'#请求地址defauto_number(self,num):"""智能单号识别:paramnum:快递单号:return:requests.Response.text"""req_params={'key':self.key,'num':num}returnrequests.post(self.url,req_params).text#发送请求result=KuaiDi100().auto_number('YT9693083639795')print(result)电子面单打印界面#coding=utf-8importhashlibimportjsonimporttimeimportrequestsclassKuaiDi100:def__init__(self):self.key=''#TODO客户授权密钥self.secret=''#TODO电子票秘钥self.url='https://poll.kuaidi100.com/print/billparcels.do'#请求地址defsubmit(self,param,settings):"""发票打印:paramparam:模板配置信息和自定义参数信息:paramsettings:文件配置信息: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)}returnrequests.post(self.url,req_params).text#发送请求param={"tempid":"xxxx",#模板代码,通过中打印发票模板的配置信息得到"siid"管理后台":"xxxx",#打印设备码,通过打印机输出的设备码获取"callBackUrl":"https://www.baidu.com/fhd/callback",#打印状态交换地址"petName":"kd100",#自定义参数"recName":"Xiaobai",#自定义参数"recPhone":"10086",#自定义参数"payTime":"2021-01-1515:40:55",#SinceDefineparameter"expressName":"DebonExpress",#customparameter"printTime":"2021-01-1515:41:30",#customparameter"printCount":"1",#customparameter"地址":"广东省深圳市南山区金蝶软件园",#自定义参数"total":"21","remark":"购物小票为购物凭证,请妥善保管。如有疑问,请联系服务热线123456798",#自定义参数"img0":{#图片参数,添加"type":"code_128","content":"887921256577","width":350,"height":100},"tab0":[#表格参数,当有多个表格时,使用tab0,tab1,tab2等添加对象{"prodName":"thermalpaper","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",“价格”:“499”}]}设置={“pageWidth”:100,#纸张宽度,单位mm,默认值:100"pageHeight":180,#纸张高度,单位mm,继续打印纸张时,该字段设置为null或空字符串"margins":{#margin"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-8importhashlibimportjsonimportrequestsclassKuaiDi100:def__init__(self):self.key=''#TODO客户授权密钥self.customer=''#TODO查询公司号self.url='https://poll.kuaidi100.com/poll/maptrack.do'#请求地址defmap_track(self,com,num,phone,ship_from,ship_to,orderTime):"""快递查询地图track:paramcom:查询的快递公司代码,全部为小写:paramnum:查询的快递单号,订单号最大长度为32个字符:paramph一:收件人或寄件人的手机号码或固话(也可以填写后四位,如果是固话,请不要上传分机号):paramship_from:出发城市,省-市-区,可选,填写有助于提高签到状态判断的准确性,请尽量提供:paramship_to:目的地城市,省-市-区,可选,填写有助于提高签到-in状态判断的准确性,到达目的地后会增加监控频率,请尽量提供:paramorderTime:下单时间,格式为(yyyy-MM-ddHH:mm:ss)如:2020-12-1612: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:descendingorder(default),asc:ascendingorder'orderTime':orderTime}param_str=json.dumps(param)#转json串#签名加密,用于验证身份,按照param+key+customer的顺序MD5加密(注意字符串加密后要转为大写),不需要加“+”号sign=md.hexdigest().upper()request_data={'customer':self.customer,'param':param_str,'sign':sign}returnrequests.post(self.url,request_data).text#发送请求结果=快的100()。map_track('yuantong','YT9693083639795','','广东省江门市','广东省深圳市','2021-08-0120:04:44')print(result)物流轨迹界面#coding=utf-8importjsonimportrequestsclassKuaiDi100:def__init__(self):self.key=''#TODO客户端授权密钥self.url='https://poll.kuaidi100.com/poll'#请求地址defsubmit(self,com,num,phone,ship_from,ship_to):"""物流轨迹订阅:paramcom:快递公司代码:paramnum:快递单号:paramphone:收件人或发件人手机号码或固话(也可以填写最后四位,如果是固话,请不要上传分机号):paramship_from:出发城市,省-市-区,可选,它有帮助填写为了提高判断收货状态的准确性,请尽量提供:paramship_to:目的地城市,省-市-区,可选,填写有助于提高判断的准确性回执状态,到达目的地后监控频率会增加,请尽量提供:return:requests.Response.text"""param={'company':com,'number':num,'from':ship_from,'to':ship_to,'key':self.key,'parameters':{'callbackurl':'https://www.baidu.com/kd100/callback',#的地址回调接口如果需要在推送信息中返回自己的业务参数,可以使用回调地址在URL后拼接,例如le:https://www.baidu.com/kd100/callback?orderId=123'salt':None,#签名的随机字符串。32位自定义字符串。添加这个参数,然后push会增加标志的可靠性,为你的公司验证消息'resultv2':'1',#添加这个字段表示启用行政区域分析功能。0:禁用(默认),1:启用行政区域分析功能'autoCom':'0',#加入该字段并将该值设置为1表示智能判断单号所属公司的功能将启动.开通后company字段可以为空,即只传运单号(number字段),我方收到后会根据trackingnumber(即运单号)判断所属快递公司公司领域)。建议只在trackingnumber对应的快递公司(也就是公司的值)未知的情况下才启用该功能'interCom':'0',#添加该字段,并将该值设置为1,表示国际版已启用。启用后,如果订阅的单号(即number字段)属于国际单号,将返回出发国和目的国的单号查询信息。该功能暂时只支持邮政系统(国际邮政小包,EMS)。对于快递公司,如果trackingnumber被识别为非国际trackingnumber,即使加了这个字段,destResult元素组也不会返回'departureCountry':'',#出发国代码,最好提供thisvalueforinternationaltrackingnumberwithinterCom=1'departureCom':'',#发件国快递公司代码,最好为interCom=1'destinationCountry':'提供thisvalueforinternationaltrackingnumber:'',#目的国代码,国际单号最好提供此值,interCom=1Value'destinationCom':'',#目的国快递公司代码,国际单号withinterCom=1最好提供这个值'phone':phone}}req_params={'schema':'json',#查询公司号码'param':json.dumps(param)#parameterdata}返回请求。post(self.url,req_params).text#发送请求result=KuaiDi100().submit('yuantong','YT9693083639795','','江门市','深圳')print(result)物流轨迹实时查询接口#coding=utf-8importhashlibimportjsonimportrequestsclassKuaiDi100:def__init__(self):self.key=''#TODOcustomerauthorizationkeyself.customer=''#TODO查询公司号self.url='https://poll.kuaidi100.com/poll/query.do'#请求地址deftrack(self,com,num,phone,ship_from,ship_to):"""物流轨迹实时查询:paramcom:查询的快递公司代码,全部小写:paramnum:查询的快递单号,单号最大长度为32个字符:paramphone:收件人或发件人的手机号码或固定电话(也可以填写后四位,如果是固定电话,请不要上传分机号码):paramship_from:出发城市,省-city-district,optional,填写有助于提高签到状态判断的准确性,请尽量提供:paramship_to:目的地城市,province-city-district,optional,填写有助于提高签到状态判断的准确性,到达目的地后,监控频率会增加。请尽可能提供:return:requests.Response.text"""param={'com':com,'num':num,'phone':phone,'from':ship_from,'to':ship_to,'resultv2':'1',#添加该字段表示开启行政区分析功能,0:关闭(默认),1:开启行政区分析功能,2:开启行政区分析功能,返回department,purposeandcurrentcityinformation'show':'0',#返回数据格式0:json(默认),1:xml,2:html,3:text'order':'desc'#返回排序方式结果。desc:降序(默认),asc:升序}param_str=json.dumps(param)#转json串#签名加密,用于验证身份,按照param+key+customer的顺序进行MD5加密(注意加密后的string转换为大写),不需要“+”号upper()request_data={'customer':self.customer,'param':param_str,'sign':sign}returnrequests.post(self.url,request_data).text#发送请求result=KuaiDi100().track('yuantong','YT9693083639795','','广东省江门市','广东省深圳市')print(result)