12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667 |
- # -*- encoding: utf-8 -*-
- """
- @File : WXTechObject.py
- @Time : 2023/5/6 15:28
- @Author : stephen
- @Email : zhangdongming@asj6.wecom.work
- @Software: PyCharm
- """
- import hashlib
- import json
- import random
- import time
- import requests
- from Ansjer.config import WX_TECH_URL, WX_TECH_APP_KEY, TWX_TECH_SECRET
- from Object.UnicomObject import UnicomObjeect
- class WXTechObject:
- def __init__(self):
- self.headers = {'content-type': 'application/json;charset=utf-8'}
- @staticmethod
- def getSign(secret, **data):
- dict_2 = dict(sorted(data.items(), key=lambda item: item[0], reverse=False))
- data_list = []
- for item in dict_2.items():
- if item[0] and item[1]:
- data_list.append("{}={}".format(item[0], item[1]))
- sign_param = '&'.join(data_list)
- push_key = '&secret={}'.format(secret)
- param = sign_param + push_key
- return hashlib.sha1(param.encode("utf-8")).hexdigest().upper()
- @staticmethod
- def get_system_params():
- """
- 请求接口必传系统参数
- """
- return {
- 'appkey': WX_TECH_APP_KEY,
- 'nonce': int(''.join(str(random.choice(range(10))) for _ in range(5))),
- 'timestamp': int(time.time()),
- }
- def get_cards_info(self, **params):
- """
- 根据卡号,获取单卡信息及流量使用信息
- @param params: iccid、operator
- @return: 卡信息
- """
- url = WX_TECH_URL + '/api/v2/card/getCardsInfo'
- # 系统参数
- data = WXTechObject().get_system_params()
- params = dict(data, **params)
- # 合并参数后进行升序加密得到sign
- sign = WXTechObject.getSign(TWX_TECH_SECRET, **params)
- params['sign'] = sign
- response = requests.post(url, data=json.dumps(params), headers=self.headers)
- return UnicomObjeect().get_text_dict(response)
- if __name__ == '__main__':
- pass
- # data = {'iccid': '8986112128003439900', 'operator': 3}
- # print(WXTechObject().get_cards_info(**data))
|