본문 바로가기
PHP

LG 유플러스 결제창이 iframe이 아닌 별도의 윈도우로 뜰 때

by ethanjoh 2016. 5. 10.

크롬으로 결제 테스트를 했을 때는 아무런 문제없이 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로 프로토콜이 지정되지 않아서 발생하는 문제였음.