Method: getDisputeInquiryReport

결제와 관련하여 발생할 수 있는 이의 제기에 관해 고객과의 지원 대화를 나눌 수 있도록 돕는 보고서를 받습니다.

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

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

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


{
  "requestHeader": {
    "protocolVersion": {
      "major": 1,
      "minor": 1,
      "revision": 0
    },
    "requestId": "HsKv5pvtQKTtz7rdcw1YqE",
    "requestTimestamp": "1519996751331"
  },
  "paymentIntegratorAccountId": "InvisiCashUSA",
  "paymentLookupCriteria": {
    "googleTransactionReferenceNumberCriteria": {
      "googleTransactionReferenceNumber": "714545417102363157911822",
      "authorizationCode": "111111"
    }
  },
  "existingGoogleClaimId": "138431383281",
  "requestOriginator": {
    "organizationId": "ISSUER_256",
    "organizationDescription": "Community Bank of Some City",
    "agentId": "982749"
  }
}

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


{
  "responseHeader": {
    "responseTimestamp": "1519996752221"
  },
  "result": "SUCCESS",
  "googleClaimId": "138431383281",
  "report": {
    "customerAccount": {
      "customerEmail": "example@gmail.com",
      "customerName" : "Example Customer"
    },
    "order": {
      "timestamp": "1517992525972",
      "orderId": "SOP.8976-1234-1234-123456..99",
      "currencyCode": "USD",
      "subTotalAmount": "206990000",
      "totalAmount": "212990000",
      "shippingAddress": {
        "name": "Example Customer",
        "addressLine": ["123 Main St"],
        "localityName": "Springfield",
        "administrativeAreaName": "CO",
        "postalCodeNumber": "80309",
        "countryCode": "US"
      },
      "taxes": [
        {
          "description": "Colorado Sales Tax",
          "amount": "6000000"
        }
      ],
      "items": [
        {
          "description": "Super cool gizmo",
          "merchant": "HTC",
          "googleProductName": "Google Store",
          "quantity": "2",
          "totalPrice": "198000000"
        },
        {
          "description": "Gizmo charger",
          "merchant": "HTC",
          "googleProductName": "Google Store",
          "quantity": "1",
          "totalPrice": "8990000"
        }
      ]
    },
    "payment": {
      "billingAddress" : {
        "name": "Example Customer",
        "addressLine": ["123 Main St"],
        "localityName": "Springfield",
        "administrativeAreaName": "CO",
        "postalCodeNumber": "80309",
        "countryCode": "US"
      },
      "amount": "100000000",
      "refunds": [
        {
          "amount": "9250000",
          "initiatedTimestamp": "1518811245384"
        }
      ],
      "cardDetails": {
        "authResult": "APPROVED"
      }
    }
  }
}

HTTP 요청

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

요청 본문

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

JSON 표현
{
  "requestHeader": {
    object (RequestHeader)
  },
  "paymentIntegratorAccountId": string,
  "paymentLookupCriteria": {
    object (PaymentLookupCriteria)
  },
  "existingGoogleClaimId": string,
  "requestOriginator": {
    object (RequestOriginator)
  }
}
필드
requestHeader

object (RequestHeader)

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

paymentIntegratorAccountId

string

필수: 이 상호작용의 호출자 및 관련 계약 제약 조건을 식별하는 결제 통합업체 계정 식별자입니다.

paymentLookupCriteria

object (PaymentLookupCriteria)

필수: 이 문의를 조회할 결제를 나타내는 기준입니다.

existingGoogleClaimId

string

선택사항: 이 고객 이의 제기 소유권 주장을 고유하게 식별하는 getDisputeInquiryReport에 대한 이전 호출에서 반환된 Google 생성 문자열입니다.

이 필드가 없으면 새로운 소유권 주장 ID가 생성됩니다. 호출자가 동일한 고객 이의 제기의 연속인 경우 이전 getDisputeInquiryReport 호출에서 반환된 googleClaimId를 제공할 수 있습니다.

여기에 채워지거나 생성된 소유권 주장 ID는 응답의 googleClaimId 필드에 반환됩니다.

이전 getDisputeInquiryReport 호출에서 반환되지 않은 googleClaimId을 제공하는 것은 유효하지 않습니다. 이 경우 HTTP 400 잘못된 요청이 반환됩니다.

requestOriginator

object (RequestOriginator)

필수: 이 요청을 발생시킨 조직 또는 조직 하위 그룹에 대한 정보입니다.

