이 글의 성격은 무엇인가요?
질문 / 문제 해결
내용을 설명해주세요
프로모션 최초 1회 테스트는 정상적으로 작동하나
이후 테스트 실행 시 4109 에러가 발생합니다.
또한, 에러 메시지와 달리 프로모션이 실행 중인 경우에도 같은 테스트 프로모션 코드에서 같은 에러가 발생합니다.
{
resultType: 'FAIL',
success: null,
error: {
errorType: 0,
errorCode: '4109',
reason: '프로모션이 실행중이 아니에요',
data: {},
title: null
}
}
이전에도 같은 내용으로 질의드린게 있는데 추가로 생성한 프로모션에서도 같은 에러가 발생하네요.
TEST_ prefix가 붙은 테스트 프로모션 코드에서만 4109 에러가 발생하고, 프로덕션 프로모션 코드는 정상 동작합니다.
const path = "/api-partner/v1/apps-in-toss/promotion/execute-promotion";
const json: any = await fetchWithMTLS(`${baseUrl}${path}`, {
method: "POST",
headers: {
"Content-Type": "application/json",
"x-toss-user-key": userKey,
},
body: JSON.stringify({
promotionCode,
key: promotionKey,
amount,
}),
});
if (json.resultType === "FAIL" || !json.success) {
console.error("[TOSS] 프로모션 실행 실패:", json.error.reason);
throw new Error("PROMOTION_FAILED");
}
위 코드로 프로모션을 실행하는데 테스트 환경에서 문제되는 부분 있을까요?
appName (선택)
easy-agility
프로모션에 테스트를 누르시면 테스트용 프로모션 코드가(TEST_xxxxx) 나올거에요 그걸로 테스트를 1회 시작해야 시작하기가 활성화 될거에요
최초 테스트 실행 후 같은 테스트 프로모션 코드로 다시 테스트할 경우 저런 에러가 발생합니다 ㅜ
Dylan
4
안녕하세요 
현재 내부 구조상 남은 예산보다 테스트(TEST_xxxx) 프로모션으로 보냈던 총 금액이 더 클 경우 해당 에러를 반환하고 있습니다 
지금 예산이 1원만 남은 상태에서 테스트 코드를 여러 번 호출하셨다면,
프로모션이 일시 정지되면서 해당 에러가 발생했을 가능성이 있습니다.
TEST 코드로 호출해도 실제 예산이 차감되지는 않지만,
처음에 설정하신 예산을 기준으로 가상 금액이 차감되는 방식 이에요.
예산을 조금만 더 늘린 뒤 다시 한 번 테스트해주실 수 있을까요? 
현재 프로덕션에서 정상 사용되고 예산도 넉넉하지만 테스트 프로모션 코드만 실행되지 않는 다른 코드로 실행해봤는데 마찬가지로 4109 에러가 발생하네요.
테스트 중 가상 금액 차감으로 인해 프로모션이 일시 정지된 경우, 이후 예산을 증액해도 해당 테스트 코드가 계속 잠긴 상태로 유지될 가능성이 있을까요?
Dylan
6
예산을 증액하고 다시 프로모션을 실행시키면 정상 동작할 것 같습니다.
TEST_xxxx 프로모션 코드를 계속해서 호출하시는 이유가 있으신가요 ?!
이전에 배포한 앱에서 프로모션 보상 수령 후 정보 갱신에 에러가 발생하는 경우가 있어
개발 중 다양한 에러케이스 테스트를 위해서 TEST_xxxx 프로모션 코드를 실행했습니다.
혹시 TEST_ 접두사가 붙은 코드는 최초 1회만 실행하고 이후엔 실제 코드로 테스트해야하는 건가요?
Dylan
8
최초 1회만 실행해야하는 것은 아니고, 예산을 배경으로 가상 금액이 생성되고
가상 금액이 차감되는 구조라 TEST_xxxx 를 계속해서 호출하면 프로모션이 중지 처리될 수 도 있을 것 같습니다!
1개의 좋아요
아하 그럼 테스트 프로모션 코드를 계속 이용하려면 충분한 예산으로 새롭게 프로모션을 생성해야겠네요.
이해했습니다 감사합니다 
1개의 좋아요