Eric7378
Eric737811h ago

카카오페이, 네이버페이 테스트 관련

async function requestTossPayment(site, keyword, payMethod) {
console.log("requestTossPayment 호출됨", site, keyword, payMethod);
let method = "CARD"; // 기본값

if (payMethod === "카드") method = "CARD";
else if (payMethod === "가상계좌") method = "VIRTUAL_ACCOUNT";
else if (payMethod === "계좌이체") method = "TRANSFER";

let baseUrl = window.location.origin; // 현재 도메인 자동 사용

let options = {
amount: {
currency: "KRW",
value: finalPrice // 최종 결제 금액 사용
},
orderId: generateRandomString(),
orderName: "고정 URL 구매",
successUrl: baseUrl + "/buy-success",
failUrl: baseUrl + "/buy-cancel",
method: method,
metadata: {
keyword: keyword,
site: site
}
};

// :white_check_mark: 결제 방식별 옵션 분리
if (payMethod === "카드") {
options.method = "CARD";
options.card = {
useEscrow: false,
flowMode: "DEFAULT",
useCardPoint: false,
useAppCardOnly: false
};
} else if (payMethod === "가상계좌") {
options.method = "VIRTUAL_ACCOUNT";
} else if (payMethod === "계좌이체") {
options.method = "TRANSFER";
} else if (payMethod === "카카오페이") {
options.method = "KAKAOPAY";
} else if (payMethod === "네이버페이") {
options.method = "NAVERPAY";
}

const optionsJson = JSON.stringify(options, null, 2);
// alert(optionsJson); // 결제 옵션을 JSON 문자열로 변환하여 alert로 표시
// console.log("결제 옵션(JSON):", optionsJson);

await payment.requestPayment(options);
}
async function requestTossPayment(site, keyword, payMethod) {
console.log("requestTossPayment 호출됨", site, keyword, payMethod);
let method = "CARD"; // 기본값

if (payMethod === "카드") method = "CARD";
else if (payMethod === "가상계좌") method = "VIRTUAL_ACCOUNT";
else if (payMethod === "계좌이체") method = "TRANSFER";

let baseUrl = window.location.origin; // 현재 도메인 자동 사용

let options = {
amount: {
currency: "KRW",
value: finalPrice // 최종 결제 금액 사용
},
orderId: generateRandomString(),
orderName: "고정 URL 구매",
successUrl: baseUrl + "/buy-success",
failUrl: baseUrl + "/buy-cancel",
method: method,
metadata: {
keyword: keyword,
site: site
}
};

// :white_check_mark: 결제 방식별 옵션 분리
if (payMethod === "카드") {
options.method = "CARD";
options.card = {
useEscrow: false,
flowMode: "DEFAULT",
useCardPoint: false,
useAppCardOnly: false
};
} else if (payMethod === "가상계좌") {
options.method = "VIRTUAL_ACCOUNT";
} else if (payMethod === "계좌이체") {
options.method = "TRANSFER";
} else if (payMethod === "카카오페이") {
options.method = "KAKAOPAY";
} else if (payMethod === "네이버페이") {
options.method = "NAVERPAY";
}

const optionsJson = JSON.stringify(options, null, 2);
// alert(optionsJson); // 결제 옵션을 JSON 문자열로 변환하여 alert로 표시
// console.log("결제 옵션(JSON):", optionsJson);

await payment.requestPayment(options);
}
이렇게 했는데 buy:890 Uncaught (in promise) r: method 파라미터에 사용할 수 없는 enum 값입니다. at Proxy.<anonymous> (standard:7:478725) at Object.apply (standard:7:74711) at n.value (standard:7:79247) at Object.apply (standard:7:72012) at requestTossPayment (buy:758:17) at HTMLButtonElement.<anonymous> (buy:888:11) 라고 나오는데 어떤 식으로 추가해야 될까요?
2 Replies
토스페이먼츠 BOT
⏳ 잠시만 기다려주세요! 곧 답변드리겠습니다
오류 문의일 경우 아래 정보를 미리 전달해주시면, 빠른 답변에 도움이 됩니다.
- 주문번호(orderId) : - 문의 내용 :
(img를 함께 첨부해주시면 도움이됩니다)
* 계약관련 내용은 1544-7772로 문의주세요. * 주말/공휴일에는 답변이 늦을 수 있어요.
토스페이먼츠 BOT
❤️ 기술문의 경험이 어떠셨나요?!
간단히 코멘트 남겨주세요! 제품 발전에 큰 힘이 됩니다.

Did you find this page helpful?