영카트 kg이니시스 모바일 결제시 간혹 발생하는 오류 처리 정보
영카트 kg이니시스 모바일 결제시 간혹 발생하는 오류 처리본문
kg이니시스 모바일 결제시
p_req_url값이 간혹 비어있는 경우가 생깁니다
정확히 어떤 상황에서 해당 인자 값이 비는지는 확인하지 못했으나
오류 처리에 문제가 있습니다.
위 값이 비어있을 때, pay_approval.php 16번째 라인 아래 코드에서 alert을 띄우도록 되어있습니다
if( ! $p_req_url || !preg_match('/^https\:\/\//i', $p_req_url)){
alert("잘못된 요청 URL 입니다.");
}
문자는 위에서 alert을 호출 할 때 두 번째 인자(url)을 지정하지 않고 호출하기에
alert 코드를 따라가보면 HTTP_REFERER를 url변수에 넣어서
check_url_host 함수를 호출합니다
HTTP_REFERER는 운영중인 쇼핑몰 url이 아니며 kg이니시스 url입니다
check_url_host는 외부 url값이 외부 url임으로
alert 창을 띄우고 쇼핑몰 메인 페이지로 이동해버립니다.
배송주소까지 모두 입력하고 결제하려던 참에 이상한 오류와 함께
메인 페이지로 이동해 버리면 이용자 입장에서 황당하죠 ㅠㅠ
해결 방법은 위 pay_approval 17번째 alert 호출시 두 번째 인자에 url 인자를 넣어주면 됩니다
결제 실패했음으로 돌아갈 url을 지정해주면 됩니다
저는 영카트 개인결제를 이용하지 않기에 아래와 같이 처리했으나
개인결제를 사용하시는 경우 돌아갈 url을 상황에 맞게 설정하시면 됩니다
$page_return_url = G5_SHOP_URL.'/orderform.php';
if(get_session('ss_direct'))
$page_return_url .= '?sw_direct=1';
alert("잘못된 요청 URL 입니다.", $page_return_url);
2
댓글 1개
영카트 경로가 mobile>shop>inicis>pay_approval.php
13번째줄에 보시면 아래와 같이 되어 있는데
if( ! $p_req_url || !preg_match('/^https\:\/\//i', $p_req_url)){
alert("잘못된 요청 URL 입니다.");
}
여기에 아래와 바로 밑에 추가해주면 되는건가요?
if( ! $p_req_url || !preg_match('/^https\:\/\//i', $p_req_url)){
alert("잘못된 요청 URL 입니다.");
}
$page_return_url = G5_SHOP_URL.'/orderform.php';
if(get_session('ss_direct'))
$page_return_url .= '?sw_direct=1';
alert("잘못된 요청 URL 입니다.", $page_return_url);
혹시 아래에 추가만 해주면 될까요?