Python SDK 示例
import hashlib
import time
import requests
class TCZKApi:
def __init__(self, base_url: str, agent_id: str, secret: str):
self.base_url = base_url.rstrip('/')
self.agent_id = agent_id
self.secret = secret
def _make_sign(self, times: str) -> str:
"""生成签名"""
sign_str = f"id={self.agent_id}&secret={self.secret}×={times}"
return hashlib.md5(sign_str.encode()).hexdigest().upper()
def _get(self, endpoint: str, params: dict = None) -> dict:
"""发送GET请求"""
times = str(int(time.time()))
sign = self._make_sign(times)
request_params = {
'id': self.agent_id,
'times': times,
'sign': sign,
}
if params:
request_params.update(params)
url = f"{self.base_url}{endpoint}"
response = requests.get(url, params=request_params, timeout=30)
return response.json()
def get_balance(self) -> dict:
"""查询余额"""
return self._get('/hdiot/api/v1/agentapi/user')
def get_flow(self, cardno: str) -> dict:
"""查询流量"""
return self._get('/hdiot/api/v1/agentapi/flow', {'cardno': cardno})
def get_real_name(self, cardno: str) -> dict:
"""查询实名信息"""
return self._get('/hdiot/api/v1/agentapi/getcertinfo', {'cardno': cardno})
def stop(self, cardno: str) -> dict:
"""卡板停机"""
return self._get('/hdiot/api/v1/agentapi/stop', {'cardno': cardno})
def start(self, cardno: str) -> dict:
"""卡板复机"""
return self._get('/hdiot/api/v1/agentapi/start', {'cardno': cardno})
def refresh(self, cardno: str) -> dict:
"""卡板刷新"""
return self._get('/hdiot/api/v1/agentapi/refresh', {'cardno': cardno})
def order(self, cardno: str, package_id: str, orderno: str, iseffect: int = 0) -> dict:
"""
订购套餐
:param cardno: 卡号
:param package_id: 套餐ID
:param orderno: 订单号
:param iseffect: 生效方式 0=立即生效 1=次月生效
"""
return self._get('/hdiot/api/v1/agentapi/order', {
'cardno': cardno,
'packagelist_id': package_id,
'orderno': orderno,
'iseffect': str(iseffect),
})
if __name__ == '__main__':
# 初始化API客户端
api = TCZKApi(
base_url='http://your-api-server.com',
agent_id='your-agent-id',
secret='your-agent-secret'
)
# 查询余额
result = api.get_balance()
print('余额:', result)
# 查询流量
result = api.get_flow('card-number')
print('流量:', result)
# 查询实名信息
result = api.get_real_name('card-number')
print('实名:', result)
# 卡板停机
result = api.stop('card-number')
print('停机:', result)
# 卡板复机
result = api.start('card-number')
print('复机:', result)
# 订购套餐
result = api.order('card-number', 'package-id', 'order-no', 0)
print('订购:', result)