BigDataCenterAPI.py 1.9 KB

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