Files
nosqlicursorv8/member_check.py
2025-02-09 22:02:44 +08:00

103 lines
3.5 KiB
Python

import requests
import json
from logger import logging
import urllib3
# 禁用 SSL 警告
urllib3.disable_warnings(urllib3.exceptions.InsecureRequestWarning)
class MemberChecker:
def __init__(self):
self.api_url = "https://cursorapi.nosqli.com/admin/api.member/check"
self.session = requests.Session()
# 设置会话级别的代理和验证选项
self.session.verify = False
def check_member(self, keyword):
"""
检查会员状态
Args:
keyword: 邮箱或订单号
Returns:
dict: 包含验证结果的字典,格式如下:
{
'is_valid': bool, # 是否是有效会员
'msg': str, # 提示消息
'expire_time': str, # 到期时间
'usage_limit': int, # 使用限制
'used_count': int, # 已使用次数
'email': str, # 会员邮箱
'order_id': str # 订单号
}
"""
try:
response = self.session.post(
self.api_url,
json={'keyword': keyword},
proxies={"http": None, "https": None} # 在请求时设置代理
)
data = response.json()
if data['code'] != 0:
return {
'is_valid': False,
'msg': data.get('msg', '验证失败'),
'expire_time': None,
'usage_limit': None,
'used_count': None,
'email': None,
'order_id': None
}
member_data = data['data']
return {
'is_valid': True,
'msg': data.get('msg', '验证通过'),
'expire_time': member_data.get('expire_time'),
'usage_limit': member_data.get('usage_limit'),
'used_count': member_data.get('used_count'),
'email': member_data.get('email'),
'order_id': member_data.get('order_id')
}
except Exception as e:
logging.error(f"会员验证失败: {str(e)}")
return {
'is_valid': False,
'msg': f"验证过程出错: {str(e)}",
'expire_time': None,
'usage_limit': None,
'used_count': None,
'email': None,
'order_id': None
}
def print_member_info(self, member_info):
"""打印会员信息"""
if member_info['is_valid']:
logging.info("\n=== 会员信息 ===")
logging.info(f"邮箱: {member_info['email']}")
logging.info(f"订单号: {member_info['order_id']}")
logging.info(f"到期时间: {member_info['expire_time']}")
logging.info(f"使用限制: {member_info['usage_limit']}")
logging.info(f"已使用次数: {member_info['used_count']}")
else:
logging.error(f"会员验证失败: {member_info['msg']}")
# 测试代码
if __name__ == "__main__":
checker = MemberChecker()
# 测试有效会员
print("\n测试有效会员:")
result = checker.check_member("12132ed@qq.com")
checker.print_member_info(result)
# 测试无效会员
print("\n测试无效会员:")
result = checker.check_member("invalid@example.com")
checker.print_member_info(result)