응답 본문

getDisputeInquiryReport 메서드의 응답 페이로드

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

JSON 표현
{
  "responseHeader": {
    object (ResponseHeader)
  },
  "result": enum (GetDisputeInquiryReportResultCode),
  "googleClaimId": string,
  "report": {
    object (PurchaseReport)
  }
}
필드
responseHeader

object (ResponseHeader)

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

result

enum (GetDisputeInquiryReportResultCode)

필수: 이 호출의 결과입니다.

googleClaimId

string

선택사항: 이 고객 이의 제기를 고유하게 식별하는 Google 생성 문자열입니다. result가 SUCCESS인 경우에만 표시됩니다.

요청에 existingGoogleClaimId가 채워진 경우 동일한 값입니다. 그렇지 않으면 새로 생성된 값이 됩니다. 동일한 고객 이의 제기의 일부인 경우 향후 getDisputeInquiryReport 요청에서 이 값을 제공할 수 있습니다.

report

object (PurchaseReport)

선택사항: 요청에서 확인된 결제 이의 제기와 관련된 세부정보입니다. result가 SUCCESS인 경우에만 표시됩니다.

PaymentLookupCriteria

결제를 고유하게 조회할 수 있는 기준의 컨테이너입니다. 회원 입력란은 하나 (하나만) 채워야 합니다.

JSON 표현
{

  // Union field criteria can be only one of the following:
  "arnCriteria": {
    object (ArnCriteria)
  },
  "googleTransactionReferenceNumberCriteria": {
    object (GoogleTransactionReferenceNumberCriteria)
  },
  "captureRequestCriteria": {
    object (CaptureRequestCriteria)
  }
  // End of list of possible types for union field criteria.
}
필드

통합 필드 criteria.

criteria는 다음 중 하나여야 합니다.

arnCriteria

object (ArnCriteria)

선택사항: 획득자 참조 번호 (ARN)를 기반으로 조회를 수행합니다.

googleTransactionReferenceNumberCriteria

object (GoogleTransactionReferenceNumberCriteria)

선택사항: Google 거래 참조 번호를 기반으로 조회합니다.

captureRequestCriteria

object (CaptureRequestCriteria)

선택사항: 캡처 요청 ID를 기준으로 조회를 수행합니다.

ArnCriteria

획득자 참조 번호 (ARN)를 기반으로 한 결제 조회 기준입니다.

JSON 표현
{
  "acquirerReferenceNumber": string,
  "authorizationCode": string
}
필드
acquirerReferenceNumber

string

필수: 결제를 고유하게 식별하는 획득자 참조 번호 (ARN)입니다. 23자리 숫자여야 합니다.

authorizationCode

string

필수: 거래의 승인 코드입니다.

GoogleTransactionReferenceNumberCriteria

Google에서 생성한 거래 참조 번호를 기반으로 하는 결제 조회 기준입니다.

JSON 표현
{
  "googleTransactionReferenceNumber": string,
  "authorizationCode": string
}
필드
googleTransactionReferenceNumber

string

필수: 결제를 고유하게 식별하는 Google에서 생성된 거래 참조 번호입니다.

authorizationCode

string

필수: 거래의 승인 코드입니다.

캡처 요청 기준

원래 캡처 요청에 따른 결제 조회 기준입니다.

JSON 표현
{
  "captureRequestId": string
}
필드
captureRequestId

string

필수: 이 거래의 고유 식별자입니다. 이는 조회 중인 capture 호출 중에 Google에서 생성한 requestId입니다.

RequestOriginator

이 요청이 시작된 조직 또는 조직의 하위 그룹(선택사항) 직원에 대한 정보입니다. 이를 통해 Google은 문제 또는 악용 사례를 파악하고 paymentIntegratorAccountId보다 세분화된 수준에서 제어를 구현할 수 있습니다. 호출자가 여러 외부 클라이언트의 요청을 가져오는 중개자인 경우 특히 유용합니다.

JSON 표현
{
  "organizationId": string,
  "organizationDescription": string,
  "agentId": string
}
필드
organizationId

string

필수: 요청이 시작된 회사, 조직 또는 조직 그룹의 식별자입니다. 이 paymentIntegratorAccountId 내에서 고유해야 합니다.

organizationDescription

string

필수: 사람이 읽을 수 있는 조직 이름 또는 설명으로, Google 직원과 조직 통합업체 간의 커뮤니케이션을 원활하게 하는 데 사용됩니다.

