"successUrl" 또는 "failUrl"을 넘긴 경우 Promise 방식을 지원하지 않습니다.
안녕하세요 토스 페이먼츠의 api를 통해 개발하고 있는 학생입니다.
개발 중 아래와 같은 오류가 나서 댓글을 남깁니다
"successUrl" 또는 "failUrl"을 넘긴 경우 Promise 방식을 지원하지 않습니다.
현재 window.open()인 새 창 띄우기 함수를 사용하여 새로운 창에서 tossPayments.requestPayment('카드',~~) 프로미스 를 실행하고자 하니 위와같은 오류가 떴습니다.
어떤 이슈로 해당 오류가 발생하는 것인지 와 해결 방법을 공유해주시면 감사드리겠습니다.
감사합니다.
14 Replies
⏳ 잠시만 기다려주세요! 곧 답변드리겠습니다
오류 문의일 경우 아래 정보를 미리 전달해주시면, 빠른 답변에 도움이 됩니다.
- 주문번호(orderId) :
- 문의 내용 :
(img를 함께 첨부해주시면 도움이됩니다)
* 계약관련 내용은 1544-7772로 문의주세요.
* 주말/공휴일에는 답변이 늦을 수 있어요.
successUrl이나 failUrl을 넘긴다면 결제 후 해당 URL로 이동되기 때문에, promise를 통해 결과값을 받을 수 없어요
.then() 이나 await를 붙여놓으셨다면 삭제해보시기 바랍니다
해당 코드와 같이 말씀해주신대로 삭제했지만
console.log에 동일한 에러가 발생합니다!
promise 방법이 아니면 토스에서 제공해주시는 화면을 쓸수가 없는 것 일까요...?
Promise 에서는 successUrl, failUrl 파라미터를 제외 하시고 진행 하셔요
오... 말씀해주신대로 해보니 창이 뜨네요!
그렇다면 해당 결제가 끝나고 난 뒤에는 successUrl이 어디로 설정이 되는 것일까요?
결제 진행하는 페이지에서 Promise 로 값 응답 받고, 그 값을 프론트에서 백엔드로 값 전달해서 승인 하시면 되고, 승인 다 끝났으면 리다이렉션 하고 싶으면 then 으로 href 리다이렉션 걸어 두세요
아 그 응답을 받아서 동작시키면 되는 것이군요!!
덕분에 배웠습니다 ㅎㅎ 감사합니다!
👍😄
❤️ 기술문의 경험이 어떠셨나요?!
간단히 코멘트 남겨주세요! 제품 발전에 큰 힘이 됩니다.
Promise는 PC에서만 사용 가능한 점도 참고해주세요