BigDataCenterAPI.py 2.0 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455
  1. import requests,json,time,random,hashlib
  2. import string
  3. def api_request01(url,passid,serviceid,passtoken,jsons1,query,decoder='utf8'):
  4. signTime = str(GetTime()//1000)
  5. nonce = GetNonce(5)
  6. sign = GetSign(signTime,nonce,passtoken)
  7. headers = {
  8. 'Content-Type':'application/json',
  9. 'x-tif-signature':sign,
  10. 'x-tif-timestamp':signTime,
  11. 'x-tif-nonce':nonce,
  12. 'x-tif-paasid':passid,
  13. 'x-tif-serviceId':serviceid
  14. }
  15. query_timestamp = str(GetTime())
  16. jsons = {
  17. "system_id": GetKwargs(jsons1, 'system_id'),
  18. "vender_id": GetKwargs(jsons1, 'vender_id'),
  19. "department_id": GetKwargs(jsons1, 'department_id'),
  20. "query_timestamp": query_timestamp,
  21. "UID": GetNonce(5),
  22. "query": query,
  23. "audit_info": {
  24. "operator_id": GetKwargs(jsons1, 'operator_id'),
  25. "operator_name": GetKwargs(jsons1, 'operator_name'),
  26. "query_object_id": GetKwargs(query, 'SFZH'),
  27. "query_object_id_type": '01',
  28. "item_id": GetKwargs(jsons1, 'item_id'),
  29. "item_code": GetKwargs(jsons1, 'item_code'),
  30. "item_sequence": GetKwargs(jsons1, 'item_sequence'),
  31. "terminal_info": GetKwargs(jsons1, 'terminal_info'),
  32. "query_timestamp": query_timestamp
  33. }
  34. }
  35. # print(url,headers,jsons)
  36. request = requests.post(url=url,headers=headers,json=jsons)
  37. result = request.text.encode(decoder)
  38. return result
  39. def GetSign(signTime,nonce,passtoken):
  40. data = signTime+passtoken+nonce+signTime
  41. return hashlib.sha256(data.encode('utf-8')).hexdigest()
  42. def GetNonce(length):
  43. characters = string.ascii_letters + string.digits
  44. # 随机选择字符集的长度个字符
  45. random_string = ''.join(random.choice(characters) for _ in range(length))
  46. return random_string
  47. def GetTime():
  48. return int(time.time()*1000)
  49. def GetKwargs(dic,key):
  50. resu = 'xxx'
  51. if dic.__contains__(key):
  52. resu = dic[key]
  53. return resu