Method: refundResultNotification

refund 메서드를 호출한 후 Google에 환불 결과를 알립니다.

환불은 refund 메서드 호출 중에 동기식으로 처리되어야 하지만, 이 메서드는 작업을 수행한 후 결과를 반환하기 전에 동기 호출이 실패하는 경우 Google에 빠른 백업 신호를 제공합니다. 이렇게 하면 향후 재시도를 예약하는 데 따르는 지연을 방지할 수 있습니다.

refundResult 값은 이 refundRequestId에 멱등성이므로 이후에 이 메서드를 호출해도 이 값을 변경할 수 없습니다.

요청을 처리하는 동안 엔드포인트에서 오류가 발생하면 이 엔드포인트의 응답은 ErrorResponse 유형이 됩니다.

이 메서드가 HTTP 200을 반환하지 않는 경우 이 쿼리에 대한 응답이 비어 있을 수 있습니다. 명확한 설명이 포함된 ErrorResponse를 사용하여 공격자가 다른 통합업체의 결제 통합업체 계정 식별자를 이해할 수 있는 상황에서는 응답 본문이 비어 있습니다. 서명 키가 일치하지 않거나 결제 통합업체 식별자를 찾을 수 없거나 암호화 키를 알 수 없는 경우 이 메서드는 본문이 비어 있는 HTTP 404를 반환합니다. 요청 서명을 확인할 수 있는 경우 오류에 관한 추가 정보가 응답 본문에 반환됩니다.

요청의 예는 다음과 같습니다.


{
  "requestHeader": {
    "protocolVersion": {
      "major": 1,
      "minor": 1,
      "revision": 0
    },
    "requestId": "HsKv5pvtQKTtz7rdcw1YqE",
    "requestTimestamp": "1481855928301"
  },
  "paymentIntegratorAccountId": "InvisiCashUSA_USD",
  "refundRequestId": "hH1T32PI86CpKwjuf6oD2r",
  "paymentIntegratorRefundId": "invisi/Id::xx__1243",
  "refundResult": "SUCCESS"
}

응답 예는 다음과 같습니다.


{
  "responseHeader": {
    "responseTimestamp": "1481855928376"
  },
  "result": "SUCCESS"
}

HTTP 요청

POST https://vgw.googleapis.com/secure-serving/gsp/v1/refundResultNotification/:PIAID

요청 본문

요청 본문에는 다음과 같은 구조의 데이터가 포함됩니다.

JSON 표현
{
  "requestHeader": {
    object (RequestHeader)
  },
  "paymentIntegratorAccountId": string,
  "refundRequestId": string,
  "refundResult": enum (RefundResultCode),
  "paymentIntegratorRefundId": string
}
필드
requestHeader

object (RequestHeader)

필수: 모든 요청의 공통 헤더입니다.

paymentIntegratorAccountId

string

필수: 환불이 발생한 결제 통합업체 계정 식별자입니다.

refundRequestId

string

필수: 이 환불의 고유 식별자로, refund 메서드가 호출되었을 때 requestId 필드에 의해 설정됩니다.

refundResult

enum (RefundResultCode)

REQUIRED: 환불의 결과입니다.

paymentIntegratorRefundId

string

필수: 이 식별자는 통합업체에만 해당되며 통합업체에 의해 생성됩니다. 통합업체가 이 환불을 알고 있는 식별자입니다.

편의를 위해 송금 세부정보에 이 식별자가 포함되어 있습니다.

응답 본문

refundResultNotification 메서드의 응답 객체입니다.

성공할 경우 응답 본문에 다음 구조의 데이터가 포함됩니다.

JSON 표현
{
  "responseHeader": {
    object (ResponseHeader)
  },
  "result": enum (RefundResultNotificationResultCode)
}
필드
responseHeader

object (ResponseHeader)

REQUIRED: 모든 응답의 공통 헤더입니다.

result

enum (RefundResultNotificationResultCode)

REQUIRED: 이 호출의 결과입니다.

RefundResultCode

고유한 결과 코드가 환불됩니다.

열거형
UNKNOWN_RESULT 이 기본값을 설정하면 안 됩니다.
SUCCESS 환불이 완료되었습니다.
NO_MONEY_LEFT_ON_TRANSACTION 환불할 수 없습니다. 거래에 남은 금액이 없습니다. 일반적으로 통합업체와 Google 간의 버그를 나타냅니다. Google에서 원본 캡처 금액보다 많은 금액을 환불하도록 요청해서는 안 됩니다.
ACCOUNT_CLOSED

통합업체가 보유한 계정이 해지되었습니다.

이 값을 반환하면 사용자의 결제 수단이 Google에서 종료됩니다. 사용자는 연결 흐름을 다시 거쳐 새 결제 수단을 추가해야 합니다.

ACCOUNT_CLOSED_ACCOUNT_TAKEN_OVER

통합업체와 연결된 사용자 계정이 폐쇄되었으며 계정이 탈취된 것으로 의심됩니다.

이 값을 반환하면 사용자의 결제 수단이 Google에서 종료됩니다. 사용자는 연결 흐름을 다시 거쳐 새 결제 수단을 추가해야 합니다.

ACCOUNT_CLOSED_FRAUD

통합업체에 보류된 사용자 계정이 사기로 인해 해지되었습니다.

이 값을 반환하면 사용자의 결제 수단이 Google에서 종료됩니다. 사용자는 연결 흐름을 다시 거쳐 새 결제 수단을 추가해야 합니다.

ACCOUNT_ON_HOLD 사용자의 계정이 현재 보류 중이며 환불을 수락할 수 없지만 나중에 사용자 계정에서 환불을 수락할 수 있습니다. Google에서 향후 다른 환불을 요청할 수 있으나 새로운 requestId에서 환불을 요청할 것이므로 이 요청은 완료된 것으로 간주됩니다.
REFUND_EXCEEDS_MAXIMUM_BALANCE 현재 환불을 처리할 경우 사용자의 잔액이 최대 허용 금액을 초과하게 되므로 처리할 수 없습니다. Google에서 향후 다른 환불을 요청할 수 있으나 새로운 requestId에서 환불을 요청할 것이므로 이 요청은 완료된 것으로 간주됩니다.
REFUND_WINDOW_EXCEEDED 환불 허용 기간이 지났기 때문에 환불을 처리할 수 없습니다.

RefundResultNotificationResultCode

refundResultNotification 메서드의 결과 코드

열거형
UNKNOWN_RESULT 이 기본값을 설정하면 안 됩니다.
SUCCESS 환불 결과 알림에 성공했습니다.