TransbankDevelopers / transbank-sdk-dotnet

Código fuente Transbank SDK para .NET (C#)
BSD 3-Clause "New" or "Revised" License
10 stars 6 forks source link

Error solicitando comprobante de pago #72

Closed GusSierra closed 3 years ago

GusSierra commented 5 years ago

Buenos días, Estoy integrando la plataforma WebPay y todos los pasos del flujo normal funcionan correctamente, pero al momento de solicitar el comprobante de pago de WebPay con la URL y el token_ws devueltos por el metodo getTransactionResult() en la pagina de webpay aparece:

Error 500--Internal Server Error con el mensaje From RFC 2068 Hypertext Transfer Protocol -- HTTP/1.1 10.5.1 500 Internal Server Error The Server enconutered an unexpected condition wich prevented it form fulfilling the request.

Que puede estar sucediendo? porque estoy enviando los datos tal cual los pasa el método, no estoy modificando nada.

Muchas gracias por la ayuda.

Error TransBank

ffiebig commented 5 years ago

Hola @GusSierra, estamos viendo que puede ser, por mientras te invito que a uses la plantilla de reporte de errores para que nos entregues más datos sobre el entorno donde estás desarrollando

GusSierra commented 5 years ago

Hola @ffiebig claro, ¿me puedes por favor informar en donde puedo visualizar la plantilla de errores para poder informar más al detalle el entorno de desarrollo?

ffiebig commented 5 years ago

Claro, aparece cuando apretar el botón para crear un nuevo issue. Aquí va

Describe el bug

Una descripción concisa sobre el bug.

Para reproducir

  1. Configura '...'
  2. Crea un objeto '...'
  3. Ejecuta el método '...'
  4. Se ve el error en '...'

Comportamiento observado

Describe de forma concisa lo que observaste siguiendo los pasos para reproducir el error.

Comportamiento esperado

Una explicación concisa y clara de qué es lo que esperas que ocurra.

Capturas de pantalla

Si aplica, agrega aquí capturas de pantalla que ayuden a explicar tu problema.

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

Contexto adicional

Agrega cualquier otro información sobre el problema aquí.

GusSierra commented 5 years ago

Buenos días, Estoy integrando la plataforma WebPay y todos los pasos del flujo normal funcionan correctamente, pero al momento de solicitar el comprobante de pago de WebPay con la URL y el token_ws devueltos por el metodo getTransactionResult() en la pagina de webpay aparece:

Error 500--Internal Server Error con el mensaje From RFC 2068 Hypertext Transfer Protocol -- HTTP/1.1 10.5.1 500 Internal Server Error The Server enconutered an unexpected condition wich prevented it form fulfilling the request.

Para reproducir

Configurar la pagina que recibe la respuesta, ya sea 'result' o 'end' para que pueda manejar el response:

/* Mensaje de Ejecución / string message;

/* Crea Dictionary con datos Integración Pruebas / Dictionary<string, string> certificate = sides.cotizacion.certificates.CertNormal.certificate();

/* Crea Dictionary con datos de entrada / Dictionary<string, string> request = new Dictionary<string, string>();

if (respuesta == "result") { /* Obtiene Información POST / string[] keysPost = Request.Form.AllKeys;

/* Token de la transacción ACA SE OBTIENE EL TOKEN / string token = Request.Form["token_ws"];

Webpay.Transbank.Library.Webpay webpay; /* Creacion Objeto Webpay, SE VALIDA SI EL OBJETO WEBPAY YA SE ENCUENTRA EN LA SESION / if (Session["wpObj"] != null) { webpay = (Webpay.Transbank.Library.Webpay)Session["wpObj"]; } else { / SI EL OBJETO WEBPAY NO ESTA COMO SESION SE CREA TAL CUAL SE NECESITA / Webpay.Transbank.Library.Configuration configuration = new Webpay.Transbank.Library.Configuration(); configuration.Environment = certificate["environment"]; configuration.CommerceCode = certificate["commerce_code"]; configuration.PublicCert = certificate["public_cert"]; configuration.WebpayCert = certificate["webpay_cert"]; configuration.Password = certificate["password"]; webpay = new Webpay.Transbank.Library.Webpay(configuration); }

/* Crea Dictionary con codigos de resultado / Dictionary<string, string> codes = new Dictionary<string, string>(); codes.Add("0", "Transacción aprobada"); codes.Add("-1", "Rechazo de transacción"); codes.Add("-2", "Transacción debe reintentarse"); codes.Add("-3", "Error en transacción"); codes.Add("-4", "Rechazo de transacción"); codes.Add("-5", "Rechazo por error de tasa"); codes.Add("-6", "Excede cupo máximo mensual"); codes.Add("-7", "Excede límite diario por transacción"); codes.Add("-8", "Rubro no autorizado");

transactionResultOutput result = webpay.getNormalTransaction().getTransactionResult(token);

if (result.detailOutput[0].responseCode == 0) { message = "Pago ACEPTADO por webpay (se deben guardar datos para mostrar voucher)";

/*En este punto se cambia la URL de redireccion de la pagina maestra hacia la entregada por el 
   metodo getTransactionResult */
Master.Page.Form.Action = result.urlRedirection;
litContinPay.Text = "<input type='hidden' name='token_ws' value='" + token + "'><input 
type='submit' value='Continuar &raquo;'>";

} else { message = "Pago RECHAZADO por webpay [Codigo]=> " + result.detailOutput[0].responseCode + " [Descripcion]=> " + codes[result.detailOutput[0].responseCode.ToString()]; } }

Cuando se da click en el botón submit, en la redirección en la página aparece el error mencionado:

Error 500--Internal Server Error con el mensaje From RFC 2068 Hypertext Transfer Protocol -- HTTP/1.1 10.5.1 500 Internal Server Error The Server enconutered an unexpected condition wich prevented it form fulfilling the request.

Comportamiento esperado

Se espera que la redirección muestre el resultado de la transacción que entrega WebPay (comprobante de pago) y desde la cual se redirecciona a la web de origen después de 10 segundos o mediante el botón “Ir a detalle de compra” donde se muestra en general el detalle asociado al producto

Respuesta TransBank

Capturas de pantalla Error TransBank

Versiones:

Libreria Webpay.Transbank.Library 2.0.1 SDK: 2.0.1 .NET Framework: 4.5

Que puede estar sucediendo? porque estoy enviando los datos tal cual los pasa el método, no estoy modificando nada.

Muchas gracias por la ayuda.

ffiebig commented 3 years ago

Este error no volvió a presentarse y ya no se está recomendado la integración con SOAP, se recomienda usar la versión REST de Webpay en las ultimas versiones del SDK