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)