KCP의 간편결제중 네이버페이 에러(X-Frame-Options) 채택완료
KCP를 이용중입니다.
모바일 쇼핑몰에서 간편결제중 네이버 페이로 결제를 하면
-------------에러메세지--------------
Refused to display 'https://nid.naver.com/nidlogin.login?svctype=262144&url=https%3A%2F%2Fm.pay.naver.com%2Fz%2Fpayments%2Fauth-pay%2F20201028bjZ1OWtaUTJXZGhFWVMwM1dyVU1lYVl1WkRvPQ%3D%3D' in a frame because it set 'X-Frame-Options' to 'sameorigin'.
-------------에러메세지--------------
이렇게 나오면서 네이버 결제창이 안보입니다.
PC는 정상작동됩니다, 모바일에서도 카카오페이등의 간편결제도 이상없이 작동됩니다.
iframe 호출시 특정 소스가 필요한지 문의드립니다.
소스 => /mobile/shop/kcp/order_approval_form.php
</p>
<p>
<!-- 스마트폰에서 KCP 결제창을 레이어 형태로 구현-->
<div id="layer_receipt" style="position:absolute; left:1px; top:1px; width:100%;height:100%; z-index:1; display:none;">
<table width="100%" height="100%" border="-" cellspacing="0" cellpadding="0" style="text-align:center">
<tr height="100%" width="100%">
<td>
<iframe name="frm_receipt" frameborder="0" border="0" width="100%" height="100%" scrolling="auto"></iframe>
</td>
</tr>
</table>
</div></p>
<p>
답변 2개
/etc/apache2/conf-available/security.conf 에서 다음 코드 앞의 #을 넣어 주석 처리 하시면 됩니다.
header("X-Frame-Options: SAMEORIGIN"); <---같은 사이트 주소만 허용할때 사용합니다
</p>
<p>#Header set X-Frame-Options: "sameorigin" </p>
<p>
추가: 만약 호스팅을 사용중이시라면 호출페이지 상단에 header("X-Frame-Options: allow-from https://nid.naver.com");
답변에 대한 댓글 3개
영카트에서 iframe으로 짜여진 소스라서요..
/mobile/shop/kcp/order_approval_form.php
네이버에도 문의해봐야겠네요..
댓글을 작성하려면 로그인이 필요합니다.
자체해결입니다.
/mobile/shop/kcp/order_approval_form.php => line 171
if(!(typeof v_frm.naverpay_direct !== "undefined" && v_frm.naverpay_direct.value === 1)) {
</strong>
// 네이버페이면 반드시 페이지전환 방식이어야 하며, 그 외에는 iframe 방식으로 한다.
if(!(typeof v_frm.naverpay_direct !== "undefined" && v_frm.naverpay_direct.value === 'Y')) { // 네이버페이가 아니면
v_frm.target = "frm_receipt";
}</p>
<p><strong>
이렇게 수정하니 정상작동합니다.
답변주신 https://sir.kr/bbs/profile.php?mb_id=naver_mxia5snd" onclick="return false;" rel="nofollow" target="_blank" title="스피드S 자기소개">스피드S 님 감사합니다.
댓글을 작성하려면 로그인이 필요합니다.
답변을 작성하려면 로그인이 필요합니다.
로그인
근데 해보라는데로 conf도 바꾸고 header도 추가하고 했는데
같은 증상입니다.ㅠㅠ