From 6364d43c90d1ad0e91fe5cced7edfaaf55f50951 Mon Sep 17 00:00:00 2001 From: kyx236 Date: Sun, 25 Jan 2026 06:16:01 +0800 Subject: [PATCH] 4 --- auto_gpt_team.py | 44 +++++++++++++++++++++++++++----------------- 1 file changed, 27 insertions(+), 17 deletions(-) diff --git a/auto_gpt_team.py b/auto_gpt_team.py index ab95a8f..bd56d48 100644 --- a/auto_gpt_team.py +++ b/auto_gpt_team.py @@ -1094,41 +1094,51 @@ def run_payment_flow(page, email, step_callback=None): step_cb("等待支付处理...") log_status("等待", "等待支付处理(超时90秒)...") - # 使用轮询方式等待支付成功,而不是 url_change - # 因为 url_change 在 URL 没有变化时会立即返回 + # 使用轮询方式等待支付成功 + # 注意:需要用 try-except 包裹 page.url 访问,避免页面加载时的异常被误判 payment_success = False start_time = time.time() max_wait = 90 # 最多等待 90 秒 + last_log_time = 0 while time.time() - start_time < max_wait: - current_url = page.url - - # 检查是否支付成功 - if 'payments/success' in current_url or 'success-team' in current_url: - payment_success = True - log_status("成功", "[OK] 支付成功!") - break - - # 检查是否有错误页面 - if 'error' in current_url.lower() or 'failed' in current_url.lower(): - log_status("失败", f"[X] 支付失败: {current_url}") - return None + try: + current_url = page.url + + # 检查是否支付成功 + if 'payments/success' in current_url or 'success-team' in current_url: + payment_success = True + log_status("成功", "[OK] 支付成功!") + break + + # 检查是否有错误页面 + if 'error' in current_url.lower() or 'failed' in current_url.lower(): + log_status("失败", f"[X] 支付失败: {current_url}") + return None + + except Exception as e: + # 页面加载中可能会抛出异常,这是正常的,继续等待 + pass # 检查停止请求 if _is_shutdown_requested(): log_progress("[!] 检测到停止请求") return {"stopped": True} - # 每 2 秒检查一次 + # 每 10 秒输出一次日志 elapsed = int(time.time() - start_time) - if elapsed % 10 == 0 and elapsed > 0: + if elapsed >= last_log_time + 10: log_progress(f"[等待中] 已等待 {elapsed} 秒...") + last_log_time = elapsed time.sleep(2) if not payment_success: log_status("超时", "[X] 支付未完成(超时)") - log_progress(f"最终URL: {page.url}") + try: + log_progress(f"最终URL: {page.url}") + except: + pass return None # ========== 步骤 9: 获取 token 和 account_id ==========