KCP오류코드 3107 결제금액 설정정보오류 발생시 체크 > 영카트5 팁자료실

영카트5 팁자료실

KCP오류코드 3107 결제금액 설정정보오류 발생시 체크 정보

KCP오류코드 3107 결제금액 설정정보오류 발생시 체크

본문

1. 원인 

/shop/orderform.sub.php

컨텐츠 형식 상품 주문 페이지 구성 등을 위해 주문서 작성페이지에서

사용포인트 input 미출력 (보유포인트가 결제 최소 포인트 보다 적은 경우 등) 상태에서 받으시는 분 영역 숨김으로 배송지 선택이 불가능

 

2. 문제

위 1번 진행으로 /shop/kcp/orderform.2.php
<input type="hidden" name="good_mny"    value="<?php echo $tot_price; ?>">

good_mny 값이 반영되지 않음  (아래 4번 참고)

 

3. 해결 

- /shop/orderform.sub.php 마지막 부분에 아래 소스 반영 (배송지선택 주문자와 동일 선택 처리)
$(function(){
    $("#ad_sel_addr_same").attr("checked", true).trigger("click");
});
</script> <!-- 이 부분 위쪽 및 원하는 부분에 -->

 

 

4. 이하 참고

 /shop/orderform.sub.php 파일에서 good_mny 값이 반영되는 부분
1. 배송지 선택 
- 배송지선택 에서 "주문자와 동일 선택시"  gumae2baesong() -> calculate_sendcost() -> calculate_order_price() 흐름에 의해 good_mny 값이 적용됨
- 배송지선택 에서 "신규배송지 선택시" calculate_sendcost() -> calculate_order_price() 흐름에 의해 good_mny 값이 적용됨  (아래 calculate_order_price 함수 ★★★★ 부분에서)
   // 배송지선택
    $("input[name=ad_sel_addr]").on("click", function() {
        var addr = $(this).val().split(String.fromCharCode(30));

        if (addr[0] == "same") {
            gumae2baesong();
        } else {
            if(addr[0] == "new") {
                for(i=0; i<10; i++) {
                    addr[i] = "";
                }
            }

            var f = document.forderform;

              ...생략...

            var zip1 = addr[3].replace(/[^0-9]/g, "");
            var zip2 = addr[4].replace(/[^0-9]/g, "");

            var code = String(zip1) + String(zip2);

            if(zipcode != code) {
                calculate_sendcost(code);
            }
        }
    });

// 구매자 정보와 동일합니다.
function gumae2baesong() {
    var f = document.forderform;

      ...생략...

    calculate_sendcost(String(f.od_b_zip.value));
}

function calculate_sendcost(code)
{
    $.post(
        "./ordersendcost.php",
        { zipcode: code },
        function(data) {

              ...생략...

            calculate_order_price();
        }
    );
}

function calculate_order_price()
{
    var sell_price = parseInt($("input[name=od_price]").val());
    var send_cost = parseInt($("input[name=od_send_cost]").val());
    var send_cost2 = parseInt($("input[name=od_send_cost2]").val());
    var send_coupon = parseInt($("input[name=od_send_coupon]").val());
    var tot_price = sell_price + send_cost + send_cost2 - send_coupon;

    $("input[name=good_mny]").val(tot_price); // ★★★★
    ...생략...
}

 

2. 포인트 결제 사용(사용포인트 입력란이 있으면) 가능 상태라면 아래 ★★★★ 부분에서 결제방식선택 - 결제하기 클릭시 good_mny 값이 적용됨
function forderform_check(f)
{
...생략...
if (typeof(f.od_temp_point) != "undefined") {
        var point_unit = parseInt(<?php echo $default['de_settle_point_unit']; ?>);
        temp_point = parseInt(f.od_temp_point.value) || 0;

        ...생략...

        // pg 결제 금액에서 포인트 금액 차감
        if(settle_method != "무통장") {
            f.good_mny.value = od_price + send_cost + send_cost2 - send_coupon - temp_point;  // ★★★★
        }
...생략...
    }

 

추천
0

댓글 0개

전체 392
영카트5 팁자료실 내용 검색

회원로그인

(주)에스아이알소프트 / 대표:홍석명 / (06211) 서울특별시 강남구 역삼동 707-34 한신인터밸리24 서관 1404호 / E-Mail: admin@sir.kr
사업자등록번호: 217-81-36347 / 통신판매업신고번호:2014-서울강남-02098호 / 개인정보보호책임자:김민섭(minsup@sir.kr)
© SIRSOFT