2023년 7월 14일 ・ 읽는 시간 5분
리다이렉트 URL의 개념과 결제 요청 후 돌아온 정보를 처리하는 방법을 자세히 알려드려요.
리다이렉트 URL은 결제 요청 결과를 알려주고, 성공하거나 실패한 후에 사용자가 돌아갈 수 있는 웹사이트의 URL을 뜻해요. 결제 연동 과정에서 요청 결과를 확인할 때 사용하죠.
결제를 요청할 때 가맹점 쇼핑몰의 URL 오리진을 포함한 성공, 실패 URL을 각각 successUrl
또는 failUrl
의 값으로 설정해요. 결제 요청을 하고 나면 토스페이먼츠에서 가맹점이 결제를 요청할 때 설정한 리다이렉트 URL로 이동시켜요. 이동되는 리다이렉트 URL에는 요청 결과와 함께 관련 데이터가 쿼리 파라미터로 전달돼요. 결제 요청에 성공했을 때는 결제 정보, 실패했을 때는 에러 정보가 전달되죠. 결제 요청에 성공했다면 돌아온 값들로 결제 승인 API를 호출할 수 있고, 실패했다면 에러를 확인하고 문제를 해결해야 해요. 이렇게 리다이렉트 URL은 결제 요청 결과를 알려주고, 그 결과로 결제 승인까지 할 수 있는 중간 역할을 하기 때문에 중요해요.
결제 요청에 성공했다고 가정하고 전체 흐름을 알아볼게요.
- 구매자가 주문서 페이지에서 결제에 필요한 정보를 입력합니다.
- 결제를 요청하면 주문서 페이지의 결제 정보가 PG사로 전송됩니다.
- PG사는 카드사에 결제 정보에 대한 인증을 요청하고, 인증 결과를 받아 리다이렉트 URL 쿼리 파라미터로 포함한 뒤 이동시킵니다.
- 인증에 성공해서 성공 리다이렉트 URL로 이동했다면 URL에 포함된 파라미터를 사용해 결제 승인을 요청합니다.
- 결제 승인 결과를 확인합니다. 승인 요청에 성공했다면 돌아온 결제 정보를 저장하고 구매자를 성공 페이지로 이동시키세요. 실패했다면 에러 메시지를 확인하고 문제가 되는 부분을 수정해주세요.
3번과 4번 과정에 대해 자세히 설명할게요. 결제를 요청하면 차례로 인증과 승인 과정이 진행됩니다. 인증은 결제를 승인하기 전 결제 정보가 올바른지 검증하는 과정입니다. 승인은 인증에 성공한 결제를 최종 승인하는 과정입니다. 승인 요청에 성공하면 결제 요청 과정이 끝납니다.
이 인증과 승인 사이에 리다이렉트 과정이 있습니다. 두 단계로 나누어져 있는 결제 요청 과정에서 첫 번째 단계인 인증 결과를 받아 다음 단계로 넘어가기 위해 리다이렉트 URL이 필요합니다. 토스페이먼츠에서 요청된 결제의 인증 결과를 URL의 쿼리 파라미터에 담아 리다이렉트하면, 상점에서는 리다이렉트 URL을 통해 인증 결과를 확인할 수 있습니다.
인증에 성공했다면 성공 리다이렉트 URL(successUrl
)에 쿼리 파라미터로 담긴 결제 정보를 이용해 승인 API를 호출합니다. 인증에 실패했다면 이동한 실패 리다이렉트 URL(failUrl
)에 쿼리 파라미터로 담긴 에러 정보를 보며 디버깅합니다.
리다이렉트 URL 방식을 사용하는 이유는 몇 가지가 있어요. 사용자가 결제를 완료하거나 결제가 실패한 후 원래 쇼핑 중이었던 앱이나 웹사이트로 돌아가면 사용자 경험이 향상돼요. 사용자가 추가적인 조치를 취할 필요 없이 결제 상태를 쉽게 확인할 수도 있어요.
PG에서는 사용자의 브라우저를 원래 사이트로 다시 이동시키면서 결제 결과(성공 또는 실패)에 대한 정보를 전달할 수 있어요. 이 정보로 웹사이트는 결제 상태를 업데이트하고, 필요한 경우 사용자에게 추가 정보를 제공할 수 있어 편리한 방법입니다.
인증 결과로 돌아온 결제 정보를 이용해 결제 승인 API를 호출하면 결제 요청 과정이 끝납니다. 10분 내에 결제 승인 API를 호출하지 않으면 결제가 취소되니 유의하세요.
Writer 한주연 Graphic 이은호, 이나눔
📍 함께 읽으면 좋을 콘텐츠