danii
danii2y ago

결제취소 버튼 클릭 후 오류

결제를 시도할 때 닫기 버튼을 클릭하거나, 약관 동의 후 다음 버튼을 클릭하고 X 버튼을 클릭하면 캡쳐 화면과 같이 빈 화면이 나옵니다. 정상적으로 결제가 완료 되면 문제는 없지만, 중간에 결제를 취소하면 이후 작업을 진행 할 수 없고 새로고침을 해야만 합니다. 콘솔에러는 아래와 같습니다. Uncaught DOMException: Blocked a frame with origin "주소 URL" from accessing a cross-origin frame. at 주소 URL 어떻게 해결할 수 있을까요?
No description
32 Replies
토스페이먼츠 BOT
⏳ 잠시만 기다려주세요! 곧 답변드리겠습니다
오류 문의일 경우 아래 정보를 미리 전달해주시면, 빠른 답변에 도움이 됩니다.
- 주문번호(orderId) : - 문의 내용 :
(img를 함께 첨부해주시면 도움이됩니다)
* 계약관련 내용은 1544-7772로 문의주세요. * 주말/공휴일에는 답변이 늦을 수 있어요.
김차장
김차장2y ago
안녕하세요, 혹시 failUrl 을 어떻게 세팅하여 보내셨을까요?
Kimoon Lee
Kimoon Lee2y ago
아마도 결제 창을 여신 사이트와 failurl 사이트간에 도메인이 다른것으로 보이는데요.
조단비
조단비2y ago
전체 console은 아래와 같습니다. DOMException: Blocked a frame with origin "https://api.tutoring.co.kr" from accessing a cross-origin frame. at https://api.tutoring.co.kr/mvc/charge_by_uplus:1:23 도메인이 다를 때는 어떻게 해결하면 될까요?
Kimoon Lee
Kimoon Lee2y ago
도메인이 다르면 브라우저 보안정책에 의해 redirect가 불가합니다. XPAY 결제모듈을 사용하고 계신가요? return URL 에서 취소 시에 어떻게 처리하고 계신지 코드를 볼수 있을까요? https://api.tutoring.co.kr/mvc/charge_by_uplus 여기로 이동한후에 이 페이지 안에서 다른곳으로 이동하면서 에러가 발생하는 것으로 보입니다. https://api.tutoring.co.kr/mvc/charge_by_uplus 이 페이지에서 실패시에 진행하는 코드를 확인해 주셔야 할것 같아요..
조단비
조단비2y ago
openXpay를 사용하고 있습니다. 실패 시 다른 처리를 해 주고 있지 않는 것 같습니다..
Kimoon Lee
Kimoon Lee2y ago
저희가 사이트를 볼수 있을까요?
조단비
조단비2y ago
https://tutoring.co.kr/home/order?courseIdx=undefined&ptype=Kr 위 주소에서 결제하기 버튼 누르시면 됩니다.
국민가격 1:1 영어회화 튜터링
5년 연속 소비자 만족도 1위! 국민가격 1:1 영어회화 튜터링을 무료 체험해보세요!
Kimoon Lee
Kimoon Lee2y ago
https://api.tutoring.co.kr/mvc/charge_by_uplus 이페이지에서 실패시에 api.tutoring.co.kr 로 이동을 시키시는것 같은데요. 이 페이지 코드를 공유해 주실수있을까요?
Kimoon Lee
Kimoon Lee2y ago
https://tutoring.co.kr/ 이 도메인에 있는 페이지로 이동을 시켜주셔야 합니다.
국민가격 1:1 영어회화 튜터링
5년 연속 소비자 만족도 1위! 국민가격 1:1 영어회화 튜터링을 무료 체험해보세요!
조단비
조단비2y ago
이렇게 전달 드리면 될까요?
Kimoon Lee
Kimoon Lee2y ago
이건 결제창을 여시는 코드로 보입니다. 이것 말고 https://api.tutoring.co.kr/mvc/charge_by_uplus 이 URL 에서 동작하는 코드를 확인해주세요..
조단비
조단비2y ago
이 부분 맞을까요?
No description
조단비
조단비2y ago
확인 한 번 부탁드리겠습니다.🥹
이실장
이실장2y ago
If($LGD_RESPONSE=='S053'...) 부분 까진 정상적으로 진입되시나요?
조단비
조단비2y ago
확인에 시간이 좀 필요할 것 같습니다. 확인 후 말씀 드리겠습니다. 식사는 맛있게 하셨나요? 확인 결과 f($LGD_RESPONSE=='S053'...)로 진입 하고, <html><sctipt> parent.closeIfram();</script></html>도 받는 것 확인 했습니다.
Ayaan이안
Ayaan이안2y ago
네, 아마 iframe 안쪽과 바깥쪽의 origin이 달라 발생하는 문제로 보입니다. 기본적으로 iframe 안쪽과 바깥쪽의 origin이 다르면 안쪽에서 parent를 통해 진행되거나 바깥쪽에서 contentWindow를 통해 진행되는 모든 작업에서 DOMException: Blocked a frame with origin 오류가 나게됩니다. 확인해보니 tutoring.co.kr과 api.tutoring.co.kr 로 서브도메인 방식으로 도메인이 다른거 같아서 location.domain = "tutoring.co.kr" 스크립트를 바깥쪽과 안쪽 모두 실행한 뒤 호출할 수 있도록 한번 수정하시고 테스트해보시겠어요?
조단비
조단비2y ago
바깥쪽과 안쪽이 어디일까요?
Kimoon Lee
Kimoon Lee2y ago
혹시 if ($LGD_RESPCODE == "0000") 일때 최종적으로 실행되는 코드는 어떻게 되시나요?
바깥쪽과 안쪽이 어디일까요?
이부분은 결제창을 호출하신 tutoring.co.kr 과 결제창 iframe 내부의 api.tutoring.co.kr 을 말씀드리는 겁니다.
조단비
조단비2y ago
if ($LGD_RESPCODE == "0000") 일 때는 결제 처리 완료 후 redirect 하고 있습니다. 그리고 결제 호출 하는 부분에 아래와 같이 입력해 주었고, else { location.domain = "tutoring.co.kr"; form.LGD_WINDOW_TYPE.value = "iframe"; form.LGD_CUSTOM_SWITCHINGTYPE.value = "IFRAME"; form.LGD_OSTYPE_CHECK.value = "P"; form.LGD_CUSTOM_SKIN.value = "red"; form.LGD_WINDOW_VER.value = "2.5"; } }, https://api.tutoring.co.kr/mvc/charge_by_uplus 이 동작 하는 부분에서 아래와 같이 입력 해 주었습니다. if($LGD_RESPONSE=='S053'...) { <html><sctipt> location.domain = "tutoring.co.kr"; parent.closeIfram();</script></html> } iframe 내부는 저희가 가져다 쓰는 것이기 때문에 수정할 수 없는 부분 아닌가요..?
Kimoon Lee
Kimoon Lee2y ago
처리 완료후 redirect 하는 URL 이 tutoring.co.kr 이실것 같네요.. 현재 상태에서는 return URL 을 tutoring.co.kr 로 설정해서 처리하셔야 할것 같습니다. returnURL 이 iframe 내부에서 호출되도록 되어 있어서, parent 는 tutoring.co.kr 인데 iframe 안에 api.tutoring.co.kr 페이지가 있고, 이 페이지에서 parent 의 closeIframe 을 호출하기때문에 발생하는 에러입니다.
danii
daniiOP2y ago
말씀 해 주신대로라면 redirect 하는 부분에서 location.domain = “tutoring.co.kr” 처리 해 주면 될까요?
Kimoon Lee
Kimoon Lee2y ago
지금 이미 if($LGD_RESPONSE=='S053'...) { <html><sctipt> location.domain = "tutoring.co.kr"; parent.closeIfram();</script></html> } 이렇게 해주고 계신데도 에러가 나는 것이라 실제 https://api.tutoring.co.kr/mvc/charge_by_uplus 이 페이지를 tutoring.co.kr에서 동작하도록 하시는게 좋을것 같습니다.
Ayaan이안
Ayaan이안2y ago
기본적으로 바깥과 안에 모두 입력해야 하는 것으로 보입니다.
danii
daniiOP2y ago
네 말씀 해 주신대로 다시 한 번 하 보도록 하겠습니다. 감사합니다.
Ayaan이안
Ayaan이안2y ago
둘다 설정하지 않은 경우
No description
Ayaan이안
Ayaan이안2y ago
안쪽에만 설정한경우
No description
Ayaan이안
Ayaan이안2y ago
안될 경우 https://api.tutoring.co.kr/mvc/charge_by_uplus 이 페이지를 tutoring.co.kr에서 동작하도록 수정해 주셔야 할 것 같습니다.
Ayaan이안
Ayaan이안2y ago
네이버 블로그 | 로그의 개발일지
[JavaScript]Uncaught DOMException : Blocked a frame with origin "도메...
오류 내용 - Uncaught DOMException : Blocked a frame with origin "도메인" from access...
Ayaan이안
Ayaan이안2y ago
이 방법을 참고하시는 것도 좋을거 같긴합니다 혹여나 domain 변경이 불가능한경우
danii
daniiOP2y ago
감사합니다!
토스페이먼츠 BOT
❤️ 기술문의 경험이 어떠셨나요?!
간단히 코멘트 남겨주세요! 제품 발전에 큰 힘이 됩니다.

Did you find this page helpful?