import requests,json,time,random,hashlib import string def api_request01(url,passid,serviceid,passtoken,jsons1,query,decoder='utf8'): signTime = str(GetTime()//1000) nonce = GetNonce(5) sign = GetSign(signTime,nonce,passtoken) headers = { 'Content-Type':'application/json', 'x-tif-signature':sign, 'x-tif-timestamp':signTime, 'x-tif-nonce':nonce, 'x-tif-paasid':passid, 'x-tif-serviceId':serviceid } query_timestamp = str(GetTime()) jsons = { "system_id": GetKwargs(jsons1, 'system_id'), "vender_id": GetKwargs(jsons1, 'vender_id'), "department_id": GetKwargs(jsons1, 'department_id'), "query_timestamp": query_timestamp, "UID": GetNonce(5), "query": query, "audit_info": { "operator_id": GetKwargs(jsons1, 'operator_id'), "operator_name": GetKwargs(jsons1, 'operator_name'), "query_object_id": GetKwargs(query, 'SFZH'), "query_object_id_type": '01', "item_id": GetKwargs(jsons1, 'item_id'), "item_code": GetKwargs(jsons1, 'item_code'), "item_sequence": GetKwargs(jsons1, 'item_sequence'), "terminal_info": GetKwargs(jsons1, 'terminal_info'), "query_timestamp": query_timestamp } } # print(url,headers,jsons) request = requests.post(url=url,headers=headers,json=jsons) result = request.text.encode(decoder) return result def GetSign(signTime,nonce,passtoken): data = signTime+passtoken+nonce+signTime return hashlib.sha256(data.encode('utf-8')).hexdigest() def GetNonce(length): characters = string.ascii_letters + string.digits # 随机选择字符集的长度个字符 random_string = ''.join(random.choice(characters) for _ in range(length)) return random_string def GetTime(): return int(time.time()*1000) def GetKwargs(dic,key): resu = 'xxx' if dic.__contains__(key): resu = dic[key] return resu