private string TerminarTransaccionCorrecta(int codigoRequireComprobar, string requestId, string autorizacion) { string resultadoConfirmarEnvioRecibido = ""; if (codigoRequireComprobar == 10) // requiere comprobación { ProxyPagoServicios.TResponse infoResponseDoc = this.DoC(requestId, this.credenciales.UserName); if (infoResponseDoc.rcode == 0) // comprobación exitosa { resultadoConfirmarEnvioRecibido = this.DoA(requestId, this.credenciales.UserName, autorizacion); } } else // no require comprobacion { if (codigoRequireComprobar == 0 || codigoRequireComprobar == 1) // comprobación exitosa { resultadoConfirmarEnvioRecibido = this.DoA(requestId, this.credenciales.UserName, autorizacion); } } return(resultadoConfirmarEnvioRecibido); }
private ProxyPagoServicios.TResponse GetDot(string requestId, string userName, string skuCode, string numeroCuenta, float monto, int numeroCaja, ProxyPagoServicios.Form form) { ProxyPagoServicios.TResponse respuesta = transact.DoT(requestId, userName, skuCode, numeroCuenta, monto, numeroCaja, form); return(respuesta); }
private ProxyPagoServicios.TResponse ChecarTransaccion(string requestId, string userName) { ProxyPagoServicios.TResponse response = transact.CheckTransaction(requestId, userName); return(response); }
private ProxyPagoServicios.TResponse DoC(string requestId, string userName) { ProxyPagoServicios.TResponse response = transact.DoC(requestId, userName); return(response); }
/// <summary> /// Pago de servicio /// </summary> /// <returns></returns> public ResponseBussiness <OperationResponse> PagoServicio(PagoServiciosRequest pagoServiciosRequest, float monto, string folio) { SecurityCCK.encripta encripta = new encripta(); int intento = 1; string resultadoConfirmarEnvioRecibido = ""; return(tryCatch.SafeExecutor(() => { OperationResponse operation = new OperationResponse(); string requestId = string.Empty; requestId = GetRequestId(0); if (requestId != "") { object cuenta = pagoServiciosRequest.Cuenta; var cuanteEncripatada = encripta.Encrypt(ref cuenta); ProxyPagoServicios.Form formulario = this.ObtenerElementosAdicionales(pagoServiciosRequest.InfoAdicional, pagoServiciosRequest.InfoAdicional.ModuloId); ProxyPagoServicios.TResponse respuestaDot = GetDot(requestId, this.credenciales.UserName, pagoServiciosRequest.SkuCodePagoServicio, cuanteEncripatada.ToString(), monto, this.token.CodeBox, formulario); if (respuestaDot.rcode == 2)//En proceso { while (intento <= this.credenciales.NumeroIntentos) { Thread.Sleep(5000 * 1); ProxyPagoServicios.TResponse respuestaVerificarTransaccion = this.ChecarTransaccion(requestId, this.credenciales.UserName); //si la respuesta es qeu no esta en proceso if (respuestaVerificarTransaccion.rcode != 2) { resultadoConfirmarEnvioRecibido = this.TerminarTransaccionCorrecta(respuestaDot.rcode, requestId, respuestaVerificarTransaccion.op_authorization); intento = 1000; } intento++; } if (resultadoConfirmarEnvioRecibido == "") { ProxyPagoServicios.ReverseResponse respuestaDor = this.DoR(requestId, this.credenciales.UserName); operation.CodeNumber = respuestaDor.rcode.ToString(); operation.CodeDescription = respuestaDor.rcode_description; } else { operation.CodeNumber = "1"; operation.CodeDescription = resultadoConfirmarEnvioRecibido; } } else if (respuestaDot.rcode == 0 || respuestaDot.rcode == 1) //termino correctamente con ó sin autorizacion { resultadoConfirmarEnvioRecibido = this.TerminarTransaccionCorrecta(respuestaDot.rcode, requestId, respuestaDot.op_authorization); operation.CodeNumber = "1"; operation.CodeDescription = resultadoConfirmarEnvioRecibido; this.repository.RegistrarAutorizacionPago(pagoServiciosRequest.SkuCodePagoServicio, pagoServiciosRequest.SkuCode, folio, respuestaDot.op_authorization); } else { operation.CodeNumber = "0"; operation.CodeDescription = respuestaDot.rcode_description; } } else { operation.CodeDescription = "Error del Web Service, contactar a Administrador del Sistema"; operation.CodeNumber = "0"; } return operation; })); }