Method: getOrderDetails

Gere um pedido que forneça a base aos parceiros do Google para cobrar os usuários finais.

Se o endpoint encontrar um erro ao processar a solicitação, a resposta dele será do tipo ErrorResponse.

As respostas a esta consulta podem ficar vazias se o método não retornar HTTP 200. O corpo da resposta fica vazio em situações em que um ErrorResponse com uma descrição clara pode ser usado para ajudar um invasor a entender o identificador da conta do integrador de pagamentos de outros integradores. Quando a chave de assinatura não corresponde, o identificador do integrador de pagamentos não é encontrado ou a chave de criptografia é desconhecida, esse método vai retornar um HTTP 404 com corpo vazio. Se for possível verificar a assinatura da solicitação, informações adicionais sobre o erro serão retornadas no corpo da resposta.

Um exemplo de solicitação é semelhante a este:


{
  "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"
  }
}

Veja um exemplo de resposta:


{
  "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"
      }
    ]
  }
}

Solicitação HTTP

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

Corpo da solicitação

O corpo da solicitação contém dados com a seguinte estrutura:

Representação JSON
{
  "requestHeader": {
    object (RequestHeader)
  },
  "paymentIntegratorAccountId": string,
  "orderLookupCriteria": {
    object (OrderLookupCriteria)
  },
  "requestOriginator": {
    object (RequestOriginator)
  }
}
Campos
requestHeader

object (RequestHeader)

OBRIGATÓRIO: cabeçalho comum para todas as solicitações.

paymentIntegratorAccountId

string

OBRIGATÓRIO: o identificador da conta do integrador de pagamentos que identifica o autor da chamada e as restrições contratuais associadas para essa interação.

orderLookupCriteria

object (OrderLookupCriteria)

OBRIGATÓRIO: critérios que indicam a ordem que será pesquisada.

requestOriginator

object (RequestOriginator)

OPCIONAL: informações sobre a organização ou o subgrupo organizacional que originou essa solicitação (se o integrador estiver nos ligando em nome de outra organização).

Corpo da resposta

Payload de resposta para o método getOrderDetails.

Se bem-sucedido, o corpo da resposta incluirá dados com a estrutura a seguir:

Representação JSON
{
  "responseHeader": {
    object (ResponseHeader)
  },
  "result": enum (GetOrderDetailsResultCode),
  "order": {
    object (Order)
  }
}
Campos
responseHeader

object (ResponseHeader)

OBRIGATÓRIO: cabeçalho comum para todas as respostas.

result

enum (GetOrderDetailsResultCode)

OBRIGATÓRIO: resultado da chamada.

order

object (Order)

OPCIONAL: informações sobre o pedido em que o pagamento foi feito. Presente apenas se result for SUCESSO.

RequestHeader

Objeto de cabeçalho definido em todas as solicitações enviadas ao servidor.

Representação JSON
{
  "requestId": string,
  "requestTimestamp": string,
  "userLocale": string,
  "protocolVersion": {
    object (Version)
  }
}
Campos
requestId

string

OBRIGATÓRIO: identificador exclusivo da solicitação.

Essa é uma string com comprimento máximo de 100 caracteres e que contém apenas os caracteres "a-z", "A-Z", "0-9", ":", "-" e "_".

requestTimestamp

string (int64 format)

OBRIGATÓRIO: carimbo de data/hora da solicitação representado como milissegundos desde o período. O destinatário precisa verificar se esse carimbo de data/hora tem cerca de 60 segundos de "agora". Esse carimbo de data/hora da solicitação não é idempotente em novas tentativas.

userLocale
(deprecated)

string

DESCONTINUADO: um código de idioma ISO 639-2 Alfa 3 de duas ou três letras opcionalmente seguido por um hífen e um código de país ISO 3166-1 Alfa-2. Por exemplo, "pt", "pt-BR", "fil" ou "fil-PH". Use isso para ajudar a direcionar os campos userMessage na resposta.

protocolVersion

object (Version)

OBRIGATÓRIO: a versão da solicitação.

Versão

Objeto de versão, que é uma forma estruturada da estrutura de versão clássica do a.b.c. As principais versões do mesmo número têm a garantia de compatibilidade. Observe que pequenas e revisões podem mudar com frequência e sem aviso prévio. O integrador precisa oferecer suporte a todas as solicitações para a mesma versão principal.

Representação JSON
{
  "major": integer,
  "minor": integer,
  "revision": integer
}
Campos
major

integer

OBRIGATÓRIO: versão principal. Essa opção é marcada para solicitações de compatibilidade com versões diferentes que não têm garantia de compatibilidade.

minor

integer

OBRIGATÓRIO: versão secundária. Isso indica correções de bugs significativas.

revision

integer

OBRIGATÓRIO: versão secundária. Isso indica pequenas correções de bugs.

OrderLookupCriteria

Critérios de pesquisa de pedidos.

Representação 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.
}
Campos

Campo de união criteria.

criteria pode ser apenas de um dos tipos a seguir:

dcb3CorrelationId

string

Pesquisa com base no ID de correlação do DCB gerado pelo Google que identifica exclusivamente o pagamento. Esse valor foi gerado pelo Google e enviado ao integrador de pagamentos do faturamento via operadora durante a chamada de autenticação.

arnCriteria

object (ArnCriteria)

Pesquisa com base no número de referência do adquirente (ARN, na sigla em inglês).

googleTransactionReferenceNumberCriteria

object (GoogleTransactionReferenceNumberCriteria)

Pesquisa com base no número de referência da transação do Google.

ArnCriteria

Critérios de busca de pagamento com base no número de referência do adquirente (ARN, na sigla em inglês).