agentId

string

선택사항: 이 요청이 시작된 organizationId에서 식별한 조직의 특정 상담사 (직원)의 고유 식별자입니다. 이 organizationId 내에서 고유해야 합니다.

이의 제기 관련 문의 결과 가져오기

getDisputeInquiryReport 메서드 호출의 결과입니다.

열거형
UNKNOWN_RESULT 이 기본값을 설정하면 안 됩니다.
SUCCESS 결제 내역이 확인되고 보고서가 제공됩니다.
PAYMENT_NOT_FOUND 요청하신 결제 내역을 찾을 수 없습니다.
PAYMENT_TOO_OLD 요청하신 지급 내역을 찾았지만 해당 지급 기간에 따라 보고서가 제공되지 않았습니다.
ORDER_CANNOT_BE_RETURNED 요청하신 결제는 존재하지만 반품할 수 없는 주문에 속해 있습니다. 소유자 요청에 따라 주문이 삭제된 경우가 그 이유일 수 있습니다.
NO_ADDITIONAL_DETAILS 요청한 결제 내역을 찾았지만 보고서를 사용할 수 없습니다.

구매 보고서

요청된 결제와 관련된 구매의 세부정보가 포함된 보고서

JSON 표현
{
  "customerAccount": {
    object (CustomerAccount)
  },
  "order": {
    object (Order)
  },
  "payment": {
    object (Payment)
  }
}
필드
customerAccount

object (CustomerAccount)

필수: 고객 및 고객 계정에 관한 정보입니다.

order

object (Order)

필수: 결제가 이루어진 주문에 관한 정보입니다.

payment

object (Payment)

선택사항: 결제와 관련된 정보입니다. 참고: 하나의 주문에서 여러 번 결제할 수 있지만, 여기에는 원래 요청에서 식별된 결제에 대한 정보만 포함됩니다. 일부 주문 유형에서는 사용할 수 없습니다.

고객 계정

고객 계정 정보

JSON 표현
{
  "customerEmail": string,
  "customerName": string
}
필드
customerEmail

string

필수: 고객의 Google 계정과 연결된 이메일 주소입니다.

customerName

string

필수: 고객의 이름입니다.

주문

주문에 관한 정보입니다.

JSON 표현
{
  "timestamp": string,
  "orderId": string,
  "currencyCode": string,
  "subTotalAmount": string,
  "totalAmount": string,
  "shippingAddress": {
    object (Address)
  },
  "items": [
    {
      object (Item)
    }
  ],
  "taxes": [
    {
      object (Tax)
    }
  ]
}
필드
timestamp

string (int64 format)

선택사항: 주문이 이루어진 시점의 타임스탬프로, 에포크 이후 경과된 시간이 밀리초로 표시됩니다. 일부 주문 유형에서는 사용할 수 없습니다.

orderId

string

선택사항: 이 주문을 고유하게 식별하는 문자열입니다. 일부 주문 유형에서는 사용할 수 없습니다.

currencyCode

string

선택사항: 이 주문의 모든 금액에 대한 ISO 4217 3자리 통화 코드입니다. 일부 주문 유형에서는 사용할 수 없습니다.

subTotalAmount

string (Int64Value format)

선택사항: 세전 주문의 총금액으로, order.currencyCode에 지정된 통화의 마이크로로 표시됩니다. SUM(items.totalPrice)과 같습니다. 일부 주문 유형에서는 사용할 수 없습니다.

totalAmount

string (Int64Value format)

선택사항: 세금을 포함한 이 주문의 총 금액으로, order.currencyCode에 지정된 통화의 마이크로로 표시됩니다. subTotalAmount + SUM(taxes.amount)과 같습니다. 일부 주문 유형에서는 사용할 수 없습니다.

shippingAddress

object (Address)

선택사항: 이 주문에 포함된 실제 상품의 배송지 주소입니다.

items[]

object (Item)

필수: 이 주문에 포함된 상품의 목록입니다.

taxes[]

object (Tax)

필수: 이 주문에 포함된 상품의 목록입니다. 이 목록은 비어 있을 수 있습니다.

주소

주소에 대한 정보를 보유하는 구조입니다.

JSON 표현
{
  "name": string,
  "addressLine": [
    string
  ],
  "localityName": string,
  "administrativeAreaName": string,
  "postalCodeNumber": string,
  "countryCode": string
}
필드
name

string

선택사항: 고객의 전체 이름입니다.

