Method: refundResultNotification

Notifica a Google el resultado de un reembolso después de que se haya realizado una llamada al método refund.

Los reembolsos se deben administrar de forma síncrona durante la llamada al método refund, pero este método le proporciona a Google una señal de copia de seguridad rápida en caso de que la llamada síncrona falle después de realizar la acción, pero antes de que pueda mostrar un resultado. Esto evita el retraso que genera Google cuando programa un reintento para un momento futuro.

El valor refundResult es idempotente para este refundRequestId, por lo que su valor no se puede cambiar con una llamada posterior a este método.

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": "1481855928301"
  },
  "paymentIntegratorAccountId": "InvisiCashUSA_USD",
  "refundRequestId": "hH1T32PI86CpKwjuf6oD2r",
  "paymentIntegratorRefundId": "invisi/Id::xx__1243",
  "refundResult": "SUCCESS"
}

Una respuesta de ejemplo se ve de la siguiente manera:


{
  "responseHeader": {
    "responseTimestamp": "1481855928376"
  },
  "result": "SUCCESS"
}

Solicitud HTTP

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

Cuerpo de la solicitud

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

Representación JSON
{
  "requestHeader": {
    object (RequestHeader)
  },
  "paymentIntegratorAccountId": string,
  "refundRequestId": string,
  "refundResult": enum (RefundResultCode),
  "paymentIntegratorRefundId": string
}
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 en el que se realizó el reembolso.

refundRequestId

string

OBLIGATORIO: Es el identificador único de este reembolso, establecido por el campo requestId cuando se llamó al método refund.

refundResult

enum (RefundResultCode)

OBLIGATORIO: Es el resultado de este reembolso.

paymentIntegratorRefundId

string

REQUIRED: Este identificador es específico del integrador y lo genera este. Este es el identificador con el que el integrador conoce este reembolso.

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

Cuerpo de la respuesta

Objeto de respuesta para el método refundResultNotification

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

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

object (ResponseHeader)

REQUIRED: Encabezado común para todas las respuestas

result

enum (RefundResultNotificationResultCode)

OBLIGATORIO: Es el resultado de esta llamada.

RefundResultCode

Los reembolsos de los códigos de resultado únicos

Enumeraciones
UNKNOWN_RESULT No establezcas nunca este valor predeterminado.
SUCCESS El reembolso se realizó correctamente.
NO_MONEY_LEFT_ON_TRANSACTION No se pudo realizar el reembolso. No queda dinero en la transacción. Por lo general, representa un error entre el integrador y Google. Google no debe solicitar un reembolso por un importe superior al de la captura original.
ACCOUNT_CLOSED

Se cerró la cuenta retenida 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_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.

ACCOUNT_ON_HOLD Actualmente, la cuenta del usuario está suspendida y no puede aceptar el reembolso, pero es posible que la cuenta del usuario más adelante pueda aceptar el reembolso. Es posible que Google solicite otro reembolso en el futuro, pero lo hará con un nuevo requestId, por lo que esta solicitud debe considerarse finalizada.
REFUND_EXCEEDS_MAXIMUM_BALANCE No se puede procesar el reembolso en este momento porque, si lo hiciera, el saldo del usuario excedería el importe máximo permitido. Es posible que Google solicite otro reembolso en el futuro, pero lo hará con un nuevo requestId, por lo que esta solicitud debe considerarse finalizada.
REFUND_WINDOW_EXCEEDED No se puede procesar el reembolso porque la solicitud está fuera del período de reembolso permitido.

RefundResultNotificationResultCode

Códigos de resultado para el método refundResultNotification

Enumeraciones
UNKNOWN_RESULT No establezcas nunca este valor predeterminado.
SUCCESS La notificación del resultado del reembolso se realizó correctamente.