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; // ★★★★
}
...생략...
}
2
댓글 0개