본문 바로가기

UTF-8서버에서 KCP 결제모듈 한글 깨짐현상 해결하기

728x90
반응형

2013년 12월 기준.

빌더에 KCP 모듈을 연동하려고 시도했으나 오랜만에 다뤄보는지라 뜻밖의 난관에 부딪치게 됐다. 결제 모듈을 연동한 후에 KCP에서 자동으로 전송 되오는 알림들이 깨지는 것이다. kcp에서 샘플로 보내 준 파일을 보니 모두 ansi(euc-kr) 파일이다. 내가 사용하는 서버가 UTF-8이라 페이지를 모두 utf-8로 인코딩을 변경한 후(meta 태그의 캐릭터셋도 변경해야 함) 다시 시도해 봤다. 페이지에서는 한글이 정상으로 돌아왔지만 여전히 KCP에서 전송받은 알림들은 깨져 보인다.

Text로 된 파일들을 모두 utf-8로 인코딩을 변경 한 후 메타 태그도 변경한다.

 

<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>

 

구글링을 해보니 전송되어 온 메시지들을 iconv를 이용해 인코딩을 변환 하라는 내용이 많다. 방법들이 내가 원하는 해답은 아니였다. 샘플로 받은 파일들을 모두 열어서 가상 실행을 하면서 하나씩 모두 살펴 봤다. 해결 방법은 생각보다 간단한 곳에 있었다.

 

cfg/site_conf_inc.php 파일을 열어보면 아래와 같은 내용이 있다.

 /* ============================================================================== */
 /* = ※ 주의 ※                                                                 = */
 /* = * g_conf_js_url 설정                                                       = */
 /* =----------------------------------------------------------------------------= */
 /* = 테스트 시 : src="http://pay.kcp.co.kr/plugin/payplus_test.js"              = */
 /* =             src="https://pay.kcp.co.kr/plugin/payplus_test.js"             = */
 /* = 실결제 시 : src="http://pay.kcp.co.kr/plugin/payplus.js"                   = */
 /* =             src="https://pay.kcp.co.kr/plugin/payplus.js"                  = */
 /* =                                                                            = */
 /* = 테스트 시(UTF-8) : src="http://pay.kcp.co.kr/plugin/payplus_test_un.js"    = */
 /* =                    src="https://pay.kcp.co.kr/plugin/payplus_test_un.js"   = */
 /* = 실결제 시(UTF-8) : src="http://pay.kcp.co.kr/plugin/payplus_un.js"         = */
 /* =                    src="https://pay.kcp.co.kr/plugin/payplus_un.js"        = */
 /* ============================================================================== */
$g_conf_js_url    = "http://pay.kcp.co.kr/plugin/payplus_test.js";

플러그인 파일이 있는 경로가 여러개가 보인다. 위에는 euc-kr 서버에서 사용 할 수 있는 플로그인이고 아래는 UTF-8 서버에서 사용 할 수 있는 플러그인이다. kcp에서 배포한 파일은 기본적으로 euc-kr로 돼 있다. 현재 작업중이라면 플러그인 경로를 아래와 같이 수정해 보자.

$g_conf_js_url    = "http://pay.kcp.co.kr/plugin/payplus_test.js";

를 

$g_conf_js_url    = "http://pay.kcp.co.kr/plugin/payplus_test_un.js";

이렇게 변경하자.

 

테스트가 완료 되었을 때는 마지막에 실결제 시(UTF-8) 경로로 변경해 주면 된다. 이제 다시 테스트 해보면 플러그인에서 전송 된 한글이 깨지지 않는다. 언제부터인지는 모르지만 KCP는 이미 UTF-8을 위한 유니코드 플러그인을 제공하고 있었다.

 

http : 보안 되지 않은 80번 포트의 일반 HTML 프로토콜

https : SSL이 적용 된 보안 문서 프로토콜

728x90
반응형