TelecomObject.py 2.1 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061
  1. # -*- encoding: utf-8 -*-
  2. """
  3. @File : TelecomObject.py
  4. @Time : 2024/1/11 10:40
  5. @Author : stephen
  6. @Email : zhangdongming@asj6.wecom.work
  7. @Software: PyCharm
  8. """
  9. import json
  10. import requests
  11. from requests import RequestException
  12. from Ansjer.config import CT_USER_ID, CT_PASSWORD, CT_SECRET_KEY, LOGGER
  13. from Object.utils.DesUtils import DesUtils
  14. class TelecomObject:
  15. def __init__(self):
  16. self.user_id = CT_USER_ID
  17. self.password = CT_PASSWORD
  18. self.secret_key = CT_SECRET_KEY
  19. self.key1 = CT_SECRET_KEY[0:3]
  20. self.key2 = CT_SECRET_KEY[3:6]
  21. self.key3 = CT_SECRET_KEY[6:9]
  22. self.session = requests.Session()
  23. def query_card_main_status(self, iccid):
  24. """
  25. 卡主状态查询接口
  26. :param iccid: 卡的ICCID号。
  27. :return: 包含卡状态的结果字典。
  28. :raises ValueError: 如果响应为空或HTTP请求失败。
  29. """
  30. try:
  31. if not iccid:
  32. raise ValueError("*****TelecomObject.query_card_main_status error****ICCID不能为空")
  33. url = 'http://api.ct10649.com:9001/m2m_ec/query.do'
  34. method = 'queryCardMainStatus'
  35. arr = [iccid, self.user_id, self.password, method]
  36. # 密码加密
  37. password_enc = DesUtils.str_enc(self.password, self.key1, self.key2, self.key3)
  38. sign = DesUtils.str_enc(DesUtils.natural_ordering(arr), self.key1, self.key2, self.key3)
  39. re_params = {'method': method, 'iccid': iccid,
  40. 'user_id': self.user_id,
  41. 'passWord': password_enc,
  42. 'sign': sign}
  43. response = self.session.get(url, params=re_params)
  44. if response.status_code != 200:
  45. raise ValueError(f"*****TelecomObject.query_card_main_status error HTTP请求失败,状态码: {response.status_code}")
  46. result = response.json()
  47. LOGGER.info(f'*****TelecomObject.query_card_main_status****iccid:{iccid},result:{result}')
  48. return result
  49. except RequestException:
  50. raise
  51. except json.JSONDecodeError:
  52. raise