Method: getOrderDetails

Google 파트너가 최종 사용자에게 청구할 기반이 되는 주문을 받습니다.

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

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

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


{
  "requestHeader": {
    "protocolVersion": {
      "major": 1,
      "minor": 1,
      "revision": 0
    },
    "requestId": "HsKv5pvtQKTtz7rdcw1YqE",
    "requestTimestamp": "1519996751331"
  },
  "paymentIntegratorAccountId": "IntegratorFakeAccount",
  "orderLookupCriteria": {
    "googleTransactionReferenceNumberCriteria": {
      "googleTransactionReferenceNumber": "714545417102363157911822",
      "authorizationCode": "111111"
    }
  },
  "requestOriginator": {
    "organizationId": "ISSUER_256",
    "organizationDescription": "Community Bank of Some City"
  }
}

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


{
  "responseHeader": {
    "responseTimestamp": "1519996752221"
  },
  "result": "SUCCESS",
  "order": {
    "timestamp": "1517992525972",
    "orderId": "UPG.DEFC.X6F4.MEOM.CDWF",
    "currencyCode": "USD",
    "subTotalAmount": "399000000",
    "totalAmount": "459000000",
    "taxes": [],
    "items": [
      {
        "description": "YouTube TV membership",
        "merchant": "fake org",
        "googleProductName": "YouTube TV",
        "quantity": "1",
        "totalPrice": "399000000"
      },
      {
        "description": "Showtime",
        "merchant": "fake org",
        "googleProductName": "YouTube TV",
        "quantity": "1",
        "totalPrice": "6000000"
      }
    ]
  }
}

HTTP 요청

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

요청 본문

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

JSON 표현
{
  "requestHeader": {
    object (RequestHeader)
  },
  "paymentIntegratorAccountId": string,
  "orderLookupCriteria": {
    object (OrderLookupCriteria)
  },
  "requestOriginator": {
    object (RequestOriginator)
  }
}
필드
requestHeader

object (RequestHeader)

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

paymentIntegratorAccountId

string

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

orderLookupCriteria

object (OrderLookupCriteria)

REQUIRED: 조회할 주문을 나타내는 기준입니다.

requestOriginator

object (RequestOriginator)

선택사항: 이 요청을 보낸 조직 또는 조직 하위 그룹에 대한 정보입니다 (통합업체가 다른 조직을 대신하여 문의하는 경우).

응답 본문

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

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

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

object (ResponseHeader)

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

result

enum (GetOrderDetailsResultCode)

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

order

object (Order)

OPTIONAL: 송금된 주문에 관한 정보입니다. (result가 성공한 경우에만 표시됩니다.)

RequestHeader

서버로 전송된 모든 요청에 정의된 헤더 객체입니다.

JSON 표현
{
  "requestId": string,
  "requestTimestamp": string,
  "userLocale": string,
  "protocolVersion": {
    object (Version)
  }
}
필드
requestId

string

필수: 이 요청의 고유 식별자입니다.

최대 길이가 100자인 문자열이며 'a~z', 'A~Z', '0-9', ':', '-', '_' 문자만 포함됩니다.

requestTimestamp

string (int64 format)

필수: 에포크 이후 밀리초로 표시되는 이 요청의 타임스탬프입니다. 수신자는 이 타임스탬프가 '지금'의 ±60초인지 확인해야 합니다. 이 요청 타임스탬프는 재시도 시 멱등성을 갖지 않습니다.

userLocale
(deprecated)

string

지원 중단됨: 두 글자 또는 세 글자로 된 ISO 639-2 Alpha 3 언어 코드이며 원하는 경우 하이픈과 ISO 3166-1 Alpha-2 국가 코드가 뒤에 옵니다(예: 'pt', 'pt-BR', 'fil', 'fil-PH'). 응답에서 userMessage 필드를 설정하는 데 도움이 됩니다.

protocolVersion

object (Version)

필수: 이 요청의 버전입니다.

버전

기존 a.b.c 버전 구조의 구조화된 형식인 버전 객체입니다. 동일한 번호의 메이저 버전은 호환성이 보장됩니다. 부수적인 변경사항은 예고 없이 자주 변경될 수 있습니다. 통합업체는 동일한 주 버전에 대한 모든 요청을 지원해야 합니다.

JSON 표현
{
  "major": integer,
  "minor": integer,
  "revision": integer
}
필드
major

integer

REQUIRED: 메이저 버전입니다. 이는 다른 버전의 호환성 요청이 호환된다는 보장이 없는 경우에 표시됩니다.

minor

integer

필수: 마이너 버전입니다. 이는 중요한 버그 수정을 나타냅니다.

revision

integer

필수: 마이너 버전입니다. 사소한 버그 수정을 나타냅니다.

OrderLookupCriteria

주문 조회 기준입니다.

JSON 표현
{

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

통합 필드 criteria.

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

dcb3CorrelationId

string

결제를 고유하게 식별하는 Google에서 생성한 DCB 연관 ID를 기반으로 조회합니다. 이 값은 Google에서 생성되어 인증 호출 중에 이동통신사 결제 결제 통합업체로 전송되었습니다.

arnCriteria

object (ArnCriteria)

인수자 참조 번호 (ARN)를 기준으로 조회합니다.

googleTransactionReferenceNumberCriteria

object (GoogleTransactionReferenceNumberCriteria)

Google 거래 참조 번호를 기준으로 조회합니다.

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

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

RequestOriginator

이 요청이 시작된 조직 또는 조직 하위 그룹에 대한 정보입니다. 이렇게 하면 Google에서 문제나 악용을 식별하고 paymentIntegratorAccountId보다 더 세분화된 수준에서 제어 기능을 구현할 수 있습니다. 호출자가 여러 외부 클라이언트로부터 요청을 가져오는 중개 서비스 제공업체인 경우에 특히 유용합니다.

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

string

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

organizationDescription

string

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

ResponseHeader

서버에서 전송된 모든 응답에 정의된 헤더 객체입니다.

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

string (int64 format)

필수: 에포크 이후 밀리초로 표시되는 이 응답의 타임스탬프입니다. 수신자는 이 타임스탬프가 '지금'의 ±60초인지 확인해야 합니다.

GetOrderDetailsResultCode

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

열거형
GET_ORDER_DETAILS_RESULT_CODE_UNKNOWN 이 기본값을 설정하면 안 됩니다.
SUCCESS 주문이 발견되어 반품되었습니다.
ORDER_CANNOT_BE_RETURNED

요청된 주문이 존재하지만 반품할 수 없습니다. 사유로는 소유자의 요청에 따라 주문이 삭제된 케이스가 있습니다.

PAYMENT_TOO_OLD 요청된 결제 내역을 찾았지만 결제 기간이 지났기 때문에 주문 세부정보가 제공되지 않았습니다.
PAYMENT_NOT_FOUND 요청하신 결제 내역을 찾을 수 없습니다.
NO_ADDITIONAL_DETAILS 요청하신 결제 내역을 찾았지만 주문 세부정보를 확인할 수 없습니다.

주문

주문에 관한 정보입니다.

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

string (int64 format)

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

orderId

string

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

currencyCode

string

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

subTotalAmount

string (Int64Value format)

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

totalAmount

string (Int64Value format)

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

items[]

object (Item)

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

taxes[]

object (Tax)

선택사항: 이 주문에 포함된 세금의 목록입니다.

항목

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

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에 지정된 통화의 마이크로로 표시됨)