103 lines
3.5 KiB
Python
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) |