requestPayment() 오류 처리와 화면 제어
-

안녕하세요. Toss Front Plugin의 requestPayment() 오류 처리와 화면 제어에 대해 문의드립니다.
결제 중 아래 예외가 반환되어 플러그인의 catch가 실행됐는데, 단말기에는 “결제 중 오류가 생겼어요”, “사유: …”, “다른 수단으로 결제” 화면이 표시됩니다. 해당 화면은 플러그인에서 구성한 화면이 아닙니다.
-
requestPayment()가 예외를 반환한 후에도 SDK 오류 화면이 유지되는 것이 정상 동작인가요?
-
이 상태에서 “다른 수단으로 결제” 버튼을 누르면 어떤 흐름으로 진행되나요? 기존 Promise가 이미 reject됐다면 이후 결제 결과는 어떻게 전달되나요?
-
플러그인은 예외를 받은 즉시 Template API로 화면 전환이 가능한가요? SDK 오류 화면과 충돌하지 않도록 권장되는 처리 방식이 있는지 궁금합니다.
감사합니다.
-
-
안녕하세요. 토스플레이스 개발자센터입니다.
문의 주신 결제 오류 발생 후 화면 동작과 재결제 처리 방식에 대해 안내 드립니다.
-
예외 반환 후 오류 화면이 유지되는 이유
결제 실패 결과를 플러그인에 전달하는 처리와 프론트 결제창을 닫는 처리는 별개입니다. 따라서 catch가 실행된 뒤에도 오류 안내 화면이 잠시 표시될 수 있습니다. 현재 구현상 해당 화면은 약 3초 뒤 자동으로 닫힙니다.
-
‘다른 수단으로 결제’ 버튼의 동작
해당 버튼은 현재 결제창을 닫고 플러그인 화면으로 돌아가는 기능입니다. 버튼을 누르는 것만으로 결제수단 선택이나 재결제가 자동으로 진행되지는 않습니다.
이미 실패로 종료된 requestPayment에는 이후 결제 결과가 추가로 전달되지 않습니다. 재결제하려면 새로운 paymentKey로 requestPayment를 다시 호출하고, 새 요청의 결과를 처리해 주세요. 결제 요청 가이드
-
Template API를 통한 화면 전환
catch에서 Template API로 플러그인 화면을 변경할 수 있지만, Template API 호출만으로 프론트의 결제 오류 화면이 닫히지는 않습니다. 변경한 플러그인 화면은 결제창이 닫힌 뒤 표시됩니다.
오류 화면을 즉시 닫아야 한다면, 프론트 앱 2.71 이상에서 canCancelPayment로 종료 가능 여부를 확인한 뒤 cancelPayment를 호출할 수 있습니다. canceled가 true인지 확인하고, 화면 전환은 오류 처리 흐름 한 곳에서만 실행해 중복 처리를 방지해 주세요.
여기서 cancelPayment는 결제창을 닫는 기능이며, 승인된 결제를 취소하는 기능과는 다릅니다. 결제창 닫기 가이드
-
Hello! It looks like you're interested in this conversation, but you don't have an account yet.
Getting fed up of having to scroll through the same posts each visit? When you register for an account, you'll always come back to exactly where you were before, and choose to be notified of new replies (either via email, or push notification). You'll also be able to save bookmarks and upvote posts to show your appreciation to other community members.
With your input, this post could be even better 💗
등록 로그인