From 68bb9e28635b184c6019f5fb2f90bd8bc462ec8d Mon Sep 17 00:00:00 2001 From: hyoseung930 <35983843+hyoseung930@users.noreply.github.com> Date: Tue, 19 May 2026 18:20:03 +0900 Subject: [PATCH] New task MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 배포됩니다. **로직:** - 40103(OCR 오인식) → **30초 대기 → 재시도 → 무한 반복** (성공할 때까지) - 성공 → 다음 쿠폰으로 - 40103 외 다른 에러(만료, 이미수령 등) → 즉시 종료 --- back/src/wos/wos.service.ts | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/back/src/wos/wos.service.ts b/back/src/wos/wos.service.ts index 85dffdc..7c6b0cf 100644 --- a/back/src/wos/wos.service.ts +++ b/back/src/wos/wos.service.ts @@ -113,9 +113,11 @@ export class WosService { fid: string, code: string, ): Promise<{ success: boolean; message: string; err_code?: number }> { - for (let attempt = 1; attempt <= 2; attempt++) { + let attempt = 0; + while (true) { + attempt++; if (attempt > 1) { - this.logger.warn(`[${fid}] ${code} 캡차 오인식, 30초 대기 후 재시도`); + this.logger.warn(`[${fid}] ${code} 캡차 오인식 (${attempt - 1}회), 30초 대기 후 재시도`); await new Promise((r) => setTimeout(r, 30000)); } @@ -138,15 +140,13 @@ export class WosService { this.logger.log(`[${fid}] ${code} attempt=${attempt} captcha=${captchaCode} → code=${data.code} err=${data.err_code} msg=${data.msg}`); if (data.code === 0) return { success: true, message: SUCCESS_MSG }; - if (data.err_code === 40103 && attempt < 2) continue; + if (data.err_code === 40103) continue; return { success: false, message: data.msg || `실패 (${data.err_code})`, err_code: data.err_code, }; } - - return { success: false, message: '알 수 없는 오류' }; } async redeemAll(fid: string) {