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가 없으면 새 소유권 주장 ID가 생성됩니다. 동일한 고객 이의 제기의 연장인 경우 호출자는 이전 getDisputeInquiryReport 호출에서 반환된 googleClaimId를 제공할 수 있습니다.

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

이전 getDisputeInquiryReport 호출에서 반환되지 않은 googleClaimId를 제공하는 것은 유효하지 않습니다. 이 경우 HTTP 400 Bad Request가 반환됩니다.

requestOriginator

object (RequestOriginator)

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

응답 본문

getDisputeInquiryReport 메서드의 응답 페이로드입니다.

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

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

object (ResponseHeader)

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

result

enum (GetDisputeInquiryReportResultCode)

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

googleClaimId

string

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

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

report

object (PurchaseReport)

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

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

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

CaptureRequestCriteria

원래 캡처 요청을 기반으로 한 결제 조회 기준입니다.

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 내에서 고유해야 합니다.

GetDisputeInquiryReportResultCode

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

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

PurchaseReport

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

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

object (CustomerAccount)

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

order

object (Order)

REQUIRED: 결제된 주문에 관한 정보입니다.

payment

object (Payment)

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

CustomerAccount

고객 계정에 대한 정보

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)

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

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

선택사항: 이 국가의 최상위 행정 구역 단위 예: 미국 주, IT 지역, 중국 주, 일본 현'

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)

필수: 환불이 시작된 시점의 타임스탬프로, 에포크 이후 밀리초로 표시됩니다.

PaymentCardDetails

크레딧 및 직불카드.

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

enum (AuthResult)

REQUIRED: 결제 인증 결과입니다.

AuthResult

결제 인증 결과

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