4
This commit is contained in:
@@ -1094,13 +1094,15 @@ def run_payment_flow(page, email, step_callback=None):
|
|||||||
step_cb("等待支付处理...")
|
step_cb("等待支付处理...")
|
||||||
log_status("等待", "等待支付处理(超时90秒)...")
|
log_status("等待", "等待支付处理(超时90秒)...")
|
||||||
|
|
||||||
# 使用轮询方式等待支付成功,而不是 url_change
|
# 使用轮询方式等待支付成功
|
||||||
# 因为 url_change 在 URL 没有变化时会立即返回
|
# 注意:需要用 try-except 包裹 page.url 访问,避免页面加载时的异常被误判
|
||||||
payment_success = False
|
payment_success = False
|
||||||
start_time = time.time()
|
start_time = time.time()
|
||||||
max_wait = 90 # 最多等待 90 秒
|
max_wait = 90 # 最多等待 90 秒
|
||||||
|
last_log_time = 0
|
||||||
|
|
||||||
while time.time() - start_time < max_wait:
|
while time.time() - start_time < max_wait:
|
||||||
|
try:
|
||||||
current_url = page.url
|
current_url = page.url
|
||||||
|
|
||||||
# 检查是否支付成功
|
# 检查是否支付成功
|
||||||
@@ -1114,21 +1116,29 @@ def run_payment_flow(page, email, step_callback=None):
|
|||||||
log_status("失败", f"[X] 支付失败: {current_url}")
|
log_status("失败", f"[X] 支付失败: {current_url}")
|
||||||
return None
|
return None
|
||||||
|
|
||||||
|
except Exception as e:
|
||||||
|
# 页面加载中可能会抛出异常,这是正常的,继续等待
|
||||||
|
pass
|
||||||
|
|
||||||
# 检查停止请求
|
# 检查停止请求
|
||||||
if _is_shutdown_requested():
|
if _is_shutdown_requested():
|
||||||
log_progress("[!] 检测到停止请求")
|
log_progress("[!] 检测到停止请求")
|
||||||
return {"stopped": True}
|
return {"stopped": True}
|
||||||
|
|
||||||
# 每 2 秒检查一次
|
# 每 10 秒输出一次日志
|
||||||
elapsed = int(time.time() - start_time)
|
elapsed = int(time.time() - start_time)
|
||||||
if elapsed % 10 == 0 and elapsed > 0:
|
if elapsed >= last_log_time + 10:
|
||||||
log_progress(f"[等待中] 已等待 {elapsed} 秒...")
|
log_progress(f"[等待中] 已等待 {elapsed} 秒...")
|
||||||
|
last_log_time = elapsed
|
||||||
|
|
||||||
time.sleep(2)
|
time.sleep(2)
|
||||||
|
|
||||||
if not payment_success:
|
if not payment_success:
|
||||||
log_status("超时", "[X] 支付未完成(超时)")
|
log_status("超时", "[X] 支付未完成(超时)")
|
||||||
|
try:
|
||||||
log_progress(f"最终URL: {page.url}")
|
log_progress(f"最终URL: {page.url}")
|
||||||
|
except:
|
||||||
|
pass
|
||||||
return None
|
return None
|
||||||
|
|
||||||
# ========== 步骤 9: 获取 token 和 account_id ==========
|
# ========== 步骤 9: 获取 token 和 account_id ==========
|
||||||
|
|||||||
Reference in New Issue
Block a user