Method: asynchronousCapture

Activa el inicio de una operación de transferencia de dinero entre la cuenta de un cliente y el integrador. El integrador debe confirmar la solicitud y realizar las acciones necesarias para completar la captura (p.ej., obtener un PIN del usuario). El integrador informará a Google el resultado final de la captura llamando a la API CaptureResultNotification.

La combinación de requestId en el encabezado y paymentIntegratorAccountId es la clave de idempotencia, que identifica de forma única esta transacción. Todas las mutaciones de esta transacción (reembolsos) propagan el valor requestId en el campo captureRequestId.

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

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


{
  "requestHeader": {
    "protocolVersion": {
      "major": 1,
      "minor": 1,
      "revision": 0
    },
    "requestId": "bWVyY2hhbnQgdHJhbnNhY3Rpb24gaWQ",
    "requestTimestamp": "1502220196077"
  },
  "paymentIntegratorAccountId": "InvisiCashIN_INR",
  "upiDetails": {
      "vpa": "foo@icici"
  },
  "transactionDescription": "Google - Music",
  "currencyCode": "INR",
  "amount": "728000000"
}

Una respuesta de ejemplo se ve de la siguiente manera:


{
  "responseHeader": {
    "responseTimestamp": "1481900013178"
  },
  "result": "ACKNOWLEDGED",
  "paymentIntegratorTransactionId": "aW50ZWdyYXRvciB0cmFuc2FjdGlvbiBpZA"
}

Solicitud HTTP

POST https://www.integratorhost.example.com/v1/asynchronousCapture

Cuerpo de la solicitud

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

Representación JSON
{
  "requestHeader": {
    object (RequestHeader)
  },
  "paymentIntegratorAccountId": string,
  "transactionDescription": string,
  "currencyCode": string,
  "amount": string,

  // Union field fopDetails can be only one of the following:
  "upiDetails": {
    object (UpiDetails)
  },
  "tokenizedInstrumentDetails": {
    object (TokenizedInstrumentDetails)
  }
  // End of list of possible types for union field fopDetails.
}
Campos
requestHeader

object (RequestHeader)

REQUIRED: Encabezado común para todas las solicitudes

paymentIntegratorAccountId

string

REQUIRED: Es el identificador de la cuenta del integrador de pagos que identifica las restricciones contractuales en torno a esta transacción.

transactionDescription

string

OBLIGATORIO: Esta es la descripción de la transacción que se puede incluir en el estado de cuenta del cliente. Se localiza en userLocale que se encuentra en requestHeader. Este formato se puede cambiar sin previo aviso y nunca debe analizarse.

currencyCode

string

OBLIGATORIO: Código de moneda ISO 4217 de 3 letras

amount

string (Int64Value format)

OBLIGATORIO: Es el importe de la compra, expresado en micrones de la unidad de moneda.

Campo de unión fopDetails.

fopDetails puede ser una de las siguientes opciones:

upiDetails

object (UpiDetails)

OPCIONAL: Son los detalles del pago específicos de los instrumentos de UPI.

tokenizedInstrumentDetails

object (TokenizedInstrumentDetails)

OPCIONAL: Detalles del pago específicos de los instrumentos con asignación de token.

Cuerpo de la respuesta

Objeto de respuesta para el método de captura.

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

Representación JSON
{
  "responseHeader": {
    object (ResponseHeader)
  },
  "paymentIntegratorTransactionId": string,
  "result": enum (AsynchronousCaptureResultCode)
}
Campos
responseHeader

object (ResponseHeader)

REQUIRED: Encabezado común para todas las respuestas

paymentIntegratorTransactionId

string

REQUIRED: Este identificador es específico del integrador y lo genera este. Este es el identificador con el que el integrador conoce esta transacción.

Para mayor comodidad, este identificador se incluye en los detalles de la remesa.

result

enum (AsynchronousCaptureResultCode)

REQUIRED: Es el resultado de la llamada de captura asíncrona.

UpiDetails

Detalles sobre la cuenta de UPI desde la que se realizará la captura.

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

string

OBLIGATORIO: La dirección de pago virtual (VPA) del usuario que se usa para transferir dinero con el protocolo de UPI. Por ejemplo, foo@icici.

TokenizedInstrumentDetails

Detalles sobre la cuenta desde la cual se realizará la captura.

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

string

OBLIGATORIO: Este es el token que usarán ambas empresas para identificar la cuenta para las compras entre ellas.

AsynchronousCaptureResultCode

Códigos de resultado para asíncronoCapture.

Enumeraciones
UNKNOWN_RESULT No establezcas nunca este valor predeterminado.
ACKNOWLEDGED Se solicitó la captura y el integrador realizará pasos adicionales para determinar si la captura se realizó correctamente o se rechazó. Una vez que el integrador conozca el resultado de la captura, llamará a la API de captureResultNotification para informar a Google sobre este.
ACCOUNT_CLOSED

Se cerró la cuenta del usuario que se retuvo con el integrador.

Devolver este valor hará que el instrumento del usuario se cierre con Google. El usuario se verá obligado a agregar un nuevo instrumento siguiendo el flujo de asociación nuevamente.

ACCOUNT_CLOSED_ACCOUNT_TAKEN_OVER

Se cerró la cuenta del usuario con el integrador, por lo que se sospecha que se realizó una apropiación de la cuenta.

Devolver este valor hará que el instrumento del usuario se cierre con Google. El usuario se verá obligado a agregar un nuevo instrumento siguiendo el flujo de asociación nuevamente.

ACCOUNT_ON_HOLD La cuenta está suspendida.
ACCOUNT_CLOSED_FRAUD

La cuenta del usuario que se retuvo con el integrador se cerró debido a un fraude.

Devolver este valor hará que el instrumento del usuario se cierre con Google. El usuario se verá obligado a agregar un nuevo instrumento siguiendo el flujo de asociación nuevamente.