TransbankDevelopers / transbank-sdk-php

Código fuente Transbank SDK para PHP
BSD 3-Clause "New" or "Revised" License
56 stars 30 forks source link

Reembolso de transacción con errores siempre retorna código 422 en lugar del código especifico del intento de reembolso #228

Closed prestaalba closed 2 years ago

prestaalba commented 2 years ago

Describe el bug

Al intentar hacer un reembolso de una transacción a través de Transaction.refund() y ocurrir un error, siempre retorna el código de error 422 genérico para las transacciones (El requerimiento no ha podido ser procesado ya sea por validaciones de datos o por lógica de negocios.) en lugar del código específico de los reembolsos.

Para reproducir

  1. Crea una transacción y confírmala correctamente.
  2. Intenta hacer un reembolso a dicha transacción por un monto superior al de la transacción.
  3. Se lanza una excepción con el código de error 422.

Comportamiento esperado

En el caso anterior, debería retornar el código de error 311 (Monto a anular excede el saldo disponible para anular) de acuerdo a los códigos de errores posibles a retornar al intentar Reversar o Anular un pago de acuerdo a la documentación descrita en https://www.transbankdevelopers.cl/referencia/webpay#reversar-o-anular-un-pago

Versiones (por favor agrega aquí la siguiente información):

mastudillot commented 2 years ago

Gracias por el reporte, vamos a revisar lo que mencionas

mvarlic commented 2 years ago

El api de Transbank ya no retorna el código de error, ahora la salida es:

{
    "error_message": "Amount to refund is bigger than authorized"
}

no es un bug, ya que el sdk le da el mismo tratamiento que cualquier error que reciba, solo que ahora el api ya no retorna el código de error