영카트 결제에러...9601 : 결제 정보 오류

영카트 결제에러...9601 : 결제 정보 오류

QA

영카트 결제에러...9601 : 결제 정보 오류

본문

계좌이체와 모바일은 잘됩니다.

 

PC에서 신용카드 결제시 에러가 납니다.

 

모든 결제완료후에... 9601  

ebaa1881675e9e336c3e016d1255307e_1475127769_8194.png 

 

영카트 내부엔 9601 메세지가 없는거 같은데요 놓친건지..

KCP쪽에러 메세지도 없네요 

 

KCP에선 자꾸 enc_info, enc_data  확인하라는데 문제 없는거 같고...

 

orderformupdate.php 에서 걸리는듯한데 alert봐도 저부분만 있는건 없는것 같고


이전에 결제잘되던 사이트도 서버나 사이트 손댄적이 없는데 오늘보니 같은 상황이네요..


서버환경은...윈도우 IIS + php 입니다. 



 

 

 

 

 

이 질문에 댓글 쓰기 :

답변 2

shop/kcp/pp_ax_hub.php 파일에 보시면 148번째 줄에 

 

if ( $req_tx == "pay" ) 

        /* 1004원은 실제로 업체에서 결제하셔야 될 원 금액을 넣어주셔야 합니다. 결제금액 유효성 검증 */ 

        $c_PayPlus->mf_set_ordr_data( "ordr_mony",  $good_mny ); 

 

        $c_PayPlus->mf_set_encx_data( $_POST[ "enc_data" ], $_POST[ "enc_info" ] ); 

}

 

이렇게 되어 있는 부분이 있습니다. 이것을 아래와 같이 바꿔보세요.

 


if ( $req_tx == "pay" ) 
{ 
        /* 1004원은 실제로 업체에서 결제하셔야 될 원 금액을 넣어주셔야 합니다. 결제금액 유효성 검증 */ 
        $c_PayPlus->mf_set_ordr_data( "ordr_mony",  $good_mny ); 
 
        if (strtoupper(substr(PHP_OS, 0, 3)) === 'WIN'){    //윈도우이면 
 
            if( !function_exists('kcp_bad_utf8_codepoint') ){ 
                function kcp_bad_utf8_codepoint($string){ 
                    $result = array(); 
 
                    foreach ((array) $string as $char) 
                    { 
                        $codepoint = unpack('N', iconv('UTF-8', 'UCS-4BE', $char)); 
 
                        if (is_array($codepoint) && array_key_exists(1, $codepoint)) 
                        { 
                            $result[] = sprintf('U+%04X', $codepoint[1]); 
                        } 
                    } 
 
                    return implode('', $result); 
                } 
            } 
 
            $_POST[ "enc_data" ] = preg_replace_callback('/[\p{So}\p{Cf}\p{Co}\p{Cs}\p{Cn}]/u', 'kcp_bad_utf8_codepoint', $_POST[ "enc_data" ]); 
            $_POST[ "enc_info" ] = preg_replace_callback('/[\p{So}\p{Cf}\p{Co}\p{Cs}\p{Cn}]/u', 'kcp_bad_utf8_codepoint', $_POST[ "enc_info" ]); 
        } 
 
        $c_PayPlus->mf_set_encx_data( $_POST[ "enc_data" ], $_POST[ "enc_info" ] ); 
}

 

윈도우 IIS 를 쓰신다고 하셨는데,

해결이 되셨다면 해당 윈도우 제품을 알려주시면 참고하겠습니다. ( 예) 윈도우 서버 2012 )

답변 감사합니다.

윈도우에서 위두값이 넘어오면서 인코딩 문제로 값이 바뀌는거였군요
담번 패치시 넣어주셔도 좋을듯 합니다.

윈도우 서버 2008 엔터 버전인데 잘됩니다. ^^;

kcp 모듈을 바이너리로 업로드 다시 하셔야 해요. 

기존 파일 지워버리고요.

 

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

회원로그인

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