크롬으로 결제 테스트를 했을 때는 아무런 문제없이 iframe 삽입 방식으로 결제창이 떴는데 IE로 실행하기만 하면 별도의 윈도우 탭으로 결제창이 하나 또는 두 개씩이나 뜨고 결제까지는 성공해도 제대로 부모창으로 돌아가지 못해 최종적인 결과화면을 볼 수 없어 제대로 처리가 되지 않는 문제가 발생했다.
고객센터 기술지원팀과 이것저것 테스트해보았으나 샘플 코드 페이지는 정상적으로 실행이 되고 있었다.
웃기는건 별도의 윈도우 탭으로 결제창이 떴을 때 닫고 난 뒤 부모창에서 리프레시를 하고 다시 결제창을 띄워보면 부모창 안에서 결제창이 정상적으로 뜬다는 것이었다.
(정상적으로 실행이 되었을 때의 화면)
결국 소스코드에 이상이 있어서 그럴 수 밖에 없다.
첫 번째로 찾아낸 것은 iframe 이라는 파라미터가 대소문자 2개가 있다는 것.
<input type="hidden" name="LGD_WINDOW_TYPE" id="LGD_WINDOW_TYPE" value="iframe">
<input type="hidden" name="LGD_CUSTOM_SWITCHINGTYPE" id="LGD_CUSTOM_SWITCHINGTYPE" value="IFRAME">
LGD_WINDOW_TYPE은 소문자 iframe, LGD_CUSTOM_SWITCHINGTYPE은 대문자 IFRAME이었다.
혹시라도 POST 값으로 제대로 전달이 안될 수 있어 하드코딩도 해보고 실행해 봤지만 여전히 동일한 문제 발생.
sample_crosssplatform.html을 실행해서 결제하기 버튼을 누르면 payres_crossplatform.php 파일에서 정상적으로 결제창이 뜨는 것을 확인할 수 있었다.
결국 샘플 소스코드와 내가 수정, 작성한 소스코드 사이에 어떤 차이가 있는지 라인 바이 라인 대조해 보는 수 밖에...
그러다가 찾아낸 것이 http 프로토콜.
나중에 보안서버를 붙일 것을 생각해서 a href="//도메인/파일"로 셋팅을 해두었는데 http로 프로토콜이 지정되지 않아서 발생하는 문제였음.
'PHP' 카테고리의 다른 글
sublimelinter를 사용해 실시간으로 문법 오류 체크하기 (2) | 2016.03.31 |
---|---|
LG 유플러스 전자결제(PG) 사용하기 (1) | 2016.02.29 |
서브도메인에서 세션공유하기 (1) | 2012.09.21 |
서버의 현재 디렉토리명을 반환하는 함수 (0) | 2009.11.10 |
mysql improved 함수 사용하기 (0) | 2009.02.16 |