Method: getOrderDetails

Obtén un pedido que proporcione la base a los socios de Google para cobrar a los usuarios finales.

Si el extremo encuentra un error mientras procesa la solicitud, la respuesta de este extremo será del tipo ErrorResponse.

Es posible que las respuestas de esta consulta estén vacías si este método no muestra un HTTP 200. El cuerpo de la respuesta estará vacío en situaciones en las que se pueda usar una ErrorResponse con una descripción clara para ayudar a un atacante a comprender el identificador de cuenta del integrador de pagos de otros integradores. En estas situaciones, en las que la clave de firma no coincide, no se encontró el identificador del integrador de pagos o se desconocía la clave de encriptación, este método mostrará un error HTTP 404 con un cuerpo vacío. Si se puede verificar la firma de la solicitud, se devolverá información adicional sobre el error en el cuerpo de la respuesta.

A continuación, se muestra una solicitud de ejemplo:


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

Una respuesta de ejemplo se ve de la siguiente manera:


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

Solicitud HTTP

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

Cuerpo de la solicitud

El cuerpo de la solicitud contiene datos con la siguiente estructura:

Representación JSON
{
  "requestHeader": {
    object (RequestHeader)
  },
  "paymentIntegratorAccountId": string,
  "orderLookupCriteria": {
    object (OrderLookupCriteria)
  },
  "requestOriginator": {
    object (RequestOriginator)
  }
}
Campos
requestHeader

object (RequestHeader)

REQUIRED: Encabezado común para todas las solicitudes

paymentIntegratorAccountId

string

OBLIGATORIO: Es el identificador de la cuenta del integrador de pagos que identifica al emisor y las restricciones contractuales asociadas para esta interacción.

orderLookupCriteria

object (OrderLookupCriteria)

OBLIGATORIO: Son los criterios que indican el orden que se debe buscar.

requestOriginator

object (RequestOriginator)

OPCIONAL: Incluye información sobre la organización o el subgrupo de la organización que originó esta solicitud (si el integrador nos llama en nombre de otra organización).

Cuerpo de la respuesta

Carga útil de respuesta para el método getOrderDetails.

Si se ejecuta correctamente, el cuerpo de la respuesta contendrá datos con la siguiente estructura:

Representación JSON
{
  "responseHeader": {
    object (ResponseHeader)
  },
  "result": enum (GetOrderDetailsResultCode),
  "order": {
    object (Order)
  }
}
Campos
responseHeader

object (ResponseHeader)

REQUIRED: Encabezado común para todas las respuestas

result

enum (GetOrderDetailsResultCode)

OBLIGATORIO: Es el resultado de esta llamada.

order

object (Order)

OPCIONAL: Información sobre el pedido en el que se realizó el pago. (Presente solo si result tiene éxito).

RequestHeader

Es un objeto de encabezado que se define en todas las solicitudes que se envían al servidor.

Representación JSON
{
  "requestId": string,
  "requestTimestamp": string,
  "userLocale": string,
  "protocolVersion": {
    object (Version)
  }
}
Campos
requestId

string

REQUIRED: Identificador único de esta solicitud

Es una cadena que tiene una longitud máxima de 100 caracteres y solo contiene los caracteres "a-z", "A-Z", "0-9", ":", "-" y "_".

requestTimestamp

string (int64 format)

REQUIRED: Es la marca de tiempo de esta solicitud representada como milisegundos desde el ciclo de entrenamiento. El receptor debe verificar que esta marca de tiempo sea de ± 60 segundos del “ahora”. Esta marca de tiempo de la solicitud no es idempotente luego de los reintentos.

userLocale
(deprecated)

string

OBSOLETO: Es un código de idioma ISO 639-2 Alfa 3 de dos o tres letras, opcionalmente seguido de un guion y un código de país ISO 3166-1 Alfa-2, p.ej., "pt", "pt-BR", "fil" o "fil-PH". Úsalo para controlar los campos userMessage de la respuesta.

protocolVersion

object (Version)

REQUIRED: Es la versión de esta solicitud.

Versión

Objeto de versión que es una forma estructurada de la estructura de la versión clásica de a.b.c. Se garantiza la compatibilidad de las versiones principales que tengan la misma cantidad. Ten en cuenta que las revisiones y menores pueden cambiar con frecuencia y sin previo aviso. El integrador debe admitir todas las solicitudes de la misma versión principal.

Representación JSON
{
  "major": integer,
  "minor": integer,
  "revision": integer
}
Campos
major

integer

REQUIRED: Versión principal. Esto se marca para que las solicitudes de compatibilidad con diferentes versiones no sean compatibles.

minor

integer

REQUIRED: Versión secundaria. Esto denota correcciones de errores importantes.

revision

integer

REQUIRED: Versión secundaria. Esto denota correcciones de errores menores.

OrderLookupCriteria

Criterios de búsqueda de pedidos.

Representación 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ón criteria.

criteria puede ser una de las siguientes opciones:

dcb3CorrelationId

string

Es la búsqueda basada en el ID de correlación de DCB generado por Google que identifica el pago de forma inequívoca. Google generó este valor y se envió al integrador de pagos de facturación del operador durante la llamada de Auth.

arnCriteria

object (ArnCriteria)

Búsqueda basada en el número de referencia del adquiriente (ARN).

googleTransactionReferenceNumberCriteria

object (GoogleTransactionReferenceNumberCriteria)

Es una búsqueda basada en el número de referencia de transacción de Google.

ArnCriteria

Criterios de búsqueda de pagos basados en el número de referencia del adquirente (ARN).

Representación JSON
{
  "acquirerReferenceNumber": string,
  "authorizationCode": string
}
Campos
acquirerReferenceNumber

string