addressLine[]

string

선택사항: 구조화되지 않은 주소 텍스트를 포함합니다.

localityName

string

선택사항: 내용이 명확하지 않지만 주소의 시/군/구 부분을 나타냅니다. 지역이 잘 정의되지 않거나 이 구조에 잘 맞지 않는 지역 (예: 일본 및 중국)에서는 localityName을 비워두고 addressLine을 사용하세요.

예: 미국의 도시, IT 지역, 영국의 도시

administrativeAreaName

string

선택사항: 이 국가의 최상위 행정 구역'(예: 미국 주, 이탈리아 지역, CN 지방, 일본 현)'

postalCodeNumber

string

선택사항: postalCodeNumber 값은 이름과 달리 주로 영숫자입니다. 예: '94043', 'SW1W', 'SW1W 9TQ'

countryCode

string

선택사항: 고객 주소 국가 코드입니다(ISO-3166-1 Alpha-2여야 함).

항목

주문에 포함된 상품에 관한 정보입니다.

JSON 표현
{
  "description": string,
  "merchant": string,
  "quantity": string,
  "totalPrice": string,
  "googleProductName": string
}
필드
description

string

선택사항: 구매한 상품의 설명입니다. 일부 주문 유형에서는 사용할 수 없습니다.

merchant

string

필수사항: 상품의 판매자, 아티스트 또는 제조업체입니다.

quantity

string (Int64Value format)

선택사항: 이 상품의 주문된 수량입니다.

제품에 정수 수량을 적용할 수 없는 경우 이 필드는 생략됩니다 (예: 측정되는 제품에 분수 수량이 있을 수 있음).

totalPrice

string (Int64Value format)

선택사항: 이 항목의 총가격으로, order.currencyCode에 지정된 통화의 마이크로로 표시됩니다. quantity가 채워지면 전체 수량의 총 가격이 반영됩니다. 일부 주문 유형에서는 사용할 수 없습니다.

googleProductName

string

필수: 상품의 Google 제품 서비스 이름입니다.

세금

이 주문에 적용되는 세금에 관한 정보입니다.

JSON 표현
{
  "description": string,
  "amount": string
}
필드
description

string

필수: 세금에 대한 설명입니다.

amount

string (Int64Value format)

필수: order.currencyCode에 지정된 통화의 마이크로로 표시되는 세금 금액입니다.

지급

결제에 관한 정보입니다.

JSON 표현
{
  "billingAddress": {
    object (Address)
  },
  "amount": string,
  "refunds": [
    {
      object (Refund)
    }
  ],

  // Union field fopDetails can be only one of the following:
  "cardDetails": {
    object (PaymentCardDetails)
  }
  // End of list of possible types for union field fopDetails.
}
필드
billingAddress

object (Address)

필수: 이 청구서 수신 주소의 주소입니다.

amount

string (Int64Value format)

필수: order.currencyCode에 지정된 통화의 마이크로로 표시되는 결제 금액입니다. 참고: 주문이 여러 번 결제된 경우 order.totalAmount와 일치하지 않을 수 있습니다.

refunds[]

object (Refund)

필수: 이 결제와 관련된 환불 목록입니다. 이 목록은 비어 있을 수 있습니다.

통합 필드 fopDetails.

fopDetails는 다음 중 하나여야 합니다.

cardDetails

object (PaymentCardDetails)

선택사항: 신용카드 및 체크카드와 관련된 결제 세부정보입니다.

환불

결제 환불 관련 정보입니다.

JSON 표현
{
  "amount": string,
  "initiatedTimestamp": string
}
필드
amount

string (Int64Value format)

필수: 환불 금액(order.currencyCode에 지정된 통화의 양수 마이크로)입니다.

initiatedTimestamp

string (int64 format)

필수: 환불이 시작된 시점의 타임스탬프로, 에포크 이후 경과된 시간을 밀리초로 나타냅니다.

결제 카드 세부정보

신용카드 및 체크카드와 관련된 결제 세부정보입니다.

JSON 표현
{
  "authResult": enum (AuthResult)
}
필드
authResult

enum (AuthResult)

필수: 결제 인증 결과입니다.

인증 결과

결제 승인 결과

열거형
UNKNOWN_RESULT 이 기본값을 설정하면 안 됩니다.
APPROVED 인증이 승인되었습니다.
DENIED 인증이 거부되었습니다.
NOT_ATTEMPTED 인증을 시도하지 않았습니다.