dasdasd
This commit is contained in:
parent
1c642a8236
commit
2cc8139924
@ -62,12 +62,16 @@ class CardGenerator {
|
||||
*/
|
||||
async checkCardNumberInDatabase(cardNumber) {
|
||||
try {
|
||||
// 检查数据库连接是否已初始化
|
||||
if (!this.database || !this.database.pool) {
|
||||
return false; // 数据库未初始化,跳过数据库查询
|
||||
}
|
||||
|
||||
const sql = 'SELECT COUNT(*) as count FROM windsurf_accounts WHERE payment_card_number = ?';
|
||||
const rows = await this.database.query(sql, [cardNumber]);
|
||||
return rows[0].count > 0;
|
||||
} catch (error) {
|
||||
// 如果数据库查询失败,记录错误但不影响生成(降级为仅内存去重)
|
||||
console.warn('数据库查询失败,仅使用内存去重:', error.message);
|
||||
// 如果数据库查询失败,静默降级(不输出,避免乱码)
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
@ -120,12 +120,12 @@ workflow:
|
||||
# ==================== 步骤 6: 填写支付信息(带重试) ====================
|
||||
- action: retryBlock
|
||||
name: "提交支付并验证"
|
||||
maxRetries: 5
|
||||
maxRetries: 9999 # 无限重试,直到成功
|
||||
retryDelay: 15000 # 增加到15秒,避免触发Stripe风控
|
||||
onRetryBefore:
|
||||
# 重试前重新生成银行卡
|
||||
# 生成银行卡(第一次或重试都生成新卡)
|
||||
- action: custom
|
||||
handler: "regenerateCard"
|
||||
handler: "generateCard"
|
||||
|
||||
steps:
|
||||
# 6.1 选择银行卡支付方式(每次重试都重新选择)
|
||||
|
||||
@ -12,8 +12,8 @@ class WindsurfAdapter extends SiteAdapter {
|
||||
|
||||
// 数据生成器
|
||||
this.dataGen = new AccountDataGenerator();
|
||||
// 卡号生成器(传入数据库连接以实现数据库去重)
|
||||
this.cardGen = new CardGenerator(database);
|
||||
// 卡号生成器(传入数据库连接对象以实现数据库去重)
|
||||
this.cardGen = new CardGenerator(database.connection);
|
||||
}
|
||||
|
||||
/**
|
||||
@ -23,6 +23,14 @@ class WindsurfAdapter extends SiteAdapter {
|
||||
// 先调用父类清理浏览器状态
|
||||
await super.beforeWorkflow();
|
||||
|
||||
// 初始化数据库连接(用于卡号去重)
|
||||
try {
|
||||
await database.initialize();
|
||||
this.log('info', '✓ 数据库连接已初始化');
|
||||
} catch (error) {
|
||||
this.log('warn', `数据库初始化失败,将仅使用内存去重: ${error.message}`);
|
||||
}
|
||||
|
||||
this.log('info', '生成账户数据...');
|
||||
|
||||
// 生成账户数据
|
||||
@ -245,13 +253,13 @@ class WindsurfAdapter extends SiteAdapter {
|
||||
}
|
||||
|
||||
/**
|
||||
* 重新生成银行卡(用于重试)
|
||||
* 生成银行卡(第一次或重试都调用此方法)
|
||||
*/
|
||||
async regenerateCard() {
|
||||
async generateCard() {
|
||||
const newCard = await this.cardGen.generate();
|
||||
this.context.data.card = newCard;
|
||||
const bin = newCard.number.substring(0, 9);
|
||||
this.log('info', `重新生成卡号: ${newCard.number} (BIN: ${bin})`);
|
||||
this.log('info', `生成卡号: ${newCard.number} (BIN: ${bin})`);
|
||||
return { card: newCard };
|
||||
}
|
||||
|
||||
|
||||
Loading…
Reference in New Issue
Block a user