OBLIGATORIO: El número de referencia del adquirente (ARN) que identifica el pago de forma inequívoca. Debe tener 23 dígitos.

authorizationCode

string

OBLIGATORIO: Es el código de autorización de la transacción.

GoogleTransactionReferenceNumberCriteria

Criterios de búsqueda de pagos basados en el número de referencia de transacción generado por Google.

Representación JSON
{
  "googleTransactionReferenceNumber": string,
  "authorizationCode": string
}
Campos
googleTransactionReferenceNumber

string

OBLIGATORIO: El número de referencia de transacción generado por Google que identifica el pago de forma inequívoca.

authorizationCode

string

OBLIGATORIO: Es el código de autorización de la transacción.

RequestOriginator

Información sobre la organización o el subgrupo de la organización en el que se originó esta solicitud. Esto permite que Google identifique problemas o abusos, además de implementar controles a un nivel más detallado que paymentIntegratorAccountId. Resulta muy valioso cuando el emisor es un proveedor de servicios intermediario que obtiene solicitudes de varios clientes externos.

Representación JSON
{
  "organizationId": string,
  "organizationDescription": string
}
Campos
organizationId

string

OBLIGATORIO: Es un identificador de la empresa, la organización o el grupo organizativo donde se originó esta solicitud. Debe ser único en este paymentIntegratorAccountId.

organizationDescription

string

OBLIGATORIO: Un nombre o una descripción legible por humanos de la organización que pueda usarse para facilitar la comunicación entre los empleados de Google y el integrador en relación con esa organización.

ResponseHeader

Es un objeto de encabezado que se define en todas las respuestas que se envían desde el servidor.

Representación JSON
{
  "responseTimestamp": string
}
Campos
responseTimestamp

string (int64 format)

REQUIRED: Marca de tiempo de esta respuesta representada como milisegundos desde el ciclo de entrenamiento. El receptor debe verificar que esta marca de tiempo sea de ± 60 segundos del “ahora”.

GetOrderDetailsResultCode

Es el resultado de la llamada de método getOrderDetails.

Enumeraciones
GET_ORDER_DETAILS_RESULT_CODE_UNKNOWN No establezcas nunca este valor predeterminado.
SUCCESS Se encontró y devolvió el pedido.
ORDER_CANNOT_BE_RETURNED

Es el pedido solicitado que existe, pero que no se puede mostrar. Entre los motivos, se incluyen los casos en los que el pedido se eliminó a pedido del propietario.

PAYMENT_TOO_OLD Se encontró el pago solicitado, pero no se proporcionaron los detalles del pedido debido a la antigüedad del pago.
PAYMENT_NOT_FOUND No se encontró el pago solicitado.
NO_ADDITIONAL_DETAILS Se encontró el pago solicitado, pero los detalles del pedido no están disponibles.

Pedido

Información sobre el pedido.

Representación JSON
{
  "timestamp": string,
  "orderId": string,
  "currencyCode": string,
  "subTotalAmount": string,
  "totalAmount": string,
  "items": [
    {
      object (Item)
    }
  ],
  "taxes": [
    {
      object (Tax)
    }
  ]
}
Campos
timestamp

string (int64 format)

OPCIONAL: Marca de tiempo del momento en que se realizó el pedido, representada como milisegundos desde el ciclo de entrenamiento. No está disponible para todos los tipos de pedido.

orderId

string

OPCIONAL: Es una cadena que identifica este pedido de forma inequívoca. No está disponible para todos los tipos de pedido.

currencyCode

string

OPCIONAL: Código de moneda ISO 4217 de 3 letras para todos los importes de este pedido. No está disponible para todos los tipos de pedido.

subTotalAmount

string (Int64Value format)

OPCIONAL: Es el importe total de este pedido sin impuestos, representado en microsegundos de la moneda especificada en order.currencyCode. Esto equivale a SUM(items.totalPrice). No está disponible para todos los tipos de pedido.

totalAmount

string (Int64Value format)

OPCIONAL: Es el importe total de este pedido con impuestos incluidos, representado en microsegundos de la moneda especificada en order.currencyCode. Esto equivale a subTotalAmount + SUM(taxes.amount). No está disponible para todos los tipos de pedido.

items[]

object (Item)

OBLIGATORIO: Lista de artículos que formaban parte de este pedido.

taxes[]

object (Tax)

OPCIONAL: Lista de impuestos que formaban parte de este pedido.

Elemento

Es la información sobre un artículo del pedido.

Representación JSON
{
  "description": string,
  "merchant": string,
  "quantity": string,
  "totalPrice": string,
  "googleProductName": string
}
Campos
description

string

OPCIONAL: Descripción del artículo que se compró. No está disponible para todos los tipos de pedido.

merchant

string

OBLIGATORIO: Indica el vendedor, el artista o el fabricante del artículo.

quantity

string (Int64Value format)

OPCIONAL: Indica la cantidad de pedido de este artículo.

Este campo se omitirá si las cantidades de números enteros no se aplican al producto (por ejemplo, los productos de uso medido pueden tener cantidades fraccionarias).

totalPrice

string (Int64Value format)

OPCIONAL: Es el precio total del elemento, representado en microsegundos de la moneda especificada en order.currencyCode. Si se propaga quantity, esto refleja el precio total de la cantidad completa. No está disponible para todos los tipos de pedido.

googleProductName

string

OBLIGATORIO: Indica el nombre del servicio de producto de Google para el artículo.

Impuesto

Información sobre un impuesto que se aplica a este pedido.

Representación JSON
{
  "description": string,
  "amount": string
}
Campos
description

string

OBLIGATORIO: Incluye una descripción del impuesto.

amount

string (Int64Value format)

REQUIRED: Es el importe del impuesto, representado en microsegundos de la moneda especificada en order.currencyCode.