새 기능연동·실결제 준비 화면 개편자세히 보기
marupay
전체 가이드

결제5 분 분량

결제가 실제 수취 확인 뒤에만 완료되는 이유

‘보냈어요’ 버튼, 확인 대상, 그리고 결제가 확인 중일 때 고객사 구매 흐름이 할 일.

MaruPay 팀

MaruPay 결제 화면에서 사용자는 안내에 따라 결제를 제출합니다. 그 순간을 결제 완료로 보면 편하겠지만, MaruPay는 그렇게 하지 않고 고객사 연동도 그러면 안 됩니다.

제출은 결제가 아닙니다

제출된 결제는 주장일 뿐입니다. 사용자는 잘못 입력하고, 중간에 멈추고, 버튼을 두 번 누릅니다. 제출 시점에 주문을 반영하면 이 모든 경우가 고객 문의와 수작업 정정으로 이어집니다. 그래서 MaruPay 결제는 실제 수취가 확인될 때까지 확인 중 상태로 남습니다.

정확히 한 요청, 아니면 확인 대상

확인된 수취는 열려 있는 결제 요청 중 정확히 한 건과 맞을 때만 결제를 완료합니다. 맞는 요청이 없거나 두 요청이 똑같이 맞으면 확인 대상으로 보냅니다. 운영자가 근거를 보고 맞는 결제에 귀속한 뒤에야 payment.completed가 나갑니다.

  • 맞는 요청 없음: 수취는 확인 대상에서 기다리고, 고객사에는 아무것도 보내지 않습니다.
  • 맞는 요청 둘 이상: 운영자가 맞는 요청을 고를 때까지 보류합니다.
  • 요청 만료 후 수취: 만료된 주문을 완료하지 않고 확인 대상으로 보류합니다.

고객사 구매 흐름이 할 일

  • 주문은 payment.completed에서만 반영하세요. 돌아오기 주소는 사용자가 돌아왔다는 뜻이지 결제가 완료됐다는 뜻이 아닙니다.
  • 확인 중인 동안에는 사용자에게 기다리는 상태를 분명히 보여 주세요. 결제 화면도 그렇게 합니다.
  • payment.expired가 오면 주문을 풀어 주세요.
  • 확실히 알아야 하면 GET /v1/payments/{id}로 결제 상태를 조회하세요.

흔한 경우엔 몇 초 더 걸리지만, 나머지 모든 경우가 훨씬 조용해집니다. 고객사 전체에서 제출부터 수취 확인까지 중앙값은 38초이고, ‘결제했는데 아무 일도 없어요’로 시작하는 문의는 대부분 사라집니다.

한국 사용자에게 상품권 결제를 열어 주세요.

서비스에 대해 알려 주세요. 콘솔 계정을 준비하고, 연동 시험까지 함께 안내하고, 통과하면 실결제를 엽니다.