영카트 토스페이스먼츠 오류 맞을까요? 설정이 다를까요?

2026-10-07 (수) 17:13:12 46

신규 영카트를 설치하고 모바일로 변경하여 사용 설치 하였습니다.

결제를 토스페이스먼츠를 신청중인데요.
결제창이 pc에서 잘 나오고 모바일에서는 값이 넣어오지 않는 다는 오류가 있습니다.

결제 팝업창이 실행되지 않고 개발자 창으로 보면 오류가 보였습니다.

파일중에 /mobile/shop/toss/toss_approval.php 파일에 중간 내용입니다.

======================
    // 기본 결제 옵션
    const paymentOptions = {
        method: frm.method.value,
        amount: {
            currency: "KRW",
            value: parseInt(frm.amountValue.value),
        },
        taxFreeAmount: parseInt(frm.taxFreeAmount.value) || 0,
        orderId: frm.orderId.value, // 고유 주문번호
        orderName: frm.orderName.value,
        successUrl: g5_order_state_url("<?php echo G5_MSHOP_URL;?>/toss/returnurl.php", frm), // 결제 요청이 성공하면 리다이렉트되는 URL
        failUrl: g5_order_state_url("<?php echo G5_MSHOP_URL;?>/toss/returnurl.php?mode=fail", frm), // 결제 요청이 실패하면 리다이렉트되는 URL
        customerEmail: frm.customerEmail.value,
        customerName: frm.customerName.value,
        customerMobilePhone: frm.customerMobilePhone.value,
    };

    // escrowProducts 추가 함수
    function addEscrowProducts(paymentMethodOptions) {
        if (frm.cardUseEscrow.value === "true") {
            if (frm.escrowProducts && frm.escrowProducts.value) {
                paymentMethodOptions.escrowProducts = JSON.parse(frm.escrowProducts.value);
            }
        }
    }

==============================

        taxFreeAmount: parseInt(frm.taxFreeAmount.value) || 0, 이 부분에 " || 0" 을 추가 하여 사용하니 잘 나오고 있는데요.

이 부분이 어디에 해당되는 내용일까요? 프로그램 소스가 잘못 되었을리 없을 듣하여 여쭤 봅니다.

원본 파일에는 저 부분이 없더라고요.

제가 어떤 설정을 안해서 저 부분이 문제가 되는것인지 프로그램 소스에 문제가 있는것인지 궁금합니다. 

답변 2개

5.6.42 에서 해당 현상을 보완하여 배포하였으니 참고 부탁드립니다.
다운로드 https://sir.kr/boards/g5_pds/7785
변경내역 https://github.com/gnuboard/gnuboard5/commit/e7bea4301824de4a7ada065fe5ecb98f10201725

감사합니다.
안녕하세요.

질문하신 증상은 설정 누락이 아닌 영카트 소스 오류로 확인되었습니다.
불편을 드린 점 양해 부탁드립니다.

taxFreeAmount는 전체 결제금액 중 면세금액입니다. 모바일에서 결제창을 열기 위해 저장된 주문정보를 복원할 때, 면세금액 "0"이 빈 문자열로 바뀌고 이를 숫자로 변환하면 NaN이 되어 오류가 발생합니다.

이력상 5.6.39의 주문정보 보안 처리 강화 과정에서 발생한 회귀 오류입니다. 검증된 주문정보를 사용하고 HTML 특수문자를 안전하게 처리하도록 변경하면서, 기존 공통 함수의 0 처리 문제가 모바일 토스 결제에도 영향을 주게 됐습니다. PC는 결제창을 열기 전에 이 복원 과정을 거치지 않아 증상이 다르게 나타납니다.

추가하신 || 0은 NaN을 0으로 처리하므로 이번 증상에 대한 임시 조치가 맞습니다. 별도의 설정을 변경하실 필요는 없습니다.

현재 보안 처리는 유지하면서 면세금액 0원이 정상적으로 전달되도록 수정하였으며, 다음 패치에 즉시 포함되어 배포될 예정이니 참고 부탁드립니다.

감사합니다.

답변을 작성하려면 로그인이 필요합니다.