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

영카트 kg이니시스 모바일 결제시 간혹 발생하는 오류 처리

· 1년 전 · 714 · 1

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);

 

댓글 작성

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

로그인하기

댓글 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);

 

혹시 아래에 추가만 해주면 될까요?

 

게시글 목록

번호 제목
2400
2394
2363
2362
2351
2350
2348
2347
2336
2326
2324
2323
2318
2306
2305
2299
2295
2293
2283
2279
2266
2254
2248
2232
2231
2204
2184
2183
2181
2179