123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263 |
- import uuid
- import requests
- import json
- from datetime import datetime
- import message_pb2 as message
- import hashlib
- class HttpRequest(object):
- class InDate:
- def __init__(self, ParkId, PlateNo, dataTime, chnnId, Remake, licenseColorDict, InPicUrl, InPlateUrl,
- InRecordId):
- '''
- :param ParkId: 场ID
- :param PlateNo:车牌号
- :param dataTime:入场时间
- :param chnnId:通道ID
- :param Remake:备注
- :param licenseColorDict:车牌颜色
- :param InPicUrl:入场图片
- :param InPlateUrl:入场车牌特写图片
- :param InRecordId:入场流水号(唯一码)
- '''
- self.ParkId = ParkId
- self.PlateNo = PlateNo
- self.dateTime = dataTime
- self.chnnId = chnnId
- self.Remake = Remake
- self.licenseColorDict = licenseColorDict
- self.InPicUrl = InPicUrl
- self.InPlateUrl = InPlateUrl
- self.InRecordId = InRecordId
- class QueryData:
- def __init__(self, SerialNumber, ParkId):
- '''
- :param SerialNumber: 入场流水号(唯一码)
- :param ParkId:场ID
- '''
- self.SerialNumber = SerialNumber
- self.ParkId = ParkId
- class OutDate:
- def __init__(self, ParkId, PlateNo,InRecordId, dateTime, chnnId, Remake, licenseColorDict, OutPicUrl, OutPlateUrl):
- '''
- :param ParkId: 场ID
- :param PlateNo:车牌号
- :param InRecordId:入场流水号(唯一码)
- :param dateTime:入场时间
- :param chnnId:通道ID
- :param Remake:备注
- :param licenseColorDict:车牌颜色
- :param OutPicUrl: 出场图片
- :param OutPlateUrl:出场车牌特写图片
- '''
- self.ParkId = ParkId
- self.PlateNo = PlateNo
- self.InRecordId = InRecordId
- self.dateTime = dateTime
- self.chnnId = chnnId
- self.Remake = Remake
- self.licenseColorDict = licenseColorDict
- self.OutPicUrl = OutPicUrl
- self.OutPlateUrl = OutPlateUrl
- def __init__(self, msgId, AppId, time, sign, data):
- '''
- :param msgId: 消息ID,随机值
- :param AppId: AppId
- :param time: 时间
- :param sign:签名(msgId+AppId+time+私钥)进行md5小写
- :param data:数据结构体
- '''
- self.msgId = msgId
- self.AppId = AppId
- self.time = time
- self.sign = sign
- self.data = data.__dict__
- def get_request_data(park_table, param):
- hl = hashlib.md5()
- msgId = str(uuid.uuid1()) + '@' + park_table.car_number
- AppId = 'blbc5zkpyymaicd3'
- time = str(datetime.now().strftime('%Y-%m-%d %H:%M:%S'))
- sign = msgId + AppId + time+'anzs74aph8ac8dy6tj48t05js6zpkgx5'
- hl.update(sign.encode(encoding='utf-8'))
- sign = hl.hexdigest()
- if param == 'in':
- data = HttpRequest.InDate("2302221444266172014", park_table.car_number,
- str(datetime.now().strftime('%Y-%m-%d')),
- '2302221446265822050',
- park_table.car_number_info.plate_type,
- '1',
- park_table.car_number_info.plate_full_image,
- park_table.car_number_info.plate_clip_image, park_table.primary_key)
- elif param == 'query':
- data = HttpRequest.QueryData(park_table.primary_key, "2302221444266172014")
- elif param == 'out':
- data = HttpRequest.OutDate("2302221444266172014", park_table.car_number,
- park_table.primary_key,
- str(datetime.now().strftime('%Y-%m-%d')),
- '2302221729013462154',
- park_table.car_number_info.plate_type,
- '1',
- park_table.car_number_info.plate_full_image,
- park_table.car_number_info.plate_clip_image)
- request = HttpRequest(msgId, AppId, time,sign, data)
- return request.__dict__
- # http_park_request = {"msgId": "12345678901234567890123456789012@鄂A12345$park", # 32位唯一码 @ 车牌号 $ park
- # "AppId": "z5OZfJ83faYnpaL65FIRfEwLrST2y26f", # 固定值,收费系统制定
- # "time": "2023-02-10 17:33:30", # 入场时间,年-月-日 时:分:秒
- # "sign": "cdb34f24cf941e495e9467171341f3f3", # 签名 (msgid + appid + time + 秘钥)转MD5 小写
- # "data": {"SerialNumber": "20220210155926DA54SD4A5SD4DDD", # 32位唯一码, 存车 取车 查询 保持一致
- # "ParkId": "1000000000000000001", # 固定值,收费系统制定
- # "PlateNo": "闽D10001", # 车牌号,
- # "dateTime": "2023-02-07", # 入场时间,年-月-日 时:分:秒
- # "chnnId": "C1-1", # C1单元1号入口
- # "Remake": "", # 暂时不写,备注
- # "licenseColorDict": "", # 暂时不写, 车牌颜色
- # "InPicUrl": "", # 暂时不写,入场图片
- # "InPlateUrl": "" # 暂时不写,车牌图片特写
- # }
- # }
- # http_query_request = {
- # "msgId": "12321431232324353233123",
- # "AppId": "z5OZfJ83faYnpaL65FIRfEwLrST2y26f",
- # "parkId": "281219316345475072",
- # "time": "2023-02-10 09:05:00",
- # "sign": "cdb34f24cf941e495e9467171341f3f3",
- # "data": {"SerialNumber": "20220210155926DA54SD4A5SD4DDD",
- # "ParkId": "1000000000000000001"
- # }
- # }
- #
- # http_park_response = {
- # "Message": "入场成功",
- # "Tag": 1
- # }
- if __name__ == "__main__":
- in_url = 'http://110.80.15.100:9030/Api/CarInEntry'
- query_url = 'http://110.80.15.100:9030/Api/GetBill'
- out_url = 'http://110.80.15.100:9030/Api/CarOutEntry'
- park_table = message.park_table()
- park_table.car_number = '鄂A00003'
- park_table.unit_id = 31
- park_table.import_id = 1
- park_table.primary_key = '20230210155926DA54SD4A5SD4DDD'
- park_table.car_number_info.plate_color = '蓝色'
- park_table.car_number_info.plate_type = '蓝牌小汽车'
- park_table.car_number_info.plate_full_image = ''
- park_table.car_number_info.plate_clip_image = ''
- request = get_request_data(park_table,'in')
- print('发送入场请求:')
- print(request)
- try:
- resp = requests.post(in_url, json=request).json()
- print('接收入场反馈:')
- print(resp)
- print('\n')
- except Exception as e:
- print('向收费系统推送请求失败! ERROR:%s' % (str(e.args)))
- request = get_request_data(park_table,'query')
- print('发送查询账单请求:')
- print(request)
- try:
- resp = requests.post(query_url, json=request).json()
- print('接收查询账单反馈:')
- print(resp)
- print('\n')
- except Exception as e:
- print('向收费系统推送请求失败! ERROR:%s' % (str(e.args)))
- request = get_request_data(park_table,'out')
- print('发送出场请求:')
- print(request)
- try:
- resp = requests.post(out_url, json=request).json()
- print('接收出场反馈:')
- print(resp)
- except Exception as e:
- print('向收费系统推送请求失败! ERROR:%s' % (str(e.args)))
- # dict = {'kw': 'hello'}
- # try:
- # resp = requests.post('https://fanyi.baidu.com/sug', data=dict)
- # print(resp)
- # except Exception as e:
- # print('向收费系统推送请求失败! ERROR:%s' % (str(e.args)))
- # print(resp)
- # p_request.InRequest(msgId="12345678901234567890123456789012@鄂A12345$park",
- # AppId="z5OZfJ83faYnpaL65FIRfEwLrST2y26f", sign="cdb34f24cf941e495e9467171341f3f3",
- # SerialNumber="20220210155926DA54SD4A5SD4DDD", ParkId="1000000000000000001",
- # PlateNo="闽D10001", chnnId="C1-1")
- #
- # res = p_client.send_request(p_request)
- # if res is False:
- # print('请求失败!')
- '''
- word = input("输入您要翻译的单词:")
- url = "https://fanyi.baidu.com/sug" # 百度翻译接口
- dict = {"kw": word}
- # 发送的数据必须放到字典中,通过data发送
- resp = requests.post(url, data=dict)
- print(resp)
- print(resp.json()) # 将服务器返回的内容直接处理成json数据格式
- print(resp.text)
- print('---------------------------------------------')
- json_str = resp.json()
- print(json_str)
- python_str1 = json.dumps(json_str)
- print(python_str1)
- python_str2 = json.loads(python_str1)
- print(python_str2)
- '''
- '''
- url = 'http:#127.0.0.1:8099/Api/CarInEntry'
- postdata = http_park_request
- resp = requests.post(url, data=postdata)
-
- print(resp)
- print(resp.json()) #将服务器返回的内容直接处理成json数据格式
- print(resp.text)
- print('---------------------------------------------')
- json_dict = resp.json()
- print(json_dict)
- python_str1 = json.dumps(json_str)
- print(python_str1)
- python_str2 = json.loads(python_str1)
- print(python_str2)
- print('---------------------------------------------')
-
-
-
- if 'Message' in json_str.keys():
- response_message = json_str['Message']
- print(response_message)
- else:
- response_message = ''
-
- if 'Tag' in json_str.keys():
- response_tag = json_str['Tag']
- print(response_tag)
- else:
- response_tag = 0
-
- '''
|