환불 절차

개요

환불은 활성 사용자 작업('환불' 버튼 누르기)으로 시작되거나 사용자 대신 자동으로 트리거될 수 있습니다. 트리거와 관계없이 비동기식 환불 요청은 Google에서 결제 통합업체로 전송됩니다. 통합업체는 요청을 확인하고 환불이 완료되면 Google에 알려야 합니다.

절차의 작동 방식

환불 절차

다음은 사용자가 시작한 비동기 환불 흐름의 예입니다.

환불 절차

다음은 위 다이어그램의 객체 목록입니다.

  • 사용자: 전체 또는 부분 환불을 원하는 사용자입니다.
  • Google 서버: 결제 통합업체에 환불 명령어를 전송하는 Google의 백엔드 서버
  • 결제 통합업체: 환불 요청을 적절한 발급기관에 전달하는 통합업체입니다.
  • Issuer(발급기관): 결제에 사용되는 발급기관으로, 환불 요청을 수락합니다.

이 예에서 환불은 사용자에 의해 시작됩니다.

  1. 사용자가 Google 서버로 환불을 시작합니다.
  2. Google은 결제 통합업체의 AsynchronousRefund 엔드포인트를 호출합니다.
  3. 통합업체가 Google에 Acknowledged 응답을 전송합니다.
  4. 통합자는 발급기관에서 적절한 Refund 엔드포인트를 호출합니다.
  5. 발급기관에서 환불을 처리하고 Success로 통합업체에 응답합니다.
  6. 통합자는 Google 서버에서 RefundResultNotification 엔드포인트를 호출하여 Google에 결과를 알립니다.
  7. Google은 RefundResultNotification을 확인합니다.
  8. Google에서 사용자의 사용 가능한 금액을 업데이트합니다.
  9. 사용자가 환불을 받습니다.

권장사항 및 기타 고려사항

애드워즈와 같은 일부 Google 제품은 계정에 크레딧이 존재하는 한 환불을 지원하기 때문에 거래 환불 요청은 무기한으로 지원되어야 합니다. 기술적 한계가 있는 경우 환불 기간은 플랫폼에서 허용하는 기간까지만 가능합니다.

원래 거래의 잔액이 환불 금액을 충당하기에 충분하지 않거나, 계정이 폐쇄되었거나 보류 중이며 통합업체에서 사용자에게 이 금액을 송금할 수 없는 경우에만 환불이 거부될 수 있습니다.

캡처 후 몇 초 이내에 환불이 시작됩니다. 환불 시기는 Google의 재량에 따릅니다.

환불을 전액 환불로 간주해서는 안 됩니다. 계정을 환불할 때 항상 refundAmount 입력란을 고려해야 합니다.

여러 부분 환불을 지원해야 합니다. 예를 들어 11달러 상당의 거래가 발생하여 사용자가 원래 거래에서 4달러, 5달러, 1.00달러의 부분 환불을 받을 수 있다고 가정해 보겠습니다. 이 경우 세 가지 환불 모두 captureRequestId는 동일하지만 requestId 값은 다릅니다. 또한 이 거래에는 $1.00만 남게 됩니다.

이제 $12.00의 구매가 발생했다고 가정해 보겠습니다. 이 예에서 사용자는 각각 $6.00를 두 번 환불할 수 있습니다. 두 환불의 requestId 값이 다르고 captureRequestId도 다르면 동일한 거래에 대해 별도의 환불로 처리해야 합니다. 이 경우 환불이 완료되면 사용자의 거래 금액이 0달러가 됩니다.