본문 바로가기
  • [성공하는 개발자] - Developer
PHP/영카트

[PHP] 회원이 직접 카드 결제 취소

by Sein-JH 2021. 9. 30.
728x90

카드 결제 취소 

영카트를 사용하면 상품을 카드결제 후 회원이 직접 취소를 하려고하면

기능상 막아져 있기 때문에 관리자가 직접 관리자 페이지에서 카드결제 취소를 해주어야합니다.

회원이 많거나 거래량이 많은 쇼핑몰의 경우 매번 관리자가 직접 취소할 수 없기 때문에

카드결제를 사용한 회원이 직접 취소할 수 있는 기능을 만들어 보겠습니다.

 

www/shop/orderinquiryview.php 파일을 열어서 아래의 소스코드의 위치를 찾아보겠습니다.

<?php
/* www/shop/orderinquiryview.php */

  $tot_point       += $point;
  $st_count1++;
  if($opt['ct_status'] == '주문')
   $st_count2++;
 }
}
?>

위의 소스코드 부분에 조건을 아래와 같이 추가해줍니다.

 

<?php
/* www/shop/orderinquiryview.php */

  $tot_point       += $point;

  $st_count1++;
  if($opt['ct_status'] == '주문' || (($opt['ct_status'] == '입금') && ($od['od_settle_case'] == '신용카드')))
   $st_count2++;
 }
}
?>

이렇게 입금중인 상태와 신용카드 결제시 마이페이지에서 주문한 상품을 확인하면 취소버튼이 활성화됩니다.

 

그리고 www/shop/orderinquirycancel.php 파일을 열어서 아래의 소스코드 부분을 찾아보겠습니다.

<?php
/* www/shop/orderinquirycancel.php */

// 주문상품의 상태가 주문인지 체크

$sql = " select SUM(IF(ct_status = '주문', 1, 0)) as od_count2,
                COUNT(*) as od_count1
            from {$g5['g5_shop_cart_table']}
            where od_id = '$od_id' ";
$ct = sql_fetch($sql);
?>

위의 소스코드 부분에 조건을 아래와 같이 변경하겠습니다.

<?php
/* www/shop/orderinquirycancel.php */

if($od['od_settle_case'] == '신용카드'){
 $sql = " select SUM(IF(ct_status = '입금', 1, 0)) as od_count2,
     COUNT(*) as od_count1
    from {$g5['g5_shop_cart_table']}
    where od_id = '$od_id' ";
 $ct = sql_fetch($sql);
}else{
 // 주문상품의 상태가 주문인지 체크
 $sql = " select SUM(IF(ct_status = '주문', 1, 0)) as od_count2,
     COUNT(*) as od_count1
    from {$g5['g5_shop_cart_table']}
    where od_id = '$od_id' ";
 $ct = sql_fetch($sql);
}
?>

이니시스 측에서 받은 소스코드  Key 폴더명 똑같이 해서 넣어줘야 됩니다.

그래야 취소 코드 사용 가능

댓글