결제금액 비율로 10%까지만 포인트 결제가 가능하도록 소스를 수정했는데요

결제금액 비율로 10%까지만 포인트 결제가 가능하도록 소스를 수정했는데요

QA

결제금액 비율로 10%까지만 포인트 결제가 가능하도록 소스를 수정했는데요

본문


  <!-- 포인트정보 입력 시작 { -->
        <?php
        $temp_point = 0;
            // 회원이면서 포인트사용이면
            if ($is_member && $config['cf_use_point'])
            {
                // 포인트 결제 사용 포인트보다 회원의 포인트가 크다면
                if ($member['mb_point'] >= $default['de_settle_min_point'])
                {
                    $temp_point = (int)$default['de_settle_max_point'];
                    if($temp_point > (int)$tot_sell_price*0.1)
                        $temp_point = (int)$tot_sell_price*0.1;
                    if($temp_point > (int)$member['mb_point'])
                        $temp_point = (int)$member['mb_point'];
                    $point_unit = (int)$default['de_settle_point_unit'];
                    $temp_point = (int)((int)($temp_point / $point_unit) * $point_unit);
            ?>
            <div id="sod_point">
                <h2>
                    <span class="point_tit">
                        포인트사용
                    <label for="od_temp_point">(<?php echo $point_unit; ?>점 단위)</label>
                    </span>
                    <span class="point_ipt">
                        <input type="hidden" name="max_temp_point" value="<?php echo $temp_point; ?>">
                        <input type="text" name="od_temp_point" value="0" id="od_temp_point" size="7"> 점
                    </span>
                </h2>
                <div id="sod_frm_pt">
                    <strong>보유포인트</strong><span class="my_point_box"><?php echo display_point($member['mb_point']); ?></span>
                    <strong>최대 사용 가능 포인트</strong><span class="max_point_box"><em id="use_max_point"><?php echo display_point($temp_point); ?></em></span>
                </div>
            </div>
            <?php
                $multi_settle++;
                }
            }
        ?>
        <!-- } 포인트정보 입력 끝 -->

 

이렇게 0.1 비율로 설정을 해줘서 결제시에 포인트 얼마까지 결제된다고 자동입력은 되는데요 그 이상 포인트를 강제로 입력하고 결제하면 되더라구요 10%이상 포인트를 적용시켰을때 어떤 소스를 고쳐야지 결제가 안되는지 방법좀 알려주세요 ㅠ

이 질문에 댓글 쓰기 :

답변 3

자바스크립트로 포인트 입력값과 결제금액의 10% 포인트 값을 비교해서 처리하시면 되지 않을까요?

<input type="text" name="use_point" id="use_point" value="기본값">

 

<script>

$(function(){

$('#use_point').on('change', function() {

var $this = $(this),

     member_point = <?php echo $멤버포인트 ?>,

     max_point = <?php echo $결제금액 10% ?>,

     use_point = $this.val();

if (use_point > member_point) {

alert('보유하신 포인트가 부족합니다.');

return false;

$this.focus();

}

if (use_point > max_point) {

alert('결제금액의 10%만 사용가능합니다.');

return false;

$this.focus();

}

});

});

</script>

 

대충 이런식으로,,, 해보진 않았습니다.

https://sir.kr/qa/175315 보시면 input 최대값 제어하는 스크립트 관련 답변인데

이거 응용 해보시면 되지 않을까 싶은 짧은 소견입니다.

 


function calculate_temp_point()
{
    var sell_price = parseInt($("input[name=od_price]").val());
    var mb_point = parseInt(<?php echo $member['mb_point']; ?>);
    var max_point = parseInt(<?php echo $default['de_settle_max_point']; ?>);
    var point_unit = parseInt(<?php echo $default['de_settle_point_unit']; ?>);
    var temp_point = max_point;
    if(temp_point > sell_price*0.1)
        temp_point = sell_price*0.1;
    if(temp_point > mb_point)
        temp_point = mb_point;
    temp_point = parseInt(temp_point / point_unit) * point_unit;
    $("#use_max_point").text(number_format(String(temp_point))+"점");
    $("input[name=max_temp_point]").val(temp_point);
}

다들 답변 주셔서 감사합니다

orderform.sub.php

모르는 분들을 위해 정보 남겨놓을게요 하단부에 이소스가 있더라구요 sell_price뒤에 *0.1을 여기도 추가해야 포인트결제가 정상적으로 되는걸 확인했습니다 답은 틀렸지만 위에분 채택 드릴게요^^

답변을 작성하시기 전에 로그인 해주세요.
전체 17,127
QA 내용 검색

회원로그인

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