- Solicitud HTTP
- Cuerpo de la solicitud
- Cuerpo de la respuesta
- RequestHeader
- Versión
- PaymentLookupCriteria
- ArnCriteria
- GoogleTransactionReferenceNumberCriteria
- RequestOriginator
- GetDisputeInquiryReportResultCode
- PurchaseReport
- CustomerAccount
- Pedido
- Dirección
- Elemento
- Impuestos
- Pago
- Reembolsar
- PaymentCardDetails
- AuthResult
Obtén un informe que proporcione información para facilitar una conversación de asistencia al cliente con un usuario sobre una posible disputa de un pago.
Si el extremo encuentra un error mientras procesa la solicitud, la respuesta de este extremo será de tipo
.ErrorResponse
Las respuestas a esta consulta pueden estar vacías si este método no muestra un HTTP 200. El cuerpo de la respuesta está vacío en situaciones en las que se podría usar un
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.ErrorResponse
A continuación, se muestra una solicitud de ejemplo:
{
"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"
}
}
Esta es una respuesta de ejemplo:
{
"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"
}
}
}
}
Solicitud HTTP
POST https://vgw.googleapis.com/secure-serving/gsp/v1/getDisputeInquiryReport/:PIAID
Cuerpo de la solicitud
El cuerpo de la solicitud contiene datos con la siguiente estructura:
Representación JSON |
---|
{ "requestHeader": { object ( |
Campos | |
---|---|
requestHeader |
OBLIGATORIO: Encabezado común para todas las solicitudes |
paymentIntegratorAccountId |
OBLIGATORIO: Es el identificador de la cuenta del integrador de pagos que identifica al emisor y las restricciones contractuales asociadas a esta interacción. |
paymentLookupCriteria |
OBLIGATORIO: Son los criterios que indican el pago que se debe buscar para esta consulta. |
existingGoogleClaimId |
OPCIONAL: Es una cadena generada por Google que se muestra en una llamada anterior a Si no aparece, se generará un nuevo ID de reclamo. El llamador puede proporcionar un El ID del reclamo que se propaga aquí o se genera se mostrará en el campo No es válido proporcionar un |
requestOriginator |
OBLIGATORIO: Es la información sobre la organización o el subgrupo organizativo que originó esta solicitud. |
Cuerpo de la respuesta
Carga útil de respuesta para el método getDisputeInquiryReport
Si se ejecuta correctamente, el cuerpo de la respuesta contendrá datos con la siguiente estructura:
Representación JSON |
---|
{ "responseHeader": { object ( |
Campos | |
---|---|
responseHeader |
OBLIGATORIO: Encabezado común para todas las respuestas |
result |
REQUIRED: Es el resultado de esta llamada. |
googleClaimId |
OPCIONAL: Es una cadena generada por Google que identifica de manera inequívoca esta disputa de cliente. (Presente solo si Si se propagó |
report |
OPCIONAL: Detalles relevantes para la disputa del pago identificado en la solicitud. (Presente solo si |
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 ( |
Campos | |
---|---|
requestId |
REQUIRED: Es el 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 |
OBLIGATORIO: Es la marca de tiempo de esta solicitud representada en milisegundos desde el ciclo de entrenamiento. El receptor debe verificar que la marca de tiempo sea de ± 60 s de "ahora". Esta marca de tiempo de solicitud no es idempotente en los reintentos. |
userLocale |
OBSOLETO: 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 ayudar a controlar los campos |
protocolVersion |
OBLIGATORIO: Es la versión de esta solicitud. |
Versión
Un objeto Version, que es una forma estructurada de la estructura de versión clásica de a.b.c
. Se garantiza que las versiones principales de la misma cantidad son compatibles. Ten en cuenta que las revisiones menores y las revisiones 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 |
OBLIGATORIO: Es la versión principal. Esto se marca cuando no se garantiza la compatibilidad de las solicitudes de compatibilidad con diferentes versiones. |
minor |
OBLIGATORIO: Versión secundaria. Esto indica que se corrigieron errores importantes. |
revision |
OBLIGATORIO: Versión secundaria. Esto implica correcciones de errores menores. |
PaymentLookupCriteria
Contenedor de criterios con los que se puede buscar un pago de forma única. Se debe propagar un solo campo miembro (y solo uno).
Representación JSON |
---|
{ // Union field |
Campos | |
---|---|
Campo de unión
|
|
arnCriteria |
OPCIONAL: Búsqueda basada en el número de referencia del adquirente (ARN). |
googleTransactionReferenceNumberCriteria |
OPCIONAL: Búsqueda basada en el número de referencia de la transacción de Google. |
ArnCriteria
Criterios para buscar pagos según el Número de referencia del adquirente (ARN).
Representación JSON |
---|
{ "acquirerReferenceNumber": string, "authorizationCode": string } |
Campos | |
---|---|
acquirerReferenceNumber |
OBLIGATORIO: El número de referencia del adquirente (ARN) que identifica el pago de manera inequívoca. Debe tener 23 dígitos. |
authorizationCode |
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 |
OBLIGATORIO: El número de referencia de la transacción generado por Google que identifica el pago de manera inequívoca. |
authorizationCode |
OBLIGATORIO: Es el código de autorización de la transacción. |
RequestOriginator
Es la información sobre la organización o el subgrupo organizativo y, opcionalmente, el empleado donde se originó esta solicitud. Esto permite que Google identifique problemas o abusos, y también implemente controles a un nivel más detallado que el paymentIntegratorAccountId
. Resulta particularmente útil cuando el emisor es un proveedor de servicios intermediario que obtiene solicitudes de varios clientes externos.
Representación JSON |
---|
{ "organizationId": string, "organizationDescription": string, "agentId": string } |
Campos | |
---|---|
organizationId |
OBLIGATORIO: Es un identificador de la empresa, organización o grupo organizativo desde el que se originó esta solicitud. Debe ser único en este |
organizationDescription |
OBLIGATORIO: Es un nombre o una descripción legible de la organización que se puede usar para facilitar la comunicación entre los empleados de Google y el integrador de esa organización. |
agentId |
OPCIONAL: Un identificador único para el agente específico (empleado) de la organización, identificado por |
GetDisputeInquiryReportResultCode
Es el resultado de la llamada al método getDisputeInquiryReport
.
Enumeradores | |
---|---|
UNKNOWN_RESULT |
No establezcas nunca este valor predeterminado. |
SUCCESS |
Se encontró el pago y se proporciona un informe. |
PAYMENT_NOT_FOUND |
No se encontró el pago solicitado. |
PAYMENT_TOO_OLD |
Se encontró el pago solicitado, pero no se proporcionó un informe debido a su antigüedad. |
ORDER_CANNOT_BE_RETURNED |
El pago solicitado pertenece a un pedido que ya existe, pero no se puede devolver. Entre los motivos, se incluyen los casos en los que se eliminó el pedido a pedido del propietario. |
NO_ADDITIONAL_DETAILS |
Se encontró el pago solicitado, pero no hay un informe disponible. |
PurchaseReport
Es un informe que contiene detalles relevantes de la compra asociada con el pago solicitado.
Representación JSON |
---|
{ "customerAccount": { object ( |
Campos | |
---|---|
customerAccount |
OBLIGATORIO: Incluye información sobre el cliente y su cuenta. |
order |
OBLIGATORIO: Incluye información sobre el pedido en el que se realizó el pago. |
payment |
OPCIONAL: Incluye información sobre el pago. Nota: Es posible realizar múltiples pagos en un solo pedido, pero esto solo contendrá la información del pago que se identificó en la solicitud original. No está disponible para todos los tipos de pedidos. |
CustomerAccount
Información sobre la cuenta del cliente
Representación JSON |
---|
{ "customerEmail": string, "customerName": string } |
Campos | |
---|---|
customerEmail |
OBLIGATORIO: Es la dirección de correo electrónico asociada con la Cuenta de Google del cliente. |
customerName |
REQUIRED: El nombre del cliente. |
Pedidos
Información sobre el pedido.
Representación JSON |
---|
{ "timestamp": string, "orderId": string, "currencyCode": string, "subTotalAmount": string, "totalAmount": string, "shippingAddress": { object ( |
Campos | |
---|---|
timestamp |
OPCIONAL: Es la marca de tiempo del momento en que se realizó el pedido, representada como milisegundos desde la época. No está disponible para todos los tipos de pedidos. |
orderId |
OPCIONAL: Es una cadena que identifica este orden de forma única. No está disponible para todos los tipos de pedidos. |
currencyCode |
OPCIONAL: Es el código de moneda ISO 4217 de 3 letras para todos los importes de este pedido. No está disponible para todos los tipos de pedidos. |
subTotalAmount |
OPCIONAL: Es el importe total de este pedido sin impuestos, representado como micros de la moneda especificada en |
totalAmount |
OPCIONAL: El importe total de este pedido con impuestos, incluido el impuesto, representado como micros de la moneda especificada en |
shippingAddress |
OPCIONAL: Dirección de envío de los artículos físicos de este pedido. |
items[] |
OBLIGATORIO: Lista de artículos que formaban parte de este pedido. |
taxes[] |
OBLIGATORIO: Lista de artículos que formaban parte de este pedido. Es posible que esta lista esté vacía. |
Dirección
Estructura que contiene información sobre una dirección
Representación JSON |
---|
{ "name": string, "addressLine": [ string ], "localityName": string, "administrativeAreaName": string, "postalCodeNumber": string, "countryCode": string } |
Campos | |
---|---|
name |
OPCIONAL: El nombre completo del cliente. |
addressLine[] |
OPTIONAL: Contiene un texto de dirección no estructurado. |
localityName |
OPCIONAL: Este es un término confuso, pero, por lo general, hace referencia a la parte de ciudad o pueblo de una dirección. En regiones del mundo donde las localidades no están bien definidas o no se ajustan bien a esta estructura (por ejemplo, Japón y China), deja el valor LocalName vacío y usa addressLine. Ejemplos: ciudad de EE.UU., comuna de Italia o ciudad postal en el Reino Unido. |
administrativeAreaName |
OPCIONAL: Subdivisión administrativa de nivel superior de este país; por ejemplo, estado de EE.UU., región de TI, provincia de CN, prefectura de Japón". |
postalCodeNumber |
OPTIONAL: A pesar de su nombre, los valores postalCodeNumber suelen ser alfanuméricos. Ejemplos: “94043”, “SW1W” o “SW1W 9TQ”. |
countryCode |
OPCIONAL: Es el código de país de la dirección del cliente, que se espera que sea ISO-3166-1 Alfa-2. |
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 |
OPCIONAL: Es una descripción del artículo que se compró. No está disponible para todos los tipos de pedidos. |
merchant |
OBLIGATORIO: Es el vendedor, el artista o el fabricante del artículo. |
quantity |
OPCIONAL: La cantidad de pedidos de este artículo que se pidieron. Este campo se omitirá si no se aplican cantidades de números enteros al producto (por ejemplo, los productos medidos pueden tener fracciones). |
totalPrice |
OPCIONAL: El precio total de este elemento, representado como micros de la moneda especificada en |
googleProductName |
OBLIGATORIO: Es el nombre del servicio de productos de Google para el artículo. |
Impuesto
Es la información sobre un impuesto que se aplica a este pedido.
Representación JSON |
---|
{ "description": string, "amount": string } |
Campos | |
---|---|
description |
OBLIGATORIO: Es una descripción del impuesto. |
amount |
OBLIGATORIO: El importe del impuesto, representado como micros de la moneda especificada en |
Pago
Información sobre el pago.
Representación JSON |
---|
{ "billingAddress": { object ( |
Campos | |
---|---|
billingAddress |
OBLIGATORIO: Dirección de facturación para este pago. |
amount |
OBLIGATORIO: Es el importe de este pago, representado como micros de la moneda especificada en |
refunds[] |
OBLIGATORIO: Lista de los reembolsos realizados en este pago. Es posible que esta lista esté vacía. |
Campo de unión
|
|
cardDetails |
OPCIONAL: Son los detalles del pago específicos de las FoP de tarjetas de crédito y débito. |
Reembolso
Es la información sobre un reembolso realizado por un pago.
Representación JSON |
---|
{ "amount": string, "initiatedTimestamp": string } |
Campos | |
---|---|
amount |
REQUIRED: El importe reembolsado, un número positivo de micros de la moneda especificada en |
initiatedTimestamp |
OBLIGATORIO: Es la marca de tiempo del momento en que se inició el reembolso, representada como milisegundos desde la época. |
PaymentCardDetails
Detalles del pago específicos de las tarjetas de crédito y débito.
Representación JSON |
---|
{
"authResult": enum ( |
Campos | |
---|---|
authResult |
OBLIGATORIO: Es el resultado de la autenticación de pago. |
AuthResult
Resultados de la autenticación de pago
Enumeradores | |
---|---|
UNKNOWN_RESULT |
No establezcas nunca este valor predeterminado. |
APPROVED |
Auth aprobada. |
DENIED |
Se rechazó la autorización. |
NOT_ATTEMPTED |
No se intentó autenticar. |