Representação JSON
{
  "acquirerReferenceNumber": string,
  "authorizationCode": string
}
Campos
acquirerReferenceNumber

string

OBRIGATÓRIO: o número de referência do adquirente (ARN, na sigla em inglês) que identifica exclusivamente o pagamento. Precisa ter 23 dígitos.

authorizationCode

string

OBRIGATÓRIO: o código de autorização da transação.

GoogleTransactionReferenceNumberCriteria

Critérios de busca de pagamento com base no número de referência da transação gerado pelo Google.

Representação JSON
{
  "googleTransactionReferenceNumber": string,
  "authorizationCode": string
}
Campos
googleTransactionReferenceNumber

string

OBRIGATÓRIO: o número de referência da transação gerado pelo Google que identifica o pagamento de maneira exclusiva.

authorizationCode

string

OBRIGATÓRIO: o código de autorização da transação.

RequestOriginator

Informações sobre a organização ou o subgrupo organizacional de origem da solicitação. Isso permite que o Google identifique problemas ou abusos e implemente controles em um nível mais refinado do que o paymentIntegratorAccountId. Ele é especialmente valioso quando o autor da chamada é um provedor de serviços intermediário que origina solicitações de vários clientes externos.

Representação JSON
{
  "organizationId": string,
  "organizationDescription": string
}
Campos
organizationId

string

OBRIGATÓRIO: um identificador da empresa, organização ou grupo organizacional que originou a solicitação. Precisa ser exclusivo nesse paymentIntegratorAccountId.

organizationDescription

string

OBRIGATÓRIO: um nome legível ou uma descrição da organização que possa ser usada para facilitar a comunicação entre os funcionários do Google e o integrador em relação a essa organização.

ResponseHeader

Objeto de cabeçalho definido em todas as respostas enviadas do servidor.

Representação JSON
{
  "responseTimestamp": string
}
Campos
responseTimestamp

string (int64 format)

OBRIGATÓRIO: carimbo de data/hora da resposta representado como milissegundos desde o período. O destinatário precisa verificar se esse carimbo de data/hora tem cerca de 60 segundos de "agora".

GetOrderDetailsResultCode

Resultado da chamada de método getOrderDetails.

Enums
GET_ORDER_DETAILS_RESULT_CODE_UNKNOWN Nunca defina esse valor padrão.
SUCCESS O pedido foi encontrado e devolvido.
ORDER_CANNOT_BE_RETURNED

O pedido solicitado que existe, mas não pode ser retornado. Os motivos incluem casos em que o pedido foi removido a pedido do proprietário.

PAYMENT_TOO_OLD O pagamento solicitado foi encontrado, mas os detalhes do pedido não foram fornecidos devido à idade do pagamento.
PAYMENT_NOT_FOUND O pagamento solicitado não foi encontrado.
NO_ADDITIONAL_DETAILS O pagamento solicitado foi encontrado, mas os detalhes do pedido não estão disponíveis.

Pedido

Informações sobre o pedido.

Representação JSON
{
  "timestamp": string,
  "orderId": string,
  "currencyCode": string,
  "subTotalAmount": string,
  "totalAmount": string,
  "items": [
    {
      object (Item)
    }
  ],
  "taxes": [
    {
      object (Tax)
    }
  ]
}
Campos
timestamp

string (int64 format)

OPCIONAL: carimbo de data/hora de quando o pedido foi feito, representado em milissegundos desde o período. Não está disponível para todos os tipos de pedido.

orderId

string

OPCIONAL: uma string que identifica exclusivamente esse pedido. Não está disponível para todos os tipos de pedido.

currencyCode

string

OPCIONAL: código de moeda ISO 4217 de três letras para todos os valores desse pedido. Não está disponível para todos os tipos de pedido.

subTotalAmount

string (Int64Value format)

OPCIONAL: valor total do pedido sem tributos, representado como micros da moeda especificada em order.currencyCode. Isso é igual a SUM(items.totalPrice). Não está disponível para todos os tipos de pedido.

totalAmount

string (Int64Value format)

OPCIONAL: valor total desse pedido incluindo tributos, representado como micros da moeda especificada em order.currencyCode. Isso é igual a subTotalAmount + SUM(taxes.amount). Não está disponível para todos os tipos de pedido.

items[]

object (Item)

OBRIGATÓRIO: lista de itens que fizeram parte do pedido.

taxes[]

object (Tax)

OPCIONAL: lista de tributos que fizeram parte do pedido.

Item

Informações sobre um item no pedido.

Representação JSON
{
  "description": string,
  "merchant": string,
  "quantity": string,
  "totalPrice": string,
  "googleProductName": string
}
Campos
description

string

OPCIONAL: uma descrição do item que foi comprado. Não está disponível para todos os tipos de pedido.

merchant

string

OBRIGATÓRIO: o vendedor, o artista ou o fabricante do item.

quantity

string (Int64Value format)

OPCIONAL: a quantidade encomendada do item.

Esse campo será omitido se quantidades inteiras não forem aplicáveis ao produto (por exemplo, produtos medidos podem ter quantidades fracionárias).

totalPrice

string (Int64Value format)

OPCIONAL: o preço total do item, representado como micros da moeda especificada em order.currencyCode. Se quantity for preenchido, isso reflete o preço total da quantidade total. Não está disponível para todos os tipos de pedido.

googleProductName

string

OBRIGATÓRIO: nome do serviço do produto do Google referente ao item.

Tributo

São informações sobre tributos que se aplicam a este pedido.

Representação JSON
{
  "description": string,
  "amount": string
}
Campos
description

string

OBRIGATÓRIO: uma descrição dos tributos.

amount

string (Int64Value format)

OBRIGATÓRIO: o valor dos tributos, representado como micros da moeda especificada em order.currencyCode.