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