Procesar un reembolso de transacción

Reembolsar una transacción

Una transacción se puede reembolsar al enviar el id (String) del e-voucher.

Si una transacción ya fue reembolsada o existe algún error en el proceso, se regresa el error 13002:
PAYMENT_HISTORY_REFUND_FAILED

El método regresa un success con dos posibles estados:

  • True: indica que el reembolso fue exitoso
  • False: indica que el reembolso no fue exitoso

También se retorna el estado de la transacción del tipo PaymentCancelStatus, esta puede ser:

enum PaymentCancelStatus: Int{
    case processed = 1
    case refundUnavailable = -2
    case error = -3
    case timeout = -4
}

Estado

Descripción

processed

La cancelación se realizó de forma exitosa.

refundUnavailable

La cancelación no pudo realizarse. El tiempo para hacerlo ha pasado o se trata de un pago hecho con una tarjeta de puntos.

error

Ocurrió un error al realizar la cancelación.

timeout

Se solicitó la cancelación pero no hubo respuesta del servicio.

El siguiente ejemplo de código muestra la implementación de la función para reembolso de transacción.

do {
            try TransactionHistory.shared.refundTransaction(by:  String , completion: { (result) in
                switch result {
                case .success(let success, let status):
                  	print(success)
	print(status)
                case .failure(let error):
	print(error)
                }
            })
        } catch {
	print(error)
        }