영카트 결제에러...9601 : 결제 정보 오류 채택완료
계좌이체와 모바일은 잘됩니다.
PC에서 신용카드 결제시 에러가 납니다.
모든 결제완료후에... 9601
영카트 내부엔 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" ] );
}
이렇게 되어 있는 부분이 있습니다. 이것을 아래와 같이 바꿔보세요.
</p><p>if ( $req_tx == "pay" ) </p><p>{ </p><p> /* 1004원은 실제로 업체에서 결제하셔야 될 원 금액을 넣어주셔야 합니다. 결제금액 유효성 검증 */ </p><p> $c_PayPlus->mf_set_ordr_data( "ordr_mony", $good_mny ); </p><p> </p><p> if (strtoupper(substr(PHP_OS, 0, 3)) === 'WIN'){ //윈도우이면 </p><p> </p><p> if( !function_exists('kcp_bad_utf8_codepoint') ){ </p><p> function kcp_bad_utf8_codepoint($string){ </p><p> $result = array(); </p><p> </p><p> foreach ((array) $string as $char) </p><p> { </p><p> $codepoint = unpack('N', iconv('UTF-8', 'UCS-4BE', $char)); </p><p> </p><p> if (is_array($codepoint) && array_key_exists(1, $codepoint)) </p><p> { </p><p> $result[] = sprintf('U+%04X', $codepoint[1]); </p><p> } </p><p> } </p><p> </p><p> return implode('', $result); </p><p> } </p><p> } </p><p> </p><p> $_POST[ "enc_data" ] = preg_replace_callback('/[\p{So}\p{Cf}\p{Co}\p{Cs}\p{Cn}]/u', 'kcp_bad_utf8_codepoint', $_POST[ "enc_data" ]); </p><p> $_POST[ "enc_info" ] = preg_replace_callback('/[\p{So}\p{Cf}\p{Co}\p{Cs}\p{Cn}]/u', 'kcp_bad_utf8_codepoint', $_POST[ "enc_info" ]); </p><p> } </p><p> </p><p> $c_PayPlus->mf_set_encx_data( $_POST[ "enc_data" ], $_POST[ "enc_info" ] ); </p><p>}</p><p>
윈도우 IIS 를 쓰신다고 하셨는데,
해결이 되셨다면 해당 윈도우 제품을 알려주시면 참고하겠습니다. ( 예) 윈도우 서버 2012 )
답변에 대한 댓글 1개
댓글을 작성하려면 로그인이 필요합니다.
답변을 작성하려면 로그인이 필요합니다.
로그인
윈도우에서 위두값이 넘어오면서 인코딩 문제로 값이 바뀌는거였군요
담번 패치시 넣어주셔도 좋을듯 합니다.
윈도우 서버 2008 엔터 버전인데 잘됩니다. ^^;