테스트 사이트 - 개발 중인 베타 버전입니다

주문완료후 결제 전 취소주문 조회시 결제하기 버튼 없애기

· 15년 전 · 228 · 2
* 시나리오
  -> 결제방법을 카드, 계좌이체, 가상계좌등으로 선택
  -> 끝까지 다음, 다음 눌러서 주문 마침
  -> 결제연동창이 뜨면 취소하고 나옴
  -> 다시 주문조회 눌러서 방금 그 주문으로 이동
  -> 주문취소
  -> 다시 주문조회해보면 구매상품 가격은 0원인데 배송료는 기본배송료가 붙는 요상한 시츄에이션이 됨

이 상황에서 결제하면 위 취소과정에서 반환된 포인트가 반영된,
포인트 금액만큼 빠진 결제가 이루어집니다.

애초에 취소했던 주문에 결제하기 버튼이 나온다는게 맘에 안들어 다음과 같이 수정했습니다.

/shop/cartsub.inc.php
190줄에 다음 코드 삽입
    // 총 주문상품 가격이 0이라면
      if (!$tot_sell_amount)
        $send_cost = 0;


/shop/orderinquiryview.php
173-174, 210-211, 222-223 세군데 코드 두줄을 다음 조건문으로 감싸줌
      // 구매금액이 있을때만 결제하기버튼 나오게
      if ($tot_amount) {
      }

검토해보시고 문제 있으면 지적 부탁드립니다.

댓글 작성

댓글을 작성하시려면 로그인이 필요합니다.

로그인하기

댓글 2개

와...이것때문에 정말 고생했는데...피터정님덕분에 해결했네요..
여러가지 테스트결과 아무문제 없는것같네요..좀더 테스트해보고 혹시 문제있으면 문의댓글 남겨보겠습니다..^^
테스트결과 다른부분은 문제없는데 /shop/orderinquiryview.php 에서
210-211행
if ($od['od_settle_case'] == '계좌이체' && $default[de_iche_use])
{
부분과
if ($od['od_settle_case'] == '가상계좌' && $od['od_bank_account'] == '가상계좌' && $default[de_vbank_use])
{
부분을 감싸라고 하셨는데..그렇게 수정해보니 아래 else부분이 풀리는(?) 현상이 있네요..
그래서 전 전체를 감싸서 해결했습니다..^^
if ($od['od_settle_case'] == '계좌이체' && $default[de_iche_use])
{
$settle_amount = $od['od_temp_bank'];
echo "<tr><td colspan=2>";
if ($member[mb_point] >= $od[od_temp_point]) {
include "./settle_{$default[de_card_pg]}.inc.php";
echo "<input type='image' src='$g4[shop_img_path]/btn_settle.gif' border=0 onclick='OpenWindow();'>";
} else {
echo "<font color=red>· 보유포인트가 모자라서 결제할 수 없습니다. 주문후 다시 결제하시기 바랍니다.</font>";
}
echo "</td></tr>";
}
를 아래처럼 수정
// 구매금액이 있을때만 결제하기버튼 나오게
if ($tot_amount) {
if ($od['od_settle_case'] == '가상계좌' && $od['od_bank_account'] == '가상계좌' && $default[de_vbank_use])
{
부분을 감싸라고 하셨는데..그렇게 수정해보니 아래 else부분이 풀려서(?) 결제하기 버튼은 안나오지만 '보유포인트가 모자라서...'내용이 나와버리네요..그래서 전 전체를 감싸서 해결했습니다..^^
if ($od['od_settle_case'] == '계좌이체' && $default[de_iche_use])
{
$settle_amount = $od['od_temp_bank'];
echo "<tr><td colspan=2>";
if ($member[mb_point] >= $od[od_temp_point]) {
include "./settle_{$default[de_card_pg]}.inc.php";
echo "<input type='image' src='$g4[shop_img_path]/btn_settle.gif' border=0 onclick='OpenWindow();'>";
} else {
echo "<font color=red>· 보유포인트가 모자라서 결제할 수 없습니다. 주문후 다시 결제하시기 바랍니다.</font>";
}
echo "</td></tr>";
}
}
이렇게 해결하니 else부분 '보유포인트가 모자라서...' 글씨가 안나오네요..^^

게시글 목록

번호 제목
1304
1301
1296
1290
1289
1287
1282
1281
1280
1276
1271
1264
1260
1259
1250
1243
1242
1241
1234